トンネルの張り方



next up previous
Next: zebraのインストール Up: IPv6ルータとしての設定 Previous: IPv6ルータとしての設定

トンネルの張り方

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



Yuji SEKIYA
Wed Apr 22 20:00:22 JST 1998