うちのネームサーバは当然djbdns。でIPv6を引いているから IPv6パッチを当てている。ただし、 fefeさんのパッチ だと*BSDで使えない。氏はLinux使いらしい。
これをベースにして、以下の改良を加えた。
ちなみに「*BSDで使える」パッチは fefe 氏に送ったが無視された。 わーい。
以上のパッチをまとめたものを置きま。
djbdns-1.05+fefev6-t19+ip6arpa.tar.gz
以下、使い方。IPv4でのdjbdnsの使い方は知っていると仮定しての 説明。
たとえば、IPv6アドレスについて
www.example.com == 2001:XYZ:VW::1
というIPv6アドレスを登録したい場合。既にIPv4のゾーンはできているだろ うから正引きのSOAレコードとかは説明しない。IP6.INTとIP6.ARPA両方で 逆引きができるようにするため にdataファイルに追加するのは以下のような感じになる。
Zw.v.0.0.z.x.y.0.1.0.0.2.ip6.arpa:ns.example.com:root.example.com::3600:900:1209600:43200:3600 Zw.v.0.0.z.x.y.0.1.0.0.2.ip6.int:ns.example.com:root.example.com::3600:900:1209600:43200:3600 6www.example.com:20010xyz00vw00000000000000000001:86400
もちろん本物のIPv6アドレスなら XYZ VW は16進数の数字1桁だ。
書き終わったら、環境変数IP6_INTをセットして tinydns-data
を呼ぶ。
# IP6_INT=hoge tinydns-data
もし、IP6.INTゾーンは要らないなら IP6_INT 変数は不要。
まずは、tinydns-conf
で、サービスディレクトリを作成。
# tinydns-conf dns dnslog /var/dns/tinydns6 2001:xyz:vw::1
/var/dns/tinydns6/root
ができるが普通IPv6トランスポート
で配布するレコードもIPv4のものと同じで良いだろう。なので、
# cp /var/dns/tinydns4/root/data.cdb /var/dns/tinydns6/root
てなことをやって、IPv4のものと同じにしちゃおう。このようなコマンドラ
インは /var/dns/tinydns4/root/Makefile
に
足しちゃうとうっかり忘れが無い。
で、おもむろに
# ln -s /var/dns/tinydns6 /service
でsuperviseが起きてサービスが始まる。名前が引けるかどうか
# host -t aaaa www.example.com 2001:xyz:vw::1 # host -t ptr \ 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.5.4.0.0.3.2.1.0.1.0.0.2.ip6.arpa \ 2001:xyz:vw::1
などとして確認。外部のホストからやってみてうまく引けないようなら IPv6用のパケットフィルタで弾いていないか確認しよう。
dnscache
も dnscache-conf
の最後の引数に
IPv6アドレスを指定すれば簡単にIPv6トランスポートでキャッシュサーバが
あがる。 root/ip/
ディレクトリにアクセスを許可する IPv6
address prefix を touch しておこう。