IPv6ネットワーク構築とパケットフィルタリング:Linuxで作るIPv6ネットワーク環境(3)(2/3 ページ)
IPv6環境の構築も大詰め。最後にip6tablesを使ったパケットフィルタリングでセキュリティ対策を行う。そのマシンをルータとすることで、IPv4とIPv6が共存したネットワークとなる。
IPv6環境におけるネットワークの手動設定
ここまでの手順で、USAGIマシンをルータにするための設定は完了です。次に、ネットワークに接続されるマシンを設定する必要があります。それには2通りの方法が挙げられます。
- コマンド類を駆使して接続用マシンの設定を行う(手動設定)
- ルータとなるUSAGIマシン上でradvdを動作させる(自動構成)
ここでは、手動設定について説明します。ここで用いるマシンは、*BSD用のIPv6スタックであるKAMEがインストールされたマシンです。今回の場合は、FreeBSD-4.6 Releaseのマシンを使用しています。USAGIマシンを用いる場合は、ルータでのアドレス設定や経路設定の方法について、適宜読み替えてください。
■ネットワークインターフェイスに対するIPv6アドレスの付与
実験用マシンについても、当然外部と通信可能なIPv6アドレスが必要になります。グローバルアドレスが必要なことから、表1で割り出したネットワークに属するアドレスを付与します。今回は、2001:2c0:418:1::2/64というアドレスをKAMEマシンに付与します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
vx0は、USAGIマシンと同じネットワークセグメントに接続されているインターフェイスの名前です。うまくIPv6アドレスがインターフェイスに追加されていれば、ifconfigの実行結果は、例えばリスト3のような形になります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
IPv6アドレスを付与したら、すでにIPv6アドレスを付与されているUSAGIホストに対する通信が可能かどうかをping6コマンドを用いて確認します。通信が可能な場合は、例えば以下のような形でレスポンスがあります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
■経路の設定(スタティックルーティング)
次にIPv6ネットワークに対する経路を追加するわけですが、まずデフォルトルートを追加する必要があります。これは、中編で紹介した経路を少しいじります。外部ネットワークと通信できるホストは、いまのところUSAGIマシンだけなので、このマシンを2000::/3と3ffe::/16のネットワークに対するゲートウェイとします。具体的には、routeコマンドを以下のように実行します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
この結果、実験用IPv6マシンに対して設定されたIPv6ネットワーク用のルーティングテーブルはリスト4のようになります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
■実験用IPv6マシンからの対外接続の実施
ここまでの設定に間違いがなければ、外部のIPv6ネットワークに対する接続が可能になっているはずです。telnetを用いて、www.kame.netのTCP/80番ポートに接続したうえで、OPTIONSメソッドを発行してみた様子をリスト5に示します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
IPv6環境におけるネットワークの自動設定
手動でIPv6対応のマシンをネットワークに参加させる方法は理解できたと思います。次は、 ルータとなるUSAGIマシン上でradvdを動作させ、自動構成する方法を説明します。
IPv6では、「Neighbor Discovery for IP Version 6 (IPv6)」(RFC 2461)に記述されている機能を用いて、接続されるホストのネットワーク設定を自動的に構成することが可能です。具体的には、Router Advertisementと呼ばれる機能を用いて、ルータの所在(アドレス)とネットワークプリフィックスを接続されたホストに与えます。
■ホストの設定
radvdを動かす前に、ルータとなるUSAGIマシンでRouter Advertisementパケットを受け取らない(受け取っても解釈しない)ようにしなくてはなりません。そのために、/proc/sys/net/ipv6/conf/all/accept_raを「0」に設定します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
この設定を行わないと、ルータが出したRouter Advertisementパケットをルータ自身が受け取ってしまいます。
■radvdの設定
Router Advertisementパケットを解釈しないようにしたら、次はradvdを稼働させます。
USAGI STABLE Release 4のコマンドをインストールしたのであれば、/usr/local/v6/etc下にradvd.confというファイルを作成し、/usr/local/v6/sbin/radvdを起動すれば作業自体は完了します。以下に、radvdの設定ファイルであるradvd.confの内容を示します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
■実験用IPv6マシンの設定
実験用マシンについては、「OSがIPv6スタックを搭載していること」以外の条件は必要ありません。あえていうならば、Router Advertisementパケットを受け取って解釈できるようにしておく必要があります。
KAMEマシンの場合、カーネルパラメータであるnet.inet6.ip6.accept_rtadvの値を1にすることで、Router Advertisementパケットを受け取れるようになります。この値が0の時点では、KAMEマシンのvx0のアドレス付与状況はリスト7、経路情報はリスト8のようになります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
以下のコマンドを実行し、Router Advertisementパケットを受け取れるようにするとどうなるかを見てみましょう。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
インターフェイスに対してアドレスが付与されている状態をリスト9、経路が設定されている状態をリスト10に示します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
リスト7では設定されていなかった、「2001:」で始まるアドレスがvx0に対して付与され、リスト8では設定されていなかったデフォルトルート(default)が設定されているのが分かります。
ここではデフォルトルートとして、リンクローカルアドレスであるfe80::2a0:24ff:fe56:9789%vx0が割り当てられていますが、これは基本的に同一リンク内で識別すべき性質のものであるため、特に問題にはなりません。
なお、Router Advertisementを使ってIPアドレスの自動割り当てを実施する場合、128bitsのIPアドレスのうち、上位64bitsはRouter Advertisementの内容に従って設定され、下位64bitsはイーサネットインターフェイスの持つMACアドレスを基にして、EUI64形式で設定されます。
■WindowsマシンのIPv6クライアント設定
radvdを稼働させた状態であれば、特に面倒な操作をしなくてもIPv6対応のクライアントを接続することが可能になります。
クライアントOSでIPv6に対応している例としては、Windows XPがあります。Windows XPでIPv6を利用するには、http://www.microsoft.com/japan/windowsxp/pro/techinfo/administration/ipv6/default.aspのとおりに作業します。
Windows 2000の場合は、IPv6 Technology Preview(http://msdn.microsoft.com/downloads/sdks/platform/tpipv6/start.asp)からダウンロード可能なhotfixを使用することになります。
ただし、このhotfixはSP1が適用されたWindows 2000環境での使用のみ想定しているため、SP2、SP3が適用された環境で使用する場合は、ダウンロードしたファイルを展開すると作成されるsetup.exeを、さらに、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
として展開し、展開された内容に含まれるhotfix.infを書き換えます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
という行を探し、「256」を「512」(SP2環境)もしくは「768」(SP3環境)と書き換えてから、hotfix.exeを実行します。
Windows 2000用のIPv6スタックは、もともとPreview版であり、さらにMicrosoftが想定しているのとは異なる環境で稼働させるため、この方法を試すなら完全に自己責任となります(注)。
注:筆者の環境ではうまく動きましたが、ほかの環境でも動くという保証はありません。
hotfixが適用され、再起動&ログオンがうまくいったら、[ローカルエリア接続のプロパティ]ダイアログボックスで[インストール]ボタンをクリックし、「プロトコル」で「Microsoft IPv6 Protocol」を選択して[OK]ボタンを押します。
うまくいけば、画面3のようにIPv6プロトコルが追加されます。
設定の確認は、コマンドプロンプト上でipv6コマンドを実行することで行います(画面4)。実行結果をリスト11に示します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Copyright © ITmedia, Inc. All Rights Reserved.