BIND9.8.0rc1でDNS64を使ってみる
BIND-9.8.0rc1で
IPv6のみのホストがIPv4のホストにアクセスする場合に、IPv6セグメントとIPv4セグメントの間にNAT64サーバーという変換機能付ゲートウェイを設置してアクセスを可能にする仕組みがあるようですが、その際、DNSがIPv4ホストのAを返してもIPv6セグメントでは海を車で渡れと言われているようなもので使えないので、エンドポイントとなるNAT64サーバーのインターフェースへの繋ぎとなるAAAAをある規則に従って合成して返すのがDNS64の役割みたいです。
のように書くようです。合成変換するフォーマットについての詳細はRFC6052を参照することになりますが、
ちなみに、
上記具体例の設定で
のAAAAを問い合わせると
となるようです。変換後のTTLはネガティブキャッシュのものとなるようです。
dns64
を試したメモ。IPv6のみのホストがIPv4のホストにアクセスする場合に、IPv6セグメントとIPv4セグメントの間にNAT64サーバーという変換機能付ゲートウェイを設置してアクセスを可能にする仕組みがあるようですが、その際、DNSがIPv4ホストのAを返してもIPv6セグメントでは海を車で渡れと言われているようなもので使えないので、エンドポイントとなるNAT64サーバーのインターフェースへの繋ぎとなるAAAAをある規則に従って合成して返すのがDNS64の役割みたいです。
named.conf
に記載するdns64
ディレクティブは、そのAから合成変換したAAAAを作る作り方みたいなものを定義するもので、options
とview
に書けるみたいです。具体的には、acl rfc1918 { 10/8; 192.168/16; 172.16/12; };
...
dns64 64:FF9B::/96 {
clients {
2001:BD8:0:1::/64;
};
mapped { !rfc1918; any; };
exclude { 64:FF9B::/96; ::ffff:0000:0000/96; };
suffix ::;
recursive-only yes;
break-dnssec yes;
};
dns64-server "dns64.example.jp.";
dns64-contact "hostmaster.example.jp.";
のように書くようです。合成変換するフォーマットについての詳細はRFC6052を参照することになりますが、
dns64
の後の64:FF9B::/96
のところにIPv6-prefix
を定義します。これは合成変換後のAAAAのプレフィックスになります。残りのものについては以下に列挙します。clients
…合成変換したAAAAを返す対象となるクライアントを定義します。デフォルトはany;
です。mapped
…合成変換の対象となるA RRの値を定義します。デフォルトはany;
です。exclude
…合成変換が適用されたアドレスかどうかの判定から除外するアドレスを記載します。suffix
…RFC6052の2.2.IPv4-Embedded IPv6 Address Formatに記載されているprefixが96以外のときにsuffixにはめ込む値を定義します。例えば、prefixが64:FF9B::/40
でsuffixが::1f2a
で変換対象のAが192.0.2.2
だとすると、変換後のAAAAは64:ff9b:c0:2:2::1f2a
になります。recursive-only
…RDビットが起っている問い合わせのみに変換後のAAAAを返すかどうかを定義します。つまりyes
にすると再帰クエリーの場合に変換後のAAAAを返します。break-dnssec
…DNSSECの問い合わせに対してAAAAを返すかどうかを定義します。no
にするとAにDNSSECの署名がある場合にDOビットをセットした問い合わせを行うと変換後のAAAAを返しません。yes
にすると変換対象とします。当然ですが変換後のAAAAに署名は付きません。といいますか付けることができません。dns64-server
…prefixに対するIP6.ARPA.
のマスターサーバーの値を定義します。例えば、prefixが64:FF9B::/32
の場合にb.9.f.f.4.6.0.0.ip6.arpa.
のSOAを問い合わせると、マスターサーバーのところにここに定義した値が入ります。dns64-contact
…prefixに対するIP6.ARPA.
の管理者メールアドレスの値を定義します。dns64-server
の例と合わせて具体的なSOAの値を記載すると以下のようになります。b.9.f.f.4.6.0.0.ip6.arpa. 86400 IN SOA dns64.example.jp. hostmaster.example.jp. 0 28800 7200 604800 86400
ちなみに、
dns64
は複数記載してクライアント毎にprefixを変えたりできるようです。上記具体例の設定で
host.example.jp. 86400 IN A 192.0.2.2
のAAAAを問い合わせると
host.example.jp. 10800 IN AAAA 64:ff9b::c000:202
となるようです。変換後のTTLはネガティブキャッシュのものとなるようです。
コメント 0