UnixPower on Networking
  http://www.unix-power.net/

 
 Top - Linux - CentOS BIND ( IPv6 )




■DNSサーバのIPv6対応


DNSサーバをIPv6に対応させるには以下の4つのステップが必要です。

① DNSの通信をIPv6に対応させる
  リゾルバを⇔サーバ間のIP通信をIPv6による通信にします。

② IPv6用DNSリソースレコードの追加
  以下の2つのリソースレコードをサポート可能にする必要があります。

  ・AAAA ( クワッドエー ) レコード : IPv6の正引き用レコードです。IPv4のAレコードに相当します。
  ・PTRレコード : IPv6の逆引き用レコードです。

③ IPv6用DNSリソースレコードの情報追加
  リソースレコードに対応させるだけではクエリに応答することはできないのでIPv6用の情報を追記します。

④ Extension Mechanisms for DNS ( EDNS0 ) への対応
  IPv4のDNSでは最大パケット長が512オクテッドまでしかサポートされませんが、IPv6ではこれを超える可能性があるためEDNS0に対応する必要があります。bindではデフォルトでこれが有効となっています。


bindはyumからインストールします。

# yum install bind bind-chroot
# rpm -qa | grep bind
bind-9.8.2-0.17.rc1.el6_4.4.i686
bind-libs-9.8.2-0.17.rc1.el6_4.4.i686
bind-utils-9.8.2-0.17.rc1.el6_4.4.i686
bind-chroot-9.8.2-0.17.rc1.el6_4.4.i686

キャッシュサーバとしても利用するという前提で/etc/named.confを編集します。以下、編集部分のみ明記しています。


# vi /etc/named.conf

options { # 任意のインターフェイスで受け付ける
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };

# 任意からのqueryに対応
allow-query { any; };

# automatic empty zone: XXXXXのログ出力を停止
empty-zones-enable no;

# DNS SECを無効にする
dnssec-enable no;
dnssec-validation no;
}

logging {
# 不要なログを出力しない
category resolver { null; };
category database { null; };
category lame-servers { null; };
};


■正引きの設定


各組織で取得したドメイン名をDNSサーバに登録します。まず、named.confから追記します。

# vi /etc/named.conf

[ 以下の内容を追記する ]

zone "unix-power.local" {
# マスターサーバとして定義
type master;
# ゾーンファイル名を定義
file "unix-power.local.zone";
};


続いて上記で定義したゾーンファイル「unix-power.local.zone」を作成します。太文字になっているところがIPv6のAAAAレコードでIPv4のアドレスも合わせて記載しています。


# vi /var/named/unix-power.local.zone

[ 以下の内容で作成する ]

$TTL 1800 @ IN SOA ns1.unix-power.local. postmaster.unix-power.local. ( 2013062200 ;Serial 10800 ;Refresh 3 hours 3600 ;Retry 1 hour 86400 ;Expire 1 day 3600 ) ;Minimum 24 hours IN A 192.168.12.20 IN AAAA 2001:db8::100 IN NS ns1.unix-power.local. ns1.unix-power.local. IN A 192.168.12.20 ns1.unix-power.local. IN AAAA 2001:db8::100

■逆引きの設定

正引きのnamed.confに行うゾーン定義はIPv4と全く同じものでしたが、逆引きの際は少々複雑です。IPv6アドレスは16進数を用いて4桁ごとに:で区切ったものを用いますがIPv4のときと同様にこれを反転したものを用います。その際、4bit(16進数1文字)ごとに「.」を挿入し、「:」を削除します。これで32個のサブドメインに分割されたことになります。そして末に「ip6.arpa」を連結します。

例えば2001:db8::100の場合を例にしてみます。

2001:db8::100
↓ 0の省略を外して全て記載する。
2001:0db8:0000:0000:0000:0000:0000:0100
↓ :を削除し全ての数字をドットで区切る
2.0.0.1.0.d.b.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0
↓ 順序を反転させ末尾にip6.arpaを連結する
0.0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa
↓ 上記の中のプレフィックス部分をゾーン定義します。
0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa

これをそのままnamed.confに定義しましょう。

# vi /etc/named.conf

[ 以下の内容を追記する ]


zone "0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa" {
# マスターサーバとして定義 type master; # ゾーンファイル名を定義 file "2001:db8::.zone"; };


続いて逆引きゾーンファイルを作成します。ゾーン定義で使用していない残りの部分をホストとして登録します。


# vi /var/named/2001\:db8\:\:.zone

[ 以下の内容で作成する ]


$TTL 1800 @ IN SOA ns1.unix-power.local. postmaster.ns1.unix-power.local. ( 2013062200 ;Serial 10800 ;Refresh 3 hours 3600 ;Retry 1 hour 86400 ;Expire 1 day 3600 ) ;Minimum 24 hours IN NS ns1.unix-power.local. 0.0.1.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR ns1.unix-power.local.


桁数が多くて非常にわかりづらいですね・・・・・。これはなんとかしてほしいものですが、今のところなんともならないんでしょうね。ここまで設定が終わればbindを起動します。

# /etc/rc.d/init.d/named start
named を起動中: named: 既に実行中です                      [  OK  ]


■動作確認

リモートのIPv6ノードからnslookupで動作確認をとってみます。下記のようになればOKです。

>nslookup
既定のサーバー:  ns1.unix-power.local
Address:  2001:db8::100

> ns1.unix-power.local
サーバー:  ns1.unix-power.local
Address:  2001:db8::100

名前:    ns1.unix-power.local
Addresses:  2001:db8::100
          192.168.12.20

> 2001:db8::100
サーバー:  ns1.unix-power.local
Address:  2001:db8::100

名前:    ns1.unix-power.local
Address:  2001:db8::100

■DNSサーバの留意点

IPv6対応のDNSサーバを構築する上で留意する点はAレコードとAAAAレコードの両方が登録されていた場合です。DNSサーバに問い合わせAレコード、AAAAレコードの両方を回答するとIPv6が優先されます。もしIPv6ノードに通信を試みても通信が成立しない場合は即座にIPv4に切り替わるわけではなくIPv6のタイムアウトを待ってからIPv4に切り替わります。仮にIPv6のタイムアウトに30秒かかるとするとユーザはストレスを感じることになります。

こういった自体に陥らないためにIPv6の通信経路が確保されていないサーバ等はレコードの登録は行わないなどの配慮が必要です。


参考URL : http://www.atmarkit.co.jp/ait/articles/0401/14/news090.html




 
 関連記事
 DNSSECの動作確認
 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.