IPv4ネットワークを中間に経由して,IPv6ネットワーク同士を接続する場合に は,トンネルを設定する必要がある.Linuxマシンでトンネルを設定する場合 には,sitというデバイスを用いる.
それでは,具体的な例を挙げてトンネルの設定方法を説明する.
自分側のネットワークをIPv6 Network A,相手側のネットワークをIPv6 Network B とする.ゲートウェイマシンのアドレスは図の通りである.つまり, IPv6 Network Aのゲートウェイマシンが,現在設定中のLinuxマシンであると する.
この条件でトンネルを張るには,次のようにsitデバイスを設定する.sitデバ イスとは,IPv6 over IPv4のトンネルを張るために提供されているデバイスで ある.
これで自分側のトンネル設定は完了である.相手側でも同様な設定を行えば, トンネルが確立する.# ifconfig sit0 up # ifconfig eth0 add 3ffe:501:1eee::1/48 # route -A inet6 add 3ffe:501:1eee::0/48 dev eth0 # ifconfig sit0 tunnel ::192.168.2.1 # ifconfig sit1 inet6 add 3ffe:501:2eee::1 # route -A inet6 add 3ffe:501:2eee::0/48 gw fe80::192.168.2.1 dev sit1 # # echo 0 > /proc/sys/net/ipv6/accept_ra # echo 0 > /proc/sys/net/ipv6/accept_redirects # echo 1 > /proc/sys/net/ipv6/forwarding
実際の接続には以下のようなスクリプトを利用すると便利である.
#!/bin/bash ifconfig=/sbin/ifconfig route=/sbin/route ## local IP address # Your IPv6 prefix PREFIX=3ffe:501:1eee ADDRESS=:1 PREFIX_LEN=64 ## gateway IP address TUNNEL_IPV4=192.168.2.1 TUNNEL_IPV6_PREFIX=3ffe:501:2eee TUNNEL_IPV6_ADDRESS=:1 TUNNEL_IPV6_PREFIX_LEN=64 echo 0 > /proc/sys/net/ipv6/accept_ra echo 0 > /proc/sys/net/ipv6/accept_redirects echo 1 > /proc/sys/net/ipv6/forwarding # local interface $ifconfig sit0 up $ifconfig eth0 add $PREFIX:$ADDRESS/$PREFIX_LEN $route -A inet6 add $PREFIX::0/$PREFIX_LEN dev eth0 # tunnel $ifconfig sit0 tunnel ::$TUNNEL_IPV4 $ifconfig sit1 inet6 add $PREFIX:$ADDRESS $route -A inet6 add $TUNNEL_IPV6_PREFIX::0/$TUNNEL_IPV6_PREFIX_LEN gw \ fe80::$TUNNEL_IPV4 dev sit1