2つのサブ領域があります。
zone "first.com" { type master; file "/etc/bind/zones/first.com.primary";};
zone "second.com" { type master; file "/etc/bind/zones/second.com.primary";};
まず、内部を定義します。
$TTL 300
@ IN SOA ns1.org.com. postmaster.org.com. (
2022050902 ; serial
14400 ; refresh
1800 ; retry
604800 ; expire
86400 ) ; minimum
@ IN NS ns1.org.com.
subdomain IN A 127.0.0.1
第二に、まず参考にしたい
$TTL 86400
@ IN SOA ns1.org.com. postmaster.org.com. (
2019032601 ; serial
14400 ; refresh
1800 ; retry
604800 ; expire
86400 ) ; minimum
@ IN NS ns1.org.com.
@ IN CNAME subdomain.first.com.
www IN CNAME @
localhost IN A 127.0.0.1
loopback IN CNAME localhost
それは可能ですか?
答え1
レコードCNAME
はこの名前を指定します。左レコードの片側はCNAME
名前のエイリアスです。正しい横 -あらゆるタイプのDNSレコードで動作A
、記録だけのためではありません。太字の部分がここで問題を引き起こす部分です。 「すべてのレコードタイプ」には、地域とSOA
レコードNS
も含まれるためです。
CNAME
ゾーンの上部にあるレコードを使用しようとしていますsecond.com
。SOA
エリアの上にもあります。したがって、正規化された形式で作成された最初のCNAME
コンテンツは次のようになります。
second.com. IN CNAME subdomain.first.com.
したがって、SOAレコードを要求した場合は、second.com
SOAレコードを返す必要があります。subdomain.first.com
ただし、実際のSOAレコードにはsecond.com
アクセスできず、そのSOAレコードがないとsecond.com
ドメイン全体が破損します。CNAME
つまり、指すレコードsubdomain.first.com
が実際には無効であることを意味します。
また、subdomain.first.com
独自の領域の頂点ではなく上位レベルの領域のサブドメインである場合は、独自のSOAレコードはありません。 CNAMEマッピングに従うことは、second.com
SOAレコードに対する要求に「そのようなものは「記録」がまったく存在しませんが、ゾーンにSOAレコードがない場合、second.com
そのゾーンは存在しません。
second.com
同様に、NSレコードが要求されると、CNAME
NSレコードへの応答が必要ですsubdomain.first.com
。しかし、ネームサーバーはsubdomain.first.com
それについて全く知る必要はありませんsecond.com
。
そのような矛盾を防ぐために、RFC 1034セクション3.6.2によると:
CNAME RRがノードにある場合は、他のデータがあってはなりません。これにより、正式名とそのエイリアスのデータが異なることはありません。また、このルールは、特権サーバーで他のRRタイプを検証することなく、キャッシュされたCNAMEを使用できるようにします。
(RFC 1034は、次の単語を使用するルールよりも優先されます。しなければならない、〜しなければならないそして可能必要なレベルを厳密に遵守し、RFC 2119で定義されているように。 「追加データなし」と表示されていますが、しなければならない存在します。
CNAME
この規則は、領域の頂点にレコードが存在することを不可能にします。ゾーンが意味を持って存在するには、SOA
レコードNS
が頂点にある必要があります。CNAME
これを含むすべてのレコードがこの規則に違反するためです。
詳細については、次を参照してください。https://www.isc.org/blogs/cname-at-the-apex-of-a-zone/
@ IN CNAME subdomain.first.com.
www IN CNAME @
さらに、CNAME
あるレコードを別のレコードに指すことはCNAME
技術的には可能ですが、非効率的で悪いスタイルです。常にチェーンの末尾にある標準名に直接移動する必要があります。
@ IN CNAME subdomain.first.com.
www IN CNAME subdomain.first.com.