CentOS6 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

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする