~nabeken/diary/

Gentoo Linux(6年くらい)とFreeBSD(1年くらい)とOpenBSD(新参者)を使う日々。


IHANet BGP peering overview

さくらのVPSで6to4(tokyo6to4)を使う方法

Posted on Sat Dec 25 01:09:25 +0900 2010 by nabeken

さくらのVPSでは2010/12/24現在、IPv6の接続性は提供されていません。 しかし、さくらインターネット自体はtokyo6to4に参加しているため6to4経由で快適にIPv6ネットワークへ接続することができます。 1点ハマりどころがあったので記します。

環境

  • さくらのVPS
  • Gentoo Linux (自力インストール)
  • IPアドレス: 59.X.X.X

6to4 anycastアドレスで6to4トンネルを作成する

まずは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個作るのも…)。今回はこれでよしとします。

最後に

うわさによれば、さくらのVPS向けにもIPv6の提供準備をされているとかされていないとか…