NSレコードとは、DNSにおいて対象のドメインやゾーンを管理する権威DNSサーバーを指定するレコードです。
NSは Name Server の略で、たとえば example.com のDNS情報をどのネームサーバーに問い合わせればよいかを示します。
NSレコードは、簡単にいうと、「このドメインの正式なDNS情報は、このネームサーバーに問い合わせてください」と案内するための情報です。
たとえば、次のようなNSレコードがあるとします。
example.com. 3600 IN NS ns1.example-dns.com.
example.com. 3600 IN NS ns2.example-dns.com.
これは、example.com のDNS情報を ns1.example-dns.com と ns2.example-dns.com が扱っている、という意味です。
つまり、www.example.com のAレコードや、メール配送に使うMXレコードなどを確認したい場合、最終的にはこれらのネームサーバーに問い合わせます。
DNSは階層構造で成り立っています。
ルートDNS
↓
TLDのDNS(.com や .jp など)
↓
各ドメインの権威DNS
たとえば、ユーザーが www.example.com にアクセスする場合、通常はユーザーの端末が直接すべてのDNSサーバーに問い合わせるわけではありません。
多くの場合、まず端末はプロバイダやPublic DNSなどの再帰DNSサーバーに問い合わせます。
その後、再帰DNSサーバーが必要に応じて、ルートDNS、TLDのDNS、対象ドメインの権威DNSへ問い合わせます。
流れは次の通りです。
www.example.com の情報を問い合わせる.com を管理するDNSサーバーを案内する.com のDNSサーバーが example.com のNSレコードを返すexample.com の権威DNSサーバーに問い合わせるwww.example.com のAレコードなどを取得するこのように、NSレコードはDNSの問い合わせ先を次の階層へ案内する重要な役割を持っています。
NSレコードとAレコードは、どちらもDNSレコードの一種ですが、役割が異なります。
| レコード | 役割 |
|---|---|
| NSレコード | ドメインやゾーンを管理する権威DNSサーバーを指定する |
| Aレコード | ドメイン名をIPv4アドレスに変換する |
| AAAAレコード | ドメイン名をIPv6アドレスに変換する |
| MXレコード | メールを受信するメールサーバーを指定する |
| TXTレコード | 認証情報や任意のテキスト情報を登録する |
たとえば、次のような設定があるとします。
example.com. NS ns1.example-dns.com.
www.example.com. A 192.0.2.10
この場合、NSレコードは example.com のDNS情報を管理するネームサーバーを示しています。
一方、Aレコードは www.example.com の接続先となるIPv4アドレスを示しています。
つまり、NSレコードはDNSの管理先を指定するレコードであり、AレコードはWebサイトなどの接続先IPアドレスを指定するレコードです。
NSレコードに関係する設定は、大きく分けて2つあります。
まず重要なのが、ドメインを取得したレジストラ側で行うネームサーバー設定です。
レジストラとは、お名前.com、ムームードメイン、Xserverドメイン、Cloudflare Registrarなどのドメイン管理会社のことです。
ここで設定したネームサーバー情報は、上位ゾーンに登録されます。
たとえば example.com であれば、.com 側に
example.com のDNS情報は ns1.example-dns.com に問い合わせてください
という委任情報が登録されます。
この設定によって、インターネット上のDNS問い合わせが、指定したネームサーバーへ向かうようになります。
もう1つは、DNSサーバー側のゾーン情報として存在するNSレコードです。
例
example.com. NS ns1.example-dns.com.
example.com. NS ns2.example-dns.com.
これは、example.com のゾーン自身が持つNSレコードです。
レジストラ側のネームサーバー設定と、DNSゾーン内のNSレコードは厳密には別の情報ですが、通常は一致していることが望ましいです。
両者が食い違っていると、DNSチェックツールで警告が出たり、DNS構成が分かりにくくなったりする場合があります。
NSレコードは、ドメイン全体だけでなく、サブドメインに対して設定することもできます。
例
blog.example.com. NS ns1.other-dns.com.
blog.example.com. NS ns2.other-dns.com.
これは、blog.example.com のDNS管理だけを別のネームサーバーに任せる設定です。
このような設定をサブドメインの委任といいます。
たとえば、メインサイトは自社のDNSで管理し、ブログや特定サービスだけを別のDNSサービスで管理したい場合などに使われます。
NSレコードを理解するうえで、あわせて知っておきたいのがグルーレコードです。
グルーレコードは、ネームサーバーのIPアドレスを上位ゾーン側に登録するための補助的な情報です。
たとえば、次のように example.com のネームサーバーとして、同じドメイン配下の ns1.example.com を指定したとします。
example.com. NS ns1.example.com.
この場合、ns1.example.com のIPアドレスを調べるには、example.com のDNS情報が必要になります。
しかし、example.com のDNS情報を調べるためには、まず ns1.example.com に問い合わせる必要があります。
これでは循環してしまいます。
そこで、上位ゾーン側に
ns1.example.com. A 192.0.2.10
のような情報を登録しておきます。
これがグルーレコードです。
特に、自前でネームサーバーを運用する場合や、独自のネームサーバー名を使う場合には重要です。
NSレコードやネームサーバー設定を変更する際には、いくつか注意点があります。
ネームサーバーを変更しても、すぐにすべての環境で新しい情報が参照されるとは限りません。
DNSにはキャッシュの仕組みがあり、TTLやレジストリ・レジストラ側の更新タイミングによって、反映に時間がかかる場合があります。
一般的には数分〜数時間で反映されることもありますが、環境によっては24〜48時間程度かかることもあります。
レジストラ側ではCloudflareのネームサーバーを指定しているのに、DNSゾーン内では別のNSレコードが残っている、といった状態は避けた方がよいです。
必ずしも即座に名前解決が失敗するとは限りませんが、DNSチェックツールで警告が出たり、トラブル時の原因調査が難しくなったりします。
DNSの設定では、FQDNの末尾にドットを付ける表記があります。
ns1.example.com.
末尾のドットは、「このドメイン名はここで終わる」という意味です。
管理画面によっては、末尾のドットを入力しなくても自動で補完されます。
一方で、環境によってはドットを付けないと、
ns1.example.com.example.com
のように解釈される場合があります。
そのため、DNS設定画面の仕様を確認したうえで入力することが大切です。
NSレコードは、DNSにおいてドメインやゾーンを管理する権威DNSサーバーを指定するレコードです。
WebサイトのIPアドレスを直接指定するものではなく、AレコードやMXレコードなどを問い合わせる先のネームサーバーを示します。
重要なポイントは次の通りです。
NSレコードを正しく理解しておくと、ドメイン移管、DNS移行、サーバー変更、メール設定、サブドメイン運用などでトラブルを防ぎやすくなります。
以上、DNSのNSレコードについてでした。
最後までお読みいただき、ありがとうございました。