Posted on Sat Dec 25 01:09:25 +0900 2010 by nabeken
さくらのVPSでは2010/12/24現在、IPv6の接続性は提供されていません。 しかし、さくらインターネット自体はtokyo6to4に参加しているため6to4経由で快適にIPv6ネットワークへ接続することができます。 1点ハマりどころがあったので記します。
まずはIPv4アドレスから6to4用のIPv6アドレスを算出します:
# printf 2002:%02x%02x:%02x%02x::1/16 59 X X X (anycastIPv4アドレスを使うので/16になる)
192.88.99.1とのトンネルを作成します:
# ip tunnel add 6to4 mode sit remote 192.88.99.1 local 59.X.X.X ttl 64 # ip link set 6to4 up # ip addr add 2002:IPV4ADDR::1/16 dev 6to4 # ip -6 route add default via 2002:c058:6301::1 dev 6to4
本来はここまでの作業で6to4が使用可能になるのですが、当初なぜかリレールータ以外にping6が通りませんでした。パケットキャプチャを行なったところ、tokyo6to4を経由する場合リレーサーバからの戻りパケットのソースアドレスが192.88.99. 2 になっていました。
192.88.99.2とは直接トンネルを張ることを試みたところうまく張れませんでした:
# ping 192.88.99.2 PING 192.88.99.2 (192.88.99.2) 56(84) bytes of data. From 203.178.17.21 icmp_seq=1 Time to live exceeded From 203.178.17.21 icmp_seq=2 Time to live exceeded From 203.178.17.21 icmp_seq=3 Time to live exceeded --- 192.88.99.2 ping statistics --- 3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2002ms
結局、戻りパケット用にもう1つトンネルインターフェイスを作成することにしました:
# ip tunnel add 6to4-in mode sit remote 192.88.99.2 local 59.X.X.X ttl 64 # ip link set 6to4-in up
こうすることで戻りパケットは6to4-in経由で受信することができます。6to4のanycast用アドレスとして192.88.99.0/24が予約されているので本来はこのアドレス全域からのパケットを扱えればよいのですが…(トンネルを254個作るのも…)。今回はこれでよしとします。