なお、以下の例に挙げるコマンドはRev.04.04.05に基づいています。リビジョンによりコマンドが異なる場合があるのでご注意下さい。
IPv4 ネットワーク
------+----------------------------------+--------
| |
| 61.115.117.105 |
+---+--+ |
|RTA54i| | 10.0.0.1
+---+--+ +-----+-----+
| 192.168.0.1 |IPv6 router+---- IPv6 ネットワーク
| +-----------+
| 会社
----+------------------+----
| |
+---+---+ +----+----+
|FreeBSD| |WindowsXP|
+-------+ +---------+
192.168.0.2 192.168.0.4
自宅
会社側のIPv6ルータと自宅のRTA54iの間でトンネリングを設定します。会社側のIPv6ルータのIPアドレスは仮に10.0.0.1と表記していますが、実際はもちろんグローバルアドレスです。
まずはフィルタリングを解除します。
# ip filter 200090 pass 10.0.0.1 * ipv6 * * # pppoe use lan2 # ip pp secure filter in (既存のフィルタ設定) 200090通常はWAN側にフィルタリングをガシガシと掛けているはずなので、これがないとトンネリング設定をしてもpingさえ通りません。
次に実際にトンネリングを作成します。
# tunnel select 3 # tunnel encapsulation ipip # tunnel endpoint address 192.168.0.1 10.0.0.1 # tunnel enable 3トンネルのRTA54i側のアドレスはLANインターフェースのアドレスを割り当てています。直感的には変な気分なのですが、ヤマハの解説によると、「PPインタフェースにアドレスを付与しないときや、 IPCPで動的にアドレスを取得するときには、 LAN(LAN1)インタフェースに設定したアドレスを設定してください」とのことなので、このような設定になっています。
どのように設定されたか確かめてみます。
# show ipv6 address (中略) TUNNEL[3] scope-id 39 [up] Received: 0 packets 0 octets Transmitted: 0 packets 0 octets リンクローカル fe80::2a0:deff:fe0b:7598/64 リンクローカル ff02::1/64 リンクローカル ff02::2/64ここで、scope-idは後ほど重要な役割をはたすので、39という数字をおぼえておきましょう。
# ping6 ff02::1%39 fe80::250:45ff:fe00:4844 (fe80::250:45ff:fe00:4844)から受信: シーケンス番号=0 fe80::250:45ff:fe00:4844 (fe80::250:45ff:fe00:4844)から受信: シーケンス番号=1 (以下略)上の「ff02::1%39」というアドレスの意味ですが、前半の「ff02::1」はリンクローカルのマルチキャストアドレス、「%39」は上で確認したscope-idです。
# ipv6 route default gateway fe80::250:45ff:fe00:4844%39デフォルトゲートはトンネリング先のリンクローカルアドレスにします。
# ipv6 lan1 address 3ffe:8200:0:7::1/64
# ping6 3ffe:501:4819:2000:280:adff:fe71:81fc 3ffe:501:4819:2000:280:adff:fe71:81fc (3ffe:501:4819:2000:280:adff:fe71:81fc)か ら受信: シーケンス番号=0 3ffe:501:4819:2000:280:adff:fe71:81fc (3ffe:501:4819:2000:280:adff:fe71:81fc)か ら受信: シーケンス番号=1 (以下略)
# ipv6 prefix 1 3ffe:8200:0:7::/64 # ipv6 lan1 rtadv send 1DHCPと違い、ルータ広告ではネットワーク部の前半64ビットのみを各ホストに通知します。ホスト部の64ビットは各ホストで勝手に決めてね、ということです。(勝手に決めた後に重複チェックはちゃんと行うので、アドレスがぶつかる恐れはまずありません)
options INET6 #IPv6 communications protocolsなければこの行を追加してカーネルの再構築をしてください。
ipv6_enable="YES" # Set to YES to set up for IPv6.なければこの行を追加して再起動してください。
% ifconfig vr0: flags=88433ffe:8200:0:7:290:99ff:fe15:e6bf というグローバルアドレスが割り当てられています。mtu 1500 inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::290:99ff:fe15:e6bf%vr0 prefixlen 64 scopeid 0x1 inet6 3ffe:8200:0:7:290:99ff:fe15:e6bf prefixlen 64 autoconf ether 00:90:99:15:e6:bf media: Ethernet 100baseTX status: active (以下略)
アプリケーションも、portsで入れられるものはほとんどがIPv6対応になっています。詳しくは梅本さんの「IPv6対応アプリケーションを使おう」を参照してください。
C:\> ipv6 installを実行します。
C:\>ipv6 if
Interface 4: Ethernet: ローカル エリア接続
uses Neighbor Discovery
uses Router Discovery
link-layer address: 00-90-99-17-72-65
preferred global 3ffe:8200:0:7:9db8:48cf:b860:640b, life 6d18h42m37s/18h40m1
6s (anonymous)
preferred global 3ffe:8200:0:7:290:99ff:fe17:7265, life 29d23h58m5s/6d23h58m
5s (public)
preferred link-local fe80::290:99ff:fe17:7265, life infinite
multicast interface-local ff01::1, 1 refs, not reportable
multicast link-local ff02::1, 1 refs, not reportable
multicast link-local ff02::1:ff17:7265, 2 refs, last reporter
multicast link-local ff02::1:ff60:640b, 1 refs, last reporter
link MTU 1500 (true link MTU 1500)
current hop limit 64
reachable time 24500ms (base 30000ms)
retransmission interval 1000ms
(以下略)
3ffe:8200:0:7:9db8:48cf:b860:640とb3ffe:8200:0:7:290:99ff:fe17:7265の2つがついていますね。anonymousとpublicの違いはよく判りません。
アプリケーションについては、ブラウザはIE6がIPv6対応になっています。IPv6のためだけにIEを立ち上げなければいけないのは非常に不愉快ですが、Windows用Mozillaが未対応なので仕方ありません。(;_;)
それ以外のフリーソフトは、加藤さんのページでパッチなどが公開されています。