DNSでは、IN NSはCNAMEを指すことができますか?


17

NSレコードをCNAMEにすることは許可されていますか?例えば:

subdomain.example.com.       IN NS  ns1.example.com.
ns1.example.com.             CNAME  foo.example.com.
foo.example.com.             IN A   10.1.1.1

これは(もちろん)動作しますが、バインドでは動作しないようです:

subdomain.example.com.       IN NS  foo.example.com.
foo.example.com.             IN A   10.1.1.1

この設定を禁止しているRFCへのポインタをいただければ幸いです。

回答:


20

NS RR(RFC1035)を定義する実際のRFC は、ターゲットのRRタイプを指定せずにドメイン名であるとだけ述べています(ただし、IPにできないことは明確にしています)。ただし、RFC1912のセクション2.4では具体的に言及されています。

NSレコードがCNAMEを指していると、現在のBINDサーバーと競合する可能性があります。実際、現在のBIND実装ではこのようなレコードを無視し、不完全な委任につながる可能性があります。DNS NSレコードのなりすましを防ぐために、BINDである程度のセキュリティチェックが行われます。また、古いBINDサーバーは、エイリアスネームサーバーのアドレスを見つけようとする無限クエリループに巻き込まれ、DNS要求の連続ストリームが送信されると報告されています。

絶対に必要というわけではありませんが、見ている動作に確実に適合


5
そしてRFC1034は、「別の名前を指すRRのドメイン名は常にエイリアスではなくプライマリ名を指す必要があります。これにより、情報にアクセスする際の余分な間接参照を避けます。...もちろん、堅牢性の原則により、ドメインソフトウェアは失敗しないCNAMEチェーンまたはループが提示された場合、CNAMEチェーンをたどり、CNAMEループがエラーとして通知される必要があります。」
ラースク

10
RFC 2181 10.3には無効であることが明確に記載されていますが、答えは十分でした。
マークワーグナー

1
さらに明確にMUST NOTするために、RFC 1912は情報提供であり、標準を定義していないため、ここでは冗長性は重要ではありません。RFC 2181が正しい参照であるというマークは正しいです。(言語標準が曖昧したがって、固化前にRFC 1034が書かれていた)
アンドリュー・B
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.