NSレコード -- ネームサーバー委任

NS(Name Server)レコードがドメインやサブドメインのDNS権限を委任する仕組みを解説します。グルーレコード、委任階層、ネームサーバーのベストプラクティスを理解しましょう。

NSService

Zone File Entry

example.com.    IN    NS    ns1.example.com.
example.com.    IN    NS    ns2.example.com.

詳細な説明

NSレコードとは?

NSレコード(Name Serverレコード)は、特定のドメインまたはゾーンに対して権威を持つDNSサーバーを指定します。NSレコードはDNS委任階層のバックボーンを形成し、リゾルバにドメインのDNSクエリの確定的な回答をどこで見つけるかを通知します。

BINDゾーンファイルの構文

; ドメインの権威ネームサーバー
example.com.    86400    IN    NS    ns1.example.com.
example.com.    86400    IN    NS    ns2.example.com.

; サブドメインを異なるネームサーバーに委任
dev.example.com.    86400    IN    NS    ns1.devteam.example.com.
dev.example.com.    86400    IN    NS    ns2.devteam.example.com.

; DNSホスティングプロバイダーの使用
example.com.    86400    IN    NS    ns1.cloudprovider.com.
example.com.    86400    IN    NS    ns2.cloudprovider.com.

NS委任の仕組み

DNSは分散階層として動作します。リゾルバがwww.example.comのIPを見つける必要がある場合:

  1. ルートサーバーが.comのNSレコードを提供
  2. .com TLDサーバーがexample.comのNSレコードを提供
  3. example.comの権威ネームサーバーが最終的な回答を提供

各レベルがNSレコードを通じて次のレベルに権限を委任します。この分散設計により、単一のサーバーがすべてのDNSレコードを把握する必要がなくなります。

グルーレコード

ネームサーバーが自分自身がサーブするドメイン内にある場合(例:example.comに対するns1.example.com)、鶏と卵の問題が発生します。ネームサーバーに到達するためにns1.example.comを解決する必要がありますが、その情報を持っているのはそのネームサーバー自身です。

グルーレコードは、親ゾーンレベル(TLDサーバー)でネームサーバーのAレコードを提供することでこの問題を解決します:

; .com TLDレベルで(レジストラで設定)
example.com.    86400    IN    NS    ns1.example.com.
example.com.    86400    IN    NS    ns2.example.com.
ns1.example.com.    86400    IN    A    203.0.113.10
ns2.example.com.    86400    IN    A    203.0.113.11

ベストプラクティス

  • 最低2つのネームサーバー:ほとんどのレジストリは冗長性のために少なくとも2つのNSレコードを要求
  • 地理的分散:ネームサーバーを異なるデータセンターやネットワークに配置
  • 長いTTL:NSレコードは変更頻度が低いため、長いTTL(86400秒/24時間)を設定
  • 一貫したNSレコード:親ゾーン(レジストラ)のNSレコードとゾーンファイル内のNSレコードが一致していること
  • 単一障害点の回避:両方のネームサーバーが同じネットワークを共有している場合、ネットワーク障害でドメイン全体がオフラインになる

サブドメイン委任

サブドメインを完全に異なるネームサーバーに委任できます。異なるチームが異なるサブドメインを管理する大規模な組織に有用です:

; メインドメイン
example.com.       NS    ns1.example.com.
example.com.       NS    ns2.example.com.

; 委任されたサブドメイン
internal.example.com.    NS    ns1.internal-dns.example.com.
internal.example.com.    NS    ns2.internal-dns.example.com.

ユースケース

NSレコードを設定して、ドメインのDNS権限を選択したDNSホスティングプロバイダーに委任するか、サブドメインを別チームが管理する別のネームサーバーセットに委任します。

試してみる — DNS Record Generator

フルツールを開く