IPv6ゾーンファイルの$ORIGINディレクティブ

IPv6ゾーンファイルの$ORIGINディレクティブ

私はしばしば次のBINDゾーンファイルを見ます。

$ORIGIN 2.0.3.0.8.b.d.0.1.0.0.2.ip6.arpa.
$TTL 604800
@   IN  SOA ns1.example.org. hostmaster.example.org. (
        1978022513  ; Serial
        10800       ; Refresh
        3600        ; Retry
        2419200     ; Expire
        604800 )    ; Default TTL

        NS   ns1.example.org.
        NS   ns2.example.org.
        TXT  "2001:db8:302::/48 Example IPv6 reverse"


$ORIGIN 0.0.0.0.2.0.3.0.8.b.d.0.1.0.0.2.ip6.arpa.
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 PTR host.example.net.

追加の$ORIGINディレクティブが必要なのはなぜですか? 「$ORIGIN 0.0.0.0.2.0.3.0.8.bd0.1.0.0.2.ip6.arpa」を意味します。一つ。簡単に言うと:

$ORIGIN 2.0.3.0.8.b.d.0.1.0.0.2.ip6.arpa.
$TTL 604800
@   IN  SOA ns1.example.org. hostmaster.example.org. (
        1978022513  ; Serial
        10800       ; Refresh
        3600        ; Retry
        2419200     ; Expire
        604800 )    ; Default TTL

        NS   ns1.example.org.
        NS   ns2.example.org.
        TXT  "2001:db8:302::/48 Example IPv6 reverse"

1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 PTR host.example.net.

答え1

$ORIGINディレクティブはその時点からのみ適用されます。例を見るPro DNSとBIND - 第8章 - $ORIGINディレクティブ

最初の $ORIGIN ディレクティブは、この領域に含まれる 2001:db8:302::/48 を簡単に参照できます。

2 番目の $ORIGIN ディレクティブは、適切なサイズのサブネットである 2001:db8:302:0::/64 を簡単に参照できます (/64 は IPv6 の標準サイズのサブネットです)。

これにより、厄介なIPv6リバースRR名を使用して、物事を追跡するのが非常に困難になる4桁のゼロを防ぐことができます。私はあなたの例0で19、20、21を数えませんでした。もちろん誰かが私が15、16、17を数える必要はないことを願っていますが、少なくともそれは小さい短いです。

完全な/ 48ブロックが実際にあなたの制御下にあり、あなたに割り当てられていない限り、/ 48の逆方向領域全体に対してあなたのネームサーバーを信頼できるように設定しないでください。

エキスパートのヒント:特にIPv6サブネットおよびリバースDNSレコードの場合は、$ ORIGINディレクティブに完全修飾されていない名前を使用できることに注意してください。たとえば、

$ORIGIN 2.0.3.0.8.b.d.0.1.0.0.2.ip6.arpa. ;; Below this applies to 2001:db8:302::/48
@ SOA ...
; ... whatever else applies ...

$ORIGIN 0.0.0.0 ;; Below this applies to 2001:db8:302:0::/64
; ... whatever applies ...

特にこの場合、強く意図を明確にするために、$ ORIGINディレクティブの横にコメントを残すことをお勧めします。タグの末尾に終了期間がないことはDNS問題の一般的な原因であるため、これを明確にするのが最善です。いいえその場合は、完全修飾名を作成するように計画してください。

また、このトリックは長いソースでのみ機能するため、2001:db8:302::/48 から 2001:db8:302:0::/64 に移動できますが、2001:db8:302:0:: では移動できません。 /64 〜 2001:db8:302:1::/64. (しかし、あなたはできる必要に応じて、2001:db8:302::/60 から 2001:db8:302:1::/64 までです。 )

答え2

@MichaelKjörlingの回答に追加するために、DNSバインディング設定で同様のことを行いました。これは、重複した名前をコピーし続ける必要がないようにするためです。

$ORIGIN .
$TTL 604800 ; 1 week
bubba.net       IN SOA  ns.bubba.net. hostmaster.bubba.net. (
                2000075011 ; serial
                28800      ; refresh (8 hours)
                7200       ; retry (2 hours)
                3600000    ; expire (5 weeks 6 days 16 hours)
                86400      ; minimum (1 day)
                )
            NS  ns.bubba.net.
            A   192.168.1.1
            MX  10 mail.bubba.net.
            MX  20 mail.bubba.net.
            TXT "v=spf1 mx/24 ~all"

その後、ここのファイルに$ ORIGINを設定して、自分のドメイン「bubba.net」を起動できます。

$ORIGIN bubba.net.
apu         A   192.168.1.112
            HINFO   "VZ12" "VZ12"
            MX  10 mail
            TXT "v=spf1 redirect=bubba.net"
bart            A   192.168.1.103
            HINFO   "VZ3" "VZ3"
            MX  10 mail
            TXT "v=spf1 redirect=bubba.net"

次に、後で同じファイルで$ ORGINをリセットします。今回は「somedom.com.bubba.net」に設定します。だから私は次のようにすることができます:

$ORIGIN somedom.com.bubba.net.
$TTL 172800 ; 2 days
bender                      CNAME   bender.bubba.net.
blog                        CNAME   blogs.bubba.net.
db                          CNAME   db.bubba.net.

したがって、上記の項目があり、拡張すると次のようになります。

bender.somedom.com.bubba.net.   CNAME   bender.bubba.net.

別のドメインをミックスに追加するには、ファイル内でこれを複数回実行します。その理由は、プライマリドメイン(bubba.net)にサーバーを設定し、他のドメインのサーバーとサービス名のCNAMEを作成してプライマリドメインに上書きするためです。

たとえば、

私はインターネット上のドメイン名を所有しています。XXウェブサイトCNAME私はblog.somedom.com。私が使用するサービスを設定して構成します。blog.somedom.comCNAMEどこでも私のDNSバインディングサーバーに埋もれていますが、マッピングがあります。blog.somedom.comこの名前を物理サーバーに関連付けます。blog.bubba.netサービスを提供することです。

引用する

関連情報