リゾルバ
リゾルバ(Resolver)は、ドメインネームシステム(以下DNS)のネームサーバへアクセスしドメイン名前空間から任意のノードの情報を取得するために用いられるクライアントの名称。文字通りドメイン名を解決する者(resolver)である。「ネームリゾルバ」とも言う。
自らがネームサーバとなっていないクライアント PC の場合、リゾルバは他のアプリケーション(WebブラウザやMail、FTP等のクライアント)の要求によりネームサーバへの問い合わせを行い、結果をアプリケーションに返すと言った機能を持っている。
また、インターネット上のどの端末からもDNS要求を受け付けるリゾルバを「オープンリゾルバ」と言う。
トランスポートプロトコルとしてUser Datagram Protocol(UDP)を利用する。
処理の内容
[編集]- 問い合わせ
- リゾルバは多くの場合自らで名前解決の手段を持たないため指定された又は既定のネームサーバへ問い合わせを行う。この時、問い合わせを行えるネームサーバが複数ある場合は最初のネームサーバ(プライマリDNSサーバ)へ問い合わせを行い、タイムアウト又はネットワークエラーが発生した場合のみ次のネームサーバへの問い合わせを行う。これは分散型データベースであるDNSのネームサーバはどのサーバに問い合わせたとしても全て同じ結果を返してくるはずと言う思想に基づいているからである。
- 結果の取得
- ネームサーバからの応答を取得する。この時にエラーやタイムアウト、再度の問い合わせを行うかどうかの判定も行う。
- 結果の出力
- 取得した値、若しくはエラー、タイムアウト等の情報を出力する。
リゾルバの例
[編集]最も目につきやすいリゾルバの例としては nslookup が挙げられ、これらの名前解決を行うにあたっての処理の殆どをネームサーバが行い問い合わせと結果の出力のみを行うリゾルバをスタブリゾルバ(stub resolver)と呼ぶ。