2010年4月2日金曜日

IPv6でDNSサーバ

以前LinuxをIPv6ルータにする方法を書いていましたが、
IPv6なDNSサーバを動作させる方法について記しておきます。
なお、テストしたかっただけなのと
ちょうどいいInternetなIPv6接続環境が手元にないので、
ローカルだけでの名前解決しかしていません。
OSはLinuxで
ディストリビューションはGentoo(2.6.22-gentoo-r5,x86_64)です。
まず以下を実行し、
IPv6が有効になっていることを確認します。
# emerge -pv net-dns/bind

そして実際にインストールします。
# emerge net-dns/bind
# rc-update -a named default

その後設定ファイルを編集します。
# vi /etc/bind/named.conf
options {
directory "/var/bind";
listen-on-v6 { any; };
allow-query { any; };
pid-file "/var/run/named/named.pid";
recursion yes;
};
zone "localhost" IN {
type master;
file "pri/localhost.zone";
allow-update { none; };
notify no;};
zone "127.in-addr.arpa" IN {
type master;
file "pri/127.zone";
allow-update { none; };
notify no;
};
zone "ipv6.private.jp" IN {
type master;
file "pri/ipv6.private.jp.zone";
allow-update { none; };
notify no;
};

ゾーンファイルを作成します。
# vi /etc/bind/pri/ipv6.private.jp.zone
$TTL 1W@ IN SOA ns.ipv6.private.jp. root.localhost. (
2008122604 ; Serial
28800 ; Refresh
14400 ; Retry
604800 ; Expire - 1 week
86400 ) ; Minimum
@ IN NS ns.ipv6.private.jp.
@ IN A 192.168.1.1
ns IN CNAME server1
@ IN AAAA fd00::1
server1 IN ;A; 192.168.1.1
server1 IN AAAA fd00::1
server2 IN A 192.168.1.2
server2  IN AAAA fd00::2

最後に以下で起動します。
# /etc/init.d/named start

例えばIPv6対応のLinuxなクライアントで
# vi /etc/resolv.confnamesever

としておけば、
名前解決の際IPv6でDNSサーバに問い合わせて、
AなりAAAAなりのレコードをとってきてうまいこと動いてくれます。

0 件のコメント:

コメントを投稿