アドレスの記述方法から正引き/逆引きの設定までを分かりやすく解説する。9にはさらに魅力的な機能が盛り込まれています。今回は、IPv6機能を紹介します。IPv6の基本IPv6について、いまさら補足する必要はないでしょう。@ITでも、以下の記事でLinuxでIPv6環境を構築する方法が紹介されています。参考:Linuxで作るIPv6ネットワーク環境[前編]Linuxで作るIPv6ネットワーク環境[中編]Linuxで作るIPv6ネットワーク環境[後編]DNSサーバ自体をIPv6環境に移行する方法については、上記の記事を参照してください。本記事では、IPv6アドレスが引けることを前提とします。サーバがIPv4/v6どちらの環境にあるかは問題にしません。いくつかのキーワードを予備知識としてまとめておきます。IPv6アドレス128bitのアドレス空間を使用することが可能で、2の128乗個のアドレスを生成できます。IPv4と同様、予約されているアドレスもあるため、すべてが使用できるわけではありません。それでも、IPv4に比べて2の96乗倍という巨大なアドレス空間を利用できます。128bit幅になり、10進数でIPアドレスを表記するようなことをせずに16進数を4けたごとに「:」で区切ります。3ffe:0200:0000:010a:0000:0000:0000:0001IPv4のように、生IPアドレスでpingやtracerouteを行うのは現実的ではありません。それ故に、IPv6においてはDNSが果たす役割が大きくなります。アドレスの省略表記IPv6アドレスは、省略表記が可能です。分割された各セクションは、先頭に0が続く場合は省略可能で、セクションすべてが0であれば「::」と空欄にすることもできます。空欄を用いることができるのは1アドレスに1カ所のみです。3ffe:200:0:10a:0:0:0:1先頭または末尾に0が連なる場合も、省略表記が可能です。Fe12::アドレス(グローバルユニキャストアドレス)の生成IPv6は固定IPを割り当てることもできますが、DHCPのようなプロトコルを用いることなく自動構成されます。図1のように、アドレスを上位64bitと下位64bitに分けます。Advertisement)によって取得したもの、下位64bitはそれぞれ端末のネットワークインターフェイスのMACアドレスを基に生成したもので構成されます。上位64bitを「ネットワークプレフィックス」、下位64bitを「インターフェイスID」と呼びます。fe)を挿入して64bitとし、7bit目(ユニバーサル/ローカルビット)を1にセットにすることでインターフェイスIDを生成します。IDとして使用することもあります。ここでは自動構成機能によって決まるグローバルユニキャストアドレスを説明しましたが、ほかにも制御用に使用されるリンクローカルアドレス、サイト内だけで有効なサイトローカルアドレスがあります。Advertisement)ルータはネットワークプレフィックス情報を含むRAパケットを一定間隔で流します。RAパケットを受け取ったIPv6端末は、これを基にユニークなグローバルユニキャストアドレスを生成します。ネットワークプレフィックスはネットワーク固有の値である必要があるため、管理者はそのように設定を行います。RAは、ネットワークプレフィックス以外にプレフィックスの最終有効期間や推奨有効期間およびデフォルトルータとその有効期間なども通知しますが、DHCPのようにDNSやドメイン名を通知したり、端末のMACアドレスごとに特別な設定を行うことはできません。Solicitation)パケットを送出して、ネットワークプレフィックスを要求します。IPv4-mappedアドレスとIPv4-compatibleアドレスIPv4-mapped(IPv4射影IPv6)アドレスはIPv4アドレスを含むIPv6アドレスで、IPv6端末やホストがIPv4ノードと通信する際に使用します。IPv4アドレスの前に80bitの0と16bitの1(すなわち先頭96bitが0:0:0:0:0:ffff:)を付加することで生成します。IPv4アドレス192.168.20.1IPv4-mappedアドレス0:0:0:0:0:ffff:192.168.20.1または::ffff:192.168.20.1IPv4-mappedアドレス生成例IPv4-mappedアドレスは、IPv6しかサポートしないアプリケーション(注)がIPv4アドレスを処理するために内部的に用いるもので、DNSには一切記述しません。注:アプリケーションはIPv6にしか対応していなくても、ホスト自身はIPv4とIPv6の両方に対応している必要があります。同様に、IPv6アドレスの下位32bitにIPv4アドレスを埋め込んだものに、IPv4-compatible(IPv4互換IPv6)アドレスがあります。こちらは、IPv6ホスト間がIPv4ルータなどで分断されているような場合に通信を可能にするもので、IPv4アドレスの前に96bitの0を付加します。IPv4アドレス192.168.20.2IPv4-compatibleアドレス0:0:0:0:0:0:192.168.20.2または192.168.20.2IPv4-compatibleアドレス生成例IPv4-mapped/IPv4-compatibleアドレス共に、IPv4からIPv6への移行を容易にするために考案されたものです。9でIPv6アドレスを引けるようにしてみましょう。ここでは、以下のようなホスト情報を登録します。登録するホスト情報ホスト名pc1v6.example.jpネットワークプレフィックスfec0:0:1:2::/64IPアドレスfec0:0:1:2:3:4:fe8b:5d40注:サイトローカルアドレスを使用します。正引きの設定は、IPv6でも基本的にはIPv4と変わりません。ここでは、IPv4を前提としていた第2回と違う点を確認していきます。使用するファイルは/etc/named.conf、/var/named/local.zone、/var/named/example.zone(注)です。注:$jailを用いている場合などはファイルパスが異なります。環境に応じて適宜読み替えてください。(3)example.zone/etc/named.confのoptions{};に、(1)を追加してIPv6アドレスからの問い合わせに答えられるようにします。IPv4のアクセス制限では、アドレスやネットワークごとに細かい設定ができますが、IPv6の場合は「any」か「none」のみの指定になります。named.conf内のlocalhost/example.jpゾーン節の記述については、IPv4と同じです。local.zoneファイルには、(2)を追加します。IPv6は、ループバックアドレスとして「0:0:0:0:0:0:0:1」(省略形式は「::1」)を用います。IPv4のループバックアドレスと混在していますが、特に問題ありません。ホスト名「pc1v6」の正引きの登録は、(3)のようにAAAA(「クワッドエー」と発音します)レコードを用いて行います。Aレコードと同様、「AAAA」に続けてIPv6アドレスを指定します。namedプロセスを再起動後、登録が完了しているかを確認します。digコマンドを使用し、AAAAレコードを検索するために引数の最後に「AAAA」を指定します。続いて逆引きの設定を行います。第4回の説明と違う点を確認します。使用するファイルは、/etc/named.confと新規に用意する/var/named/localv6.zone、/var/named/efec0:0:1:2::.revです。正引きの際に使用したIPv6アドレスは、16進数を用いて4けたごとに「:」で区切ったものを用いましたが、IPv4と同じく、逆引きではIPアドレスの順序を反転させたものを使用し、ドメインツリーをたどれるようにします。その際、4bit(16進数1文字)ごとに「.」を挿入し、「:」を削除します。これで32個のサブドメインに分割されたことになります。IPv4は末尾に「in-addr.arpa」を連結しましたが、IPv6は「ip6.arpa」を連結します。歴史的経緯から「ip6.int」を使用するアプリケーションが存在しているため(注)、互換性のためにip6.intについても記載しますが、将来的には使用されなくなります。注:IPv6用の逆引きドメイン名としてip6.intが予約されていましたが、後にip6.arpaへの移行が決定されました。3152(http://www.rfc-editor.org/rfc/rfc3152.txt)逆引きアドレスの記述方法が分かったところで、各種ファイルの記述例を見ていきましょう。(注)(10)fec0:0:1:2::.rev注:1行で記入します。IPv6のループバックアドレスの逆引きを登録するため、セクション(4)、(6)を追加します。参照する「localv6.rev」は、(4)と(6)で同じものを使用します((5)、(7))。(8)、(9)でネットワークプレフィックス「fec0:0:1:2::/64」の逆引きゾーンを指定します。ip6.arpa/ip6int両対応とし、ゾーンファイルは両ゾーンで共通の「fec0:0:1:2::.rev」を使用します。fec0:0:1:2::.revはIPv4アドレスと同様に、PTRレコードを用います(10)。ゾーンファイルが完成したら、動作確認をします。digコマンドで引数にIPv6アドレスを-xオプションとともに使用しますが、その際に-nオプションを忘れずに付加しましょう(理由は後述)。fec0:0:1:2:3:4:fe8b:5d40」。SECTIONで、ip6.intを参照しているのが分かります。ip6.arpaを参照しないのは-nオプションを指定しているためですが、digコマンドで-nオプションを外すと次のようになり、digでの逆引きができません。←見慣れないアドレス(省略)-nオプションを外すと、「\[xFEC000000001000200030004FE8B5D40/128].ip6.arpa」が検索アドレスとして生成されているのが分かります。Format」と呼ばれるものです。Formatで指定されたゾーンファイルが必要です。Formatを使用するため、ここまでの設定で何ら支障はありません。Format対応の逆引き設定digでip6.arpaを引けるようにする設定を紹介します。Format対応となる予定です。Formatの使用は推奨されていません。Formatの確認と併せて参考としてお読みください。Formatに対応させるため、named.confとfec0:0:1:2::arpa.revファイルを新規に用意します。アドレスの指定部分以外は同じです。(注)fec0:0:1:2::arpa.rev注:1行で記入します。