プライマリゾーン(BIND 9)で他のDNSエントリを参照する方法

プライマリゾーン(BIND 9)で他のDNSエントリを参照する方法

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.comSOAエリアの上にもあります。したがって、正規化された形式で作成された最初のCNAMEコンテンツは次のようになります。

second.com.  IN CNAME subdomain.first.com.

したがって、SOAレコードを要求した場合は、second.comSOAレコードを返す必要があります。subdomain.first.comただし、実際のSOAレコードにはsecond.comアクセスできず、そのSOAレコードがないとsecond.comドメイン全体が破損します。CNAMEつまり、指すレコードsubdomain.first.comが実際には無効であることを意味します。

また、subdomain.first.com独自の領域の頂点ではなく上位レベルの領域のサブドメインである場合は、独自のSOAレコードはありません。 CNAMEマッピングに従うことは、second.comSOAレコードに対する要求に「そのようなものは「記録」がまったく存在しませんが、ゾーンにSOAレコードがない場合、second.comそのゾーンは存在しません。

second.com同様に、NSレコードが要求されると、CNAMENSレコードへの応答が必要です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.

関連情報