IPv6

IPv6でいろいろやったことを書いておく。
私自身のためのメモなので、あまり参考にしないでください…
いい方法あったら逆に教えてください。
まず、USAGIなkernelとcommandをいれる。
v6 over v4 tunnelを張ってもらえるよう手配する(人によってはこれがむずかしいかも)
以下のようなscriptを起動時に実行する。
なお、このような面倒な設定はrouterだけに必要で、ちゃんと設定されていれば、
同じネットワークのマシンはv6を有効にするだけでアドレスがもらえてrouteが設定される。
ちなみに私の場合は実際にはADSLで、2枚差しをしているのでもっと変なことをやっている……
#! /bin/sh
# rc.ipv6 -- setup ipv6 tunnel

ifconfig=/sbin/ifconfig
route=/sbin/route
ip=/usr/local/v6/sbin/ip

## local IP address 
PREFIX=3ffe:xxxx:xxxx:xxxx   # prefix部
ADDRESS=:1                   # host部
PREFIX_LEN=64                # prefixの長さ

## gateway IP address
TUNNEL_IPV4=xxx.xxx.xxx.xxx             # tunnel先のv4 address
TUNNEL_IPV6_PREFIX=3ffe:xxxx:xxxx:xxxx  # tunnel先のprefix
TUNNEL_IPV6_ADDRESS=xxxx:xxxx:xxxx:xxxx # tunnel先のhost部
TUNNEL_IPV6_PREFIX_LEN=64               # tunnel先のprefixの長さ

# fire up ipv6 module
/sbin/modprobe -q -k ipv6               # staticにしてればいらない
echo -n "IPv6 settings: "

# old style
#$ifconfig eth0 inet6 add $PREFIX:$ADDRESS/$PREFIX_LEN
#$ifconfig sit0 inet6 up tunnel ::$TUNNEL_IPV4
#$ifconfig sit1 up
#$route -A inet6 add 2000::/3 dev sit1

# new style
$ip tunnel add tunnel mode sit remote $TUNNEL_IPV4 ttl 255
$ip link set tunnel up
$ip addr add $PREFIX:$ADDRESS/$PREFIX_LEN dev tunnel
$ip route add 2000::/3 dev tunnel

## radvdやzebraでRouter Advertisementを流す

# start up radvd
#if [ -x /usr/local/v6/sbin/radvd ]; then
#  echo -n "radvd "
#  /usr/local/v6/sbin/radvd
#fi

# start up zebra
if [ -x /usr/local/sbin/zebra ]; then
  echo -n "zebra "
  /usr/local/sbin/zebra &
fi

echo "done."

radvdの設定は例えば次のようになる。
# /usr/local/v6/etc/radvd.conf
interface eth0
{
        AdvSendAdvert on;
        prefix 3ffe:xxxx:xxxx:xxxx::0/64
        {
                AdvOnLink on;
                AdvAutonomous on;
        };
};


(C)Copyright 2001 by Sian <sian@big.or.jp>
Last modified: Thu Feb 26 23:03:54 JST 2004