ドメイン ネーム システム(DNS)は増加するインターネット ユーザーに対応しています。DNS は www.cisco.com などの名前を 192.168.40.0 などの IP アドレス(または拡張 IPv6 アドレス)に変換して、コンピュータが互いに通信できるようにします。DNS
は、World Wide Web などのインターネット アプリケーションを使いやすくします。このプロセスは、友人や親戚に電話をかける時に、相手の電話番号を覚えていなくても、相手の名前を使って自動的にダイヤルすることができます。
DNS の仕組み
DNS の仕組みを理解するために、ユーザーの典型である John が自分のコンピュータにログインしていると仮定してください。John は ExampleCo 社の Web サイトを表示するために Web ブラウザを起動します(以下の図を参照)。Web
サイト名 http://www.example.com を入力します。次のアクションを実行します。
John のワークステーションは、www.example.com の IP アドレスに関する要求を DNS サーバーに送信します。
DNS サーバーがデータベースをチェックして、www.example.com が 192.168.1.4 に対応していることを確認します。
サーバーは、このアドレスを John のブラウザに返します。
ブラウザは、このアドレスを使用して Web サイトを見つけます。
John のモニターのブラウザにこの Web サイトが表示されます。
DNS の概念の概要
ここでは、DNS に関する概念について説明します。
ドメイン
John は、DNS サーバーが www.example.com の IP アドレスを認識しているため、ExampleCo の Web サイトにアクセスできます。サーバーは、ドメイン名前空間を検索してアドレスを学習しました。DNS はツリー構造として設計されており、各ネームド
ドメインはツリー内のノードです。ツリーの最上位のノードは DNS ルートドメイン(.)です。その下に .com、.edu、.gov、.mil といったサブドメインがあります(以下の図を参照)。
DNS は、クライアント/サーバー モデルに基づいています。このモデルでは、ネームサーバーは DNS データベースの一部に関するデータを保存し、ネットワーク上のネームサーバーに照会するクライアントにそのデータを提供します。ネームサーバーは、物理ホスト上で実行されるプログラムであり、ゾーン
データを保存します。ドメインの管理者は、ゾーン内のホストを記述するすべてのリソースレコード(RR)のデータベースを使用してネームサーバーをセットアップします(下図を参照)。
DNS サーバーは、名前をアドレスに変換するか、名前を解決します。これらのサーバーは FQDN の情報を解釈してそのアドレスを見つけます。
Cisco Prime Network Registrar DNS ネームサーバーを設定する際には、ゾーンに対するサーバーのロール(プライマリ、セカンダリ、またはキャッシュ専用)を指定します。サーバーのタイプは、そのロールのコンテキストでのみ意味があります。権威 DNS サーバーは、ゾーンのプライマリサーバーまたはセカンダリサーバーにのみにすることができ、キャッシングサーバーのゾーンは指定しません。
Cisco Prime Network Registrar では、権威サービスとキャッシュサービスは分離され、2 つの個別サーバーで処理されます。権威サーバーは、権威ゾーン データを保持し、自己の権威が及ぶクエリにのみ応答します。キャッシュ サーバーは、再帰/キャッシュ サーバーであり、権威ゾーン データを含みません。
これまで説明した DNS サーバーは、名前からアドレスへの解決を実行します。これは、データベース内で正しいアドレスを検索することで簡単に実行できます。すべてのデータが名前でインデックス化されるためです。ただし、特定の出力(コンピュータ ログ
ファイルなど)を解釈できるように、アドレスから名前への解決が必要な場合があります。
DNS サーバー機能が拡張されて、許可用とキャッシュ用に個別の DNS サーバーが提供されるようになりました。この機能拡張により、Cisco Prime Network Registrarは DNS64、DNSSEC、ドメイン リダイレクト、フル IPv6 をサポートし、キャッシュ パフォーマンスが向上しました。
ハイ アベイラビリティ DNS
ゾーンごとに 1 つのプライマリ DNS サーバーしか存在できないため、このサーバーに障害が発生すると、ゾーン データを更新できなくなります。これらの更新は、プライマリ DNS サーバーでのみ発生する可能性があります。DNS リソースレコードを更新するソフトウェア(DHCP
サーバーなど)は、更新をプライマリサーバーに直接送信する必要があります。2 つ目のプライマリサーバーは、メインのプライマリサーバーをシャドーイングするホットスタンバイにすることができます。これはハイ アベイラビリティ(HA)DNS と呼ばれます。
EDNS
User Datagram Protocol(UDP)を介して 512 バイトを超える DNS メッセージを送信するには、拡張 DNS(EDNS)という DNS プロトコルの拡張を使用する必要があります。EDNS プロトコルは、DNS プロトコルで使用可能なフラグ、ラベル
タイプ、および戻りコードの数を増やします。RFC 6891 で定められている EDNS のバージョンは EDNS0 と呼ばれています。EDNS は OPT リソース レコード(OPT RR)という疑似リソース レコードを使用します。OPT RR は通常の DNS と EDNS を区別します。OPT RR
は DNS クライアントとサーバーの間のルート伝送にのみ出現します。キャッシュされたり、ディスクに保存されたりすることはありません。DNS パケットを EDNS としてマークする DNS エンドポイントは、DNS 要求または応答の追加データ セクションに
OPT RR を挿入する必要があります。
IP フラグメンテーションは、特に大規模な DNS メッセージが発生した場合に、インターネット上で問題となります。フラグメンテーションが動作している場合でも、DNS に十分なセキュリティが確保されていない可能性があります。これらの問題は、次のいずれかの方法で修正できます。a)
EDNS バッファ サイズを低く設定して、IP フラグメンテーションのリスクを軽減する、b) DNS 応答が大きすぎて制限したバッファ サイズでは修正できない場合、DNS を UDP から TCP に切り替える。キャッシュ DNS サーバーと権威
DNS サーバーの両方でデフォルトの EDNS バッファ サイズが 4096 バイトの場合は、値を小さく(1232 バイト)することで IP フラグメンテーションを防ぐことができます。
EDNS バッファ サイズを設定するには、次のコマンドを使用します。
権威 DNS サーバー:
nrcmd> session set visibility=3
nrcmd> dns set edns-max-payload=1232
nrcmd> dns reload
キャッシュ DNS サーバー:
nrcmd> session set visibility=3
nrcmd> cdns set edns-buffer-size=1232
nrcmd> cdns set max-udp-size=1232
nrcmd> cdns reload
DNS ビュー
DNS ビューでは、単一のネームサーバーを使用してゾーンデータの代替バージョンを異なるクライアントのコミュニティに表示できます。