Windows Server 2003をお手軽6to4ゲートウェイにする方法

Windows Server 2003をお手軽6to4ゲートウェイにする方法

タグ:
加畑 健志



 マイクロソフトからWindows Server 2003がリリースされた。このOSにはXP同様、IPv6が簡単に利用できる環境が装備されている。またWindows 2000に比べてIPv6をサポートするアプリケーションも増え、IPv6をより実用的に利用できるようになった。今回はWindows Server 2003を社内にIPv6ゲートウェイとして設置し、社内ネットワークからIPv6インターネットへアクセスする方法を解説する。
 IPv6を利用する方法にはいくつかある。その中でIPv4環境しかない場合に利用できるものの1つが6to4だ。6to4を使うとグローバルIPv4アドレスから生成される特別なIPv6アドレスを使うことで、特別な手続きを必要とせずにIPv6インターネットへのアクセスができる。特にWindows XPなどではグローバルIPv4アドレスがネットワークインターフェイスに割り当てられると6to4が自動設定で構成される。そのためダイヤルアップなどでインターネットにアクセスすると、何の追加設定もなくIPv6インターネットに接続できる。
 このように便利な6to4だがいくつかの制約がある。1つはグローバルIPv4アドレスが割り当てられていなければ自動設定が使えないということだ。もう1つは6to4ゲートウェイと呼ばれるIPv4とIPv6の橋渡しをするサーバーがWindowsの場合、デフォルト設定では米国にあるマイクロソフトの提供しているサービスを使うため遅いということだ。
 後者に関してはKDDIが提供している6to4サーバーを使うことである程度解決できる。しかし前者の問題は固定IPを1つだけ利用できるようなサービスを使っていても、社内ではNATによりプライベートアドレスを利用している環境では簡単に使うというわけにはいかなかった。ところが社内(またはDMZ)にIPv6ゲートウェイ(的なもの)を設置することで、既存環境にほとんど手を加えることなく社内のIPv6が使えるクライアントからのIPv6インターネットアクセスは実現できる。


6to4ゲートウェイを構成する

今回は小規模ネットワークでは一般的だと思われる以下の環境での構成手順を説明する。
  • 用意するもの
    • Winodws Server 2003(ネットワークカードは1枚でかまわない)
    • 固定グローバルIPv4アドレス1個
    • テスト用Windows XP SP1(IPv6をインストールしておくこと)
設定手順

 まずWindows Server 2003をインストールする。デフォルトではIPv6は有効になっていないので、コマンドラインから

netsh interface ipv6 install

と入力するか、ネットワークのプロパティからIPv6をインストールする。

図1

 IPv4側の設定は特に変更する必要はなく、DHCPでアドレスを取得するようになっていてもかまわない。

Windows Server 2003、Windows XPではIPv6アドレスでWebサイトにアクセスできない

 Windows 2000で提供されていたIPv6プロトコルスタックでは例のようにURL指定にリテラル形式と呼ばれるIPv6アドレスを直接指定する方法が許されていた。

(例) http://[2001:240:XX:80]/

 ところがWindows XPおよびWindows Server 2003はこの方式の表記をサポートしていない。すなわちテストをする際などにブラウザーでアドレスを直接入力できないのだ。Pingやtracertなどでは問題ないのだが、IISやWindows Mediaなどで試したいときに不便だ。これを解決するためにDNSが必要ということになる。Hostsファイルに書く方法が使えればいいのだがWindowsではこの方法が使えないのは痛い。
 Windows Server 2003はIISだけでなくWindows Media ServiceもIPv6に対応しているが、その際にもDNSがないとサービスにアクセスすることもできないので要注意だ。

 次に、このマシンで6to4が使えるようにするために以下のコマンドを実行する。インターフェイス番号は使用しているネットワークカードの枚数などにより変化する場合があることに注意すること。ここで指定するのは社内のネットワークに接続されているネットワークインターフェイスを指定する。

// KDDIの6to4サービスを使う
netsh interface ipv6 6to4 set relay 202.255.45.5 enable
// 6to4用のアドレスを割り当てる※1
netsh interface ipv6 add address interface=3 address=2002:XX:YY::XX:YY
//// ルートを設定する。※2
netsh interface ipv6 add route 2002:XX:YY:4::/64 4 publish=yes
// デフォルトルートを設定。KDDIのサーバーに向ける
netsh interface ipv6 add route ::/0 3 2002:caff:2d05::1 publish=yes
//
// ルータ広告などの設定。
netsh interface ipv6 set interface 3 forwarding=enabled
netsh interface ipv6 set interface 4 forwarding=enabled advertise=enabled

 この中のXX:YYは、割り当てられているグローバルIPv4アドレスを16進表記したものとなる。ここまでの設定が終了したらクライアントのXPなどでipconfigを実行してみれば2002で始まるIPv6アドレスが割り当てられていることが分かるだろう。この状態でwww.kame.netなどにアクセスできるはずだ。またWindows 2000ではIPv6に関する設定はこれらの設定はリブートによって消えてしまうものがあったが、Windows Server 2003では一度設定すればOKだ。

例では6to4インターフェイスに割り当てているアドレスは2002:XX:YY::XX:YYとしているが、2002:XX:YY::80のように割り当てられたどの部分を使ってもかまわない。
ここで指定しているサブネットはインターフェイス番号と同じにするという慣習に基づき4だが、もちろん他の数値でかまわない。

Windows 2000で使う際の注意

 Windows 2000にIPv6スタックをインストールした場合、インターネットエクスプローラー6を使うとIPv6サイトにアクセスできない。これを修正するには、hs247.comのtpipv6-001205-SP2-IE6.zip を使うことで回避できるが、正規版ではないので、各人の責任の上で試してほしい。

課題

 筆者のテスト環境では、内部から外部へのアクセスはまったく問題ないものの、外部から内部クライアントへのアクセスができない。具体的にはXPクライアントをダイヤルアップでインナーネットに接続し、マイクロソフトの6to4サーバーを使う設定でテスト環境への経路を調べようとしたがうまくいかなかった。さらにXPマシンをダイヤルアップで使用した際に6to4サービスの自動設定がうまくいかない場合に何度も遭遇した。再現性がないので何が悪いのかは不明だ。


簡単に既存ネットワークをIPv6化できる

 いくつかの問題はあるものの、既存環境にほとんど影響を与えず、非常に簡単にIPv6レディなネットワークにできることが分かっていただけたと思う。実はこのやり方はWindows XPでも同様に可能だと思われる。固定IPアドレスが使えるユーザーはぜひ試してみてほしい。

この記事のトラックバックURL

http://www.ipv6style.jp/trackback/304
Ads by Google

特集

リンク

go6.netはIPv6の普及を促進するコミュニティ・ポータルです。
http://go6.net/