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\hostshostsファイルに情報があれば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.comDNSサーバから応答を取得できます。
digとの関係
Linuxではdigコマンドがよく利用されます。
dig www.example.comDNS問い合わせ内容を詳細に確認できます。
企業ネットワークでのリゾルバ
企業では通常、社内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トラブルの多くはリゾルバ設定やキャッシュが原因となるため、その仕組みを理解しておくことは非常に重要です。






