DNS サーバは、BIND(Berkeley Internet Name Domain)または名前デーモンを使用して名前解決を行います。 BIND は、カリフォルニア大学バークレー校の 4 人の学生によって 1980 年代初めに開発されました。 図に示すように、BIND で使用される DNS メッセージ フォーマットは、インターネット上で最も広く使用されている DNS 形式です。
DNS サーバは、名前解決に使用される異なる種類のリソース レコードを保存します。 これらのレコードには、名前、アドレス、レコード タイプが含まれます。
次のようなレコード タイプがあります。
- A:エンド デバイス アドレス
- NS:権限ネーム サーバ
- CNAME:エイリアスの正規名(完全修飾ドメイン名)。複数のサービスが 1 つのネットワーク アドレスを持ち、各サービスが DNS に独自のエントリを持つ場合に使用されます
- MX:メール交換レコード。ドメイン名を、そのドメインのメール交換サーバのリストにマッピングします。
クライアントがクエリーを行うと、サーバの BIND プロセスは最初に自分のレコードを調べて名前を解決します。 保存されているレコードを使用して名前を解決できない場合は、他のサーバにアクセスして名前を解決します。
要求は複数のサーバ間を受け渡される場合があり、余分な時間がかかって帯域幅が消費される可能性があります。 一致が見つかって要求元のサーバに返された後、サーバは名前と一致する番号付きアドレスをキャッシュ メモリに一時的に保存します。
同じ名前が再度要求された場合、最初のサーバがキャッシュに格納されている値を使用してアドレスを返すことができます。 キャッシングにより、DNS クエリー データのネットワーク トラフィックと上位層のサーバの負荷の両方が減少します。 Windows PC の DNS クライアント サービスは、以前に解決された名前をメモリに保存することによっても、DNS 名前解決のパフォーマンスを最適化します。 ipconfig /displaydns コマンドは、Windows コンピュータ システムの DNS キャッシュ エントリをすべて表示します。