私はしばしば次の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 までです。 )