用語辞典・DNS・ドメイン

NSレコード

NSレコードとは

NSレコードは、あるDNSゾーンについて権威のある名前サーバーのホスト名を示すリソースレコードです。正式名称はName Server record(ネーム・サーバー・レコード)です。

NSのデータ部分は権威DNSサーバーホスト名です。IPアドレスを直接書くレコードではありません。リゾルバーは必要に応じ、そのホスト名のA・AAAAレコードを得て問い合わせ先へ到達します。

親ゾーンに置くNSは「この子ゾーンはこのサーバー群へ委任した」という案内で、子ゾーン頂点のNSは「自分を提供する権威サーバー群」というデータです。

親の委任情報から子の権威サーバーへ渡す対象サーバー名が子ゾーン内なら、到達用のグルーを親が補う
親DNSゾーンのNSレコードが子ゾーンを担当する複数の権威サーバー名を示し、必要なグルーアドレスを使って子ゾーンへ到達する図解
図1委任点のNSは親ゾーン側、同じ所有者名の権威NSは子ゾーン側にあります。運用変更では両者を一致させ、古い委任先が残らないよう確認します。

親側と子側では、同じNSでも置かれるゾーンが違う

ゾーンカットを挟んだ二つのRRset参照を返す親と、権威応答を返す子を分ける
親ゾーン

委任NS

子ゾーンの所有者名に、担当サーバー名を置く。参照応答に使われる。

ゾーンカット管理範囲の境界
子ゾーン

権威NS

ゾーン頂点に、自分を提供するサーバー名を置く。権威データとして答える。

図2両側のNS集合が違うと、問い合わせ経路やキャッシュによって到達先が分かれ、障害の原因になります。レジストラ側の委任設定とDNS事業者側のゾーン設定を対にして変更します。

NSは複数用意し、異なる障害に備える

一つのゾーンには通常、複数の権威DNSサーバーを指定します。一台が停止しても別のサーバーへ問い合わせられるためです。単に同じ機械へ複数の名前を付けるだけでは、電源、回線、設備の障害を分離できません。

NSレコードには優先度や重みのフィールドがありません。リゾルバーは到達性や応答時間などをもとに複数のサーバーを使います。MXやSRVのように、数値で主系・予備系を指定するレコードではありません。

グルー情報は、循環を断つための到達手段

子ゾーンを担当するサーバー名が、その子ゾーン自身の中にある場合を考えます。サーバー名のアドレスを子へ尋ねるには子のサーバーへ到達する必要があり、循環します。そこで親ゾーンは、必要なA・AAAAをglue(グルー)として参照応答へ添えます。

グルーは親ゾーンの委任を成立させる補助情報であり、その子の通常の権威アドレスRRsetそのものではありません。子側のA・AAAAを変更したときは、レジストリや親側に登録されたグルーも更新します。

再帰DNSサーバーの指定とは別

端末のネットワーク設定にある「DNSサーバー」は、多くの場合再帰DNSサーバーです。一方、NSレコードが示すのは特定ゾーンの権威サーバーです。端末がNS一覧をネットワーク設定へ直接登録するわけではありません。

権威サーバー移転では、子ゾーンのデータを新サーバーへ用意し、委任を切り替え、旧サーバーを一定期間残す手順が安全です。NSのTTLや親側キャッシュも考慮します。

仕様の確認資料:RFC 1034「Domain Names — Concepts and Facilities」RFC 1035「Domain Names — Implementation and Specification」RFC 9499「DNS Terminology」

関連用語