World IPv6 Dayに参加してみよう
4ステップでWebサーバをIPv6に対応させる方法

株式会社ユビテック
カスタマーサービスタスク サブチーフ
木村 保博
2011/5/19

DNSへの登録

 サーバにIPv6アドレスを設定しても、DNSに登録しなければ、このサーバはIPv6でアクセスされることはありません。それではIPv6で公開されていないのと同義ですので、適切にIPv6の設定を行う必要があります。

 今回はDNSサーバとして一般的と思われるBIND9での設定を例示します。

named.confの設定

 IPv6アドレスからのDNSクエリに答えられるようにします。具体的には、/etc/named.confの中のoptionsに以下の行を追加します。

listen-on-v6 { any; };

 なお、ACL(Access Control List)などで、特定の送信元IPアドレスからのみDNSクエリを許可している場合には、IPv6アドレスからのアクセスも許可する必要があります。Apacheと異なり、IPv6アドレスを角括弧[ ]などでくくる必要はありません。

acl SHANAI {
        172.16.20.0/23;
        172.16.30.0/24;
        172.16.40.0/21;
        127.0.0.1;
        2001:200:c10:82::/64;
        ::1;
};

 念のため、named.rootは常に最新版であること(AAAAレコードのROOTサーバが設定されていること)を確認してください。named.rootの最新版は、以下より取得できます。

ftp://rs.internic.net/domain/named.root

ゾーンファイルの設定

(1)正引き設定

 localhostとURL用のドメイン(ubiteq.co.jp)のゾーンファイルに、AAAAレコードを追加します。

・localhostのゾーンファイルを以下のように修正

$TTL    86400
@       IN SOA  @       root (
                                42        ; serial (d. adams)
                                3H        ; refresh
                                15M      ; retry
                                1W        ; expiry
                                1D )      ; minimum
        IN      NS      localhost.
        IN      A        127.0.0.1
        IN      AAAA  ::1

・ubiteq.co.jpのゾーンファイルを以下のように修正

$TTL    86400
@       IN SOA  @      root (
                                42        ; serial (d. adams)
                                3H       ; refresh
                                15M     ; retry
                                1W       ; expiry
                                1D )     ; minimum
    (省略)
www   IN      A         211.14.19.88
IN      AAAA 2001:200:c10:82::88

(2)逆引き設定

 loopbackアドレスとサーバに設定したIPv6アドレスが逆引きできるように、2つのゾーンファイルを追加します。正引きの場合とは異なり、単純に各ゾーンファイルへのレコード追加をするだけではなく、named.confファイルにそのゾーン用の設定を追加することが必要です。

 特に、named.conf内での2001:200:c10:82::/64の逆引きゾーンの指定については、

  • IPv6アドレスの省略されている0を補完する(2001:0200:0c10:0082)
  • 1文字ずつ逆に並べ「.」(半角ドット)で区切る(2.8.0.0.0.1.c.0.0.0.2.0.1.0.0.2)

のように変更し、最後に.ip6.arpa.を補う形で指定します。

・named.confの修正

zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa." IN {
        type master;
        file "named.ip6.local";
};
zone "2.8.0.0.0.1.c.0.0.0.2.0.1.0.0.2.ip6.arpa" in {
        type master;
        file "zone.2001:200:c10:82::0";
}

・named.ip6.localの作成

$TTL    86400
@       IN    SOA  localhost. root.localhost. (
                                42        ; Serial
                                3H        ; Refresh
                                14400   ; Retry
                                3600000    ; Expire
                                86400 )     ; Minimum
        IN      NS      localhost.
1       IN      PTR   localhost.

・zone.2001:200:c10:82::0の作成

$TTL    86400
@       IN SOA  @       root (
                                42        ; serial (d. adams)
                                3H        ; refresh
                                15M      ; retry
                                1W        ; expiry
                                1D )      ; minimum
(省略)
8.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR www.ubiteq.co.jp.

 PTRレコードでは、named.conf内のゾーン指定と同じように、「省略されている0を補完し、逆に並べる」ところに注意が必要です。

(3)設定の反映と確認

 変更したゾーンファイルのSerialを忘れずに更新し、namedを再起動します。

# /sbin/service named restart

 Apacheのときと同様に、netstatなどでIPv6アドレスでDNS QueryをLISTENしていることを確認します。

# netstat -an|grep 53
(省略)
tcp 0 0 :::53 :::* LISTEN

 また、digなどで設定したaaaaレコードが引けることを確認します。

# dig www.ubiteq.co.jp aaaa
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_5.3 <<>> www.ubiteq.co.jp aaaa
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15445
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.ubiteq.co.jp.                IN      AAAA

;; ANSWER SECTION:
www.ubiteq.co.jp.       481     IN      AAAA 2001:200:c10:82::88

(以下省略)

 DNSレコードの設定が完了した時点で、WebサーバはIPv6でも公開されていることになります。Apacheのアクセスログで、IPv6を送信元IPアドレスとするアクセスが発生していることを確認してください。

【関連記事】
IPv6対応DNSサーバの実現
http://www.atmarkit.co.jp/flinux/rensai/bind912/bind912a.html

最後に

 今回はIPv4アドレスで動いているWebサーバにIPv6アドレスを追加し、公開する例を解説しました。これを機にWebサイトオーナーとしてWorld IPv6 Dayへの参加を決めたなら、ISOCに連絡すると、参加サイト一覧に名前が掲載されます。

 このような、いわゆるIPv4/IPv6デュアルスタックな環境の稼働監視は、IPv4、IPv6両方のIPに対し行う必要があります。例えば、DNSのquery/answerの監視においても、IPv4とIPv6両方のqueryに応答していることを確認する、などのオペレーションが必要です。

 今回は、World IPv6 Dayの1日だけのIPv6運用だとしても、近い将来、IPv6が常態的に使われるようになる日が訪れます。そのことを鑑み、この期間は「IPv6環境の監視」にもチャレンジされることをお勧めします。

【関連記事】
「World IPv6 Day」に向けて準備すべきこととは
http://www.atmarkit.co.jp/news/201104/28/w6d.html


4ステップでWebサーバをIPv6に対応させる方法
  World IPv6 Dayがやってくる
IPv6アドレスの入手
ネットワークのIPv6対応
  サーバのIPv6対応
DNSへの登録
最後に
「Master of IP Network総合インデックス」


Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間