DNSリゾルバとは?名前解決を行うクライアント側の仕組みを理解する

DNSリゾルバ

DNSリゾルバとは?名前解決を行う仕組み

DNSの仕組みを学習していると、「リゾルバ(Resolver)」という用語が登場します。

DNSサーバについては知っていても、リゾルバの役割についてはあまり意識していない人も少なくありません。

しかし、WebブラウザでWebサイトへアクセスしたり、メールを送信したりするときには、必ずリゾルバが動作しています。

リゾルバはDNS名前解決の出発点となる重要な存在です。

本記事では、DNSリゾルバの役割や種類、実際の動作について解説します。

リゾルバとは

リゾルバ(Resolver)とは、DNS名前解決を行うソフトウェアや機能のことです。

利用者が次のようなURLを入力したとします。

https://www.example.com/

コンピュータはURLをそのまま通信に利用できません。

まずドメイン名をIPアドレスへ変換する必要があります。

この変換処理を開始するのがリゾルバです。

リゾルバの役割

リゾルバの役割はシンプルです。

  • ドメイン名を受け取る
  • DNS問い合わせを行う
  • IPアドレスを取得する
  • アプリケーションへ返す

利用者は普段意識しませんが、Webブラウザやメールソフトの背後で常に動作しています。

名前解決の流れ

例えばブラウザが次のURLへアクセスするとします。

www.example.com

名前解決は次の流れで行われます。


ブラウザ
↓
リゾルバ
↓
DNSサーバ
↓
IPアドレス取得
↓
ブラウザ

リゾルバはDNSサーバとの仲介役を担当しています。

スタブリゾルバとは

一般的なPCやスマートフォンに搭載されているリゾルバをスタブリゾルバ(Stub Resolver)と呼びます。

スタブリゾルバは自分でルートDNSサーバへ問い合わせることはありません。

通常は設定されたDNSサーバへ問い合わせを行います。


PC
↓
スタブリゾルバ
↓
キャッシュDNSサーバ

現在のほとんどの端末がこの方式です。

フルリゾルバとは

フルリゾルバ(Full Resolver)は、自身で名前解決を行うDNSサーバです。

キャッシュDNSサーバが代表例です。


フルリゾルバ
↓
ルートDNS
↓
TLD DNS
↓
権威DNS

最終的なIPアドレスを取得するまで問い合わせを継続します。

スタブリゾルバとフルリゾルバの違い

項目スタブリゾルバフルリゾルバ
設置場所PC・スマホDNSサーバ
再帰問い合わせ依頼する実行する
キャッシュ一部あり大規模
ルートDNS問い合わせしないする

hostsファイルとの関係

リゾルバはDNS問い合わせの前にhostsファイルを確認します。

Linuxでは次のファイルです。
/etc/hosts

Windowsでは次の場所です。
C:\Windows\System32\drivers\etc\hosts

hostsファイルに情報があればDNS問い合わせは行われません。

Linuxの名前解決順序

Linuxでは通常次の順序で名前解決が行われます。


hosts
↓
DNS

設定は次のファイルで確認できます。


/etc/nsswitch.conf

例です。


hosts: files dns

/etc/resolv.confとは

LinuxでDNSサーバを指定する設定ファイルです。


/etc/resolv.conf

例です。


nameserver 8.8.8.8
nameserver 1.1.1.1

リゾルバはここに記載されたDNSサーバへ問い合わせます。

Windowsのリゾルバ

WindowsにもDNS Clientサービスが存在します。

DNSキャッシュを保持し、名前解決を効率化しています。

設定確認は次のコマンドです。


ipconfig /all

DNSキャッシュとの関係

リゾルバはDNSキャッシュを利用します。

過去の問い合わせ結果が存在する場合は再問い合わせを行いません。


www.example.com
↓
キャッシュあり
↓
即座に応答

これにより名前解決を高速化できます。

gethostbynameとは

プログラムから名前解決を行う際によく利用される関数です。

C言語の例です。


gethostbyname("www.example.com");

内部的にはリゾルバが利用されます。

nslookupとの関係

nslookupはリゾルバ動作を確認するためのコマンドです。

nslookup www.example.com

DNSサーバから応答を取得できます。

digとの関係

Linuxではdigコマンドがよく利用されます。

dig www.example.com

DNS問い合わせ内容を詳細に確認できます。

企業ネットワークでのリゾルバ

企業では通常、社内DNSサーバを利用します。


PC
↓
社内DNS
↓
インターネット

リゾルバは社内DNSサーバへ問い合わせを送信します。

これによりアクセス制御やログ管理が可能になります。

DoH・DoTとの関係

近年はDoHやDoTに対応したリゾルバも増えています。

これによりDNS問い合わせ内容を暗号化できます。

プライバシー保護の観点から利用が増加しています。

よくあるトラブル

DNSサーバ設定ミス

resolv.confやネットワーク設定の誤りです。

hostsファイルの誤設定

意図しないサーバへ接続してしまいます。

DNSキャッシュ残存

古い情報が利用され続ける場合があります。

名前解決順序の問題

nsswitch.confの設定により期待しない動作になる場合があります。

実務で覚えておきたいポイント

  • リゾルバは名前解決の出発点
  • PCやスマホはスタブリゾルバを利用する
  • キャッシュDNSサーバはフルリゾルバとして動作する
  • hostsファイルが優先される
  • resolv.confでDNSサーバを指定する
  • DNSトラブル調査ではリゾルバの動作確認が重要

まとめ

DNSリゾルバは、ドメイン名をIPアドレスへ変換するための仕組みです。

PCやスマートフォンではスタブリゾルバが利用され、DNSサーバへ問い合わせを行います。

また、キャッシュDNSサーバはフルリゾルバとして動作し、ルートDNSサーバから権威DNSサーバまで問い合わせを行います。

DNSトラブルの多くはリゾルバ設定やキャッシュが原因となるため、その仕組みを理解しておくことは非常に重要です。