NSレコードとは?
NSレコード(ネームサーバーレコード)は、特定のドメインに対してどのDNSサーバーが権威を持つかを指定するDNSレコードです。NSレコードはDNS解決の権限を委任し、ドメインまたはサブドメインの正式なDNS情報がどこにあるかをグローバルDNSに伝えます。登録ドメインには、冗長性と信頼性のため、権威ネームサーバーを指すNSレコードを少なくとも2つ設定する必要があります。NSレコードの仕組み
DNS委任チェーン
Root servers (.): "Who handles .com?"
↓
.com servers: "example.com is delegated to ns1.example.com"
↓
ns1.example.com: "Here are the actual DNS records"
レコード形式
example.com. IN NS ns1.example.com.
example.com. IN NS ns2.example.com.
│ │ │ │
│ │ │ └── Target nameserver
│ │ └── Record type
│ └── Class (Internet)
└── Domain name
NSレコードの種類
ドメインNSレコード
ドメイン全体の権限を委任します。
example.com. NS ns1.dnsprovider.com.
example.com. NS ns2.dnsprovider.com.
サブドメインの委任
サブドメインを別のネームサーバーに委任します。
subdomain.example.com. NS ns1.subdomain-provider.com.
subdomain.example.com. NS ns2.subdomain-provider.com.
グルーレコード
ネームサーバーが委任先ドメイン内にある場合、グルーレコードがIPアドレスを提供して循環依存を防ぎます。
問題
example.com NS ns1.example.com
# How to find ns1.example.com without resolving example.com first?
解決策(グルーレコード)
example.com. NS ns1.example.com.
ns1.example.com. A 192.0.2.1
グルーレコードは親ゾーン(レジストリレベル)に保存され、名前解決を開始できるようにします。
NSレコードの設定
レジストリレベル
ドメインを登録するときにネームサーバーを指定します。
- これらが権威NSレコードになる
- TLDゾーン(例: .comゾーン)に保存される
- レジストラーの管理画面から管理する
DNSプロバイダーのレベル
ゾーンファイル内で設定します。
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
ベストプラクティス
冗長性の要件
| 最小 | 推奨 | 最大 |
|---|---|---|
| 2 NSレコード | 3~4 NSレコード | 13 NSレコード |
地理的な分散
- ネームサーバーを異なるデータセンターに配置する
- 異なるネットワーク事業者を利用する
- グローバルな到達性にはAnycast DNSを検討する
TTLに関する考慮事項
example.com. 86400 IN NS ns1.example.com.
↑ 24 hours is common for NS records
- TTLを高くすると問い合わせ負荷が下がる
- TTLを低くすると変更をより速く反映できる
- 安定性と柔軟性のバランスを取る
NSレコードの一般的な構成
レジストラーのネームサーバーを使う
example.com. NS ns1.registrar.com.
example.com. NS ns2.registrar.com.
サードパーティーDNSプロバイダーを使う
example.com. NS ns1.cloudflare.com.
example.com. NS ns2.cloudflare.com.
自前のネームサーバー
example.com. NS ns1.example.com.
example.com. NS ns2.example.com.
# Requires glue records
NSレコードを確認する
digを使う
dig example.com NS
# Response shows authoritative nameservers
;; ANSWER SECTION:
example.com. 86400 IN NS ns1.example.com.
example.com. 86400 IN NS ns2.example.com.
nslookupを使う
nslookup -type=NS example.com
NSに関する問題のトラブルシューティング
一般的な問題と解決策:
- Lame delegation: NSレコードが非権威サーバーを指している
- グルー不足: 自己参照するネームサーバーのAレコードがレジストリにない
- NSの不一致: レジストリとゾーンファイルのNSレコードが異なる
- ネームサーバーの期限切れ: 廃止されたサーバーをNSが指している
NSレコードはDNS委任の基盤であり、各ドメインまたはサブドメインの問い合わせに回答する権限を持つサーバーを決定します。