6to4によるIPv6接続(Linux編)
当ブログをご覧の皆様こんにちは。さくらインターネット研究所の大久保です。
前回のエントリでは、6to4の概要とFreeBSDサーバにおける6to4の設定について説明いたしました。
▽ 6to4によるIPv6接続(FreeBSD編) https://research.sakura.ad.jp/2010/12/22/tunnel-6to4-freebsd/
今回はLinux編ということで、CentOSとUbuntuを例に6to4の設定方法を解説いたします。
CentOSでの設定例
ここでは、61.211.224.121のIPv4アドレスが設定されたCentOS5.5の環境で説明を行います。OSのバージョンは多少の違いがあっても問題ないはずです。設定自体は以下のように2つのファイルを編集して再起動するだけです。
- /etc/sysconfig/network の編集
# vi /etc/sysconfig/network (以下の青字部分を追加)
NETWORKING=yes
HOSTNAME=centos55-1
NETWORKING_IPV6=yes
IPV6_DEFAULTDEV=tun6to4 - /etc/sysconfig/network-scripts/ifcfg-eth0 の編集
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 (以下の青字部分を追加)
DEVICE=eth0
IPADDR=61.211.224.121
NETMASK=255.255.255.224
GATEWAY=61.211.224.97
IPV6INIT=yes
IPV6TO4INIT=yes
IPV6TO4_RELAY=192.88.99.1 - サーバの再起動 設定を反映させるために、サーバを一旦再起動します。
# reboot
もしくは、以下のコマンドでサーバを再起動せずに反映することもできます。
# /etc/init.d/network restart
Ubuntuでの設定例
ここでは、61.211.224.119のIPv4アドレスが設定されたUbuntu10.10の環境で説明を行います。CentOSと同様に、多少のOSのバージョンの違いは問題ないはずです。
- IPv6アドレスの算出 UbuntuにはIPv4アドレスから自動的にIPv6アドレスを設定する仕組みがないため、手動で算出する必要があります。以下のように、IPv4アドレスをスペース区切りで引数に指定します。
% printf "2002:%02x%02x:%02x%02x::1\n" 61 211 224 119
2002:3dd3:e077::1表示されたIPv6アドレスは、以下で設定ファイルに記入しますのでコピーしておきます。
- /etc/network/interfaces の編集
# vi /etc/network/interfaces (以下の青字部分を追加)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 61.211.224.119
netmask 255.255.255.224
gateway 61.211.224.97
auto tun6to4
iface tun6to4 inet6 v4tunnel
address 2002:3dd3:e077::1
netmask 16
gateway ::192.88.99.1
local 61.211.224.119
endpoint any
ttl 64
tun6to4のaddressの欄(ここでは2002:3dd3:e077::1)は、前項で表示されたものを記入します。3. サーバの再起動 設定を反映させるために、サーバを一旦再起動します。
> ```
> # reboot
> ```
もしくは、以下のコマンドでサーバを再起動せずに反映することもできます。
> ```
> # /etc/init.d/networking restart
> ```
疎通性の確認
設定が正常に完了したかどうか確認します。確認コマンドはCentOSとUbuntuで同じです。青文字で示した部分が正しく表示されていれば問題ありません。
# ip tunnel show
sit0: ipv6/ip remote any local any ttl 64 nopmtudisc
tun6to4: ipv6/ip remote any local 61.211.224.121 ttl 64
# ip -6 addr show
1: lo: mtu 16436
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qlen 1000
inet6 fe80::250:56ff:fe89:1/64 scope link
valid_lft forever preferred_lft forever
4: tun6to4@NONE: mtu 1480
inet6 2002:3dd3:e079::1/16 scope global
valid_lft forever preferred_lft forever
# ip -6 route show | grep default
default via ::192.88.99.1 dev tun6to4 metric 1 expires 21332406sec mtu 1480 advmss 1420 hoplimit 4294967295
ping6コマンドを用いて疎通性の確認を行います。
# ping6 www.iij.ad.jp
PING www.iij.ad.jp(2001:240:bb42:b000::1:80) 56 data bytes
64 bytes from 2001:240:bb42:b000::1:80: icmp_seq=0 ttl=46 time=273 ms
64 bytes from 2001:240:bb42:b000::1:80: icmp_seq=1 ttl=46 time=272 ms
64 bytes from 2001:240:bb42:b000::1:80: icmp_seq=2 ttl=46 time=272 ms
64 bytes from 2001:240:bb42:b000::1:80: icmp_seq=3 ttl=46 time=272 ms
--- www.iij.ad.jp ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3009ms
rtt min/avg/max/mdev = 272.518/272.692/273.034/0.670 ms, pipe 2
pingが返ってくれば問題なく通信できています。
Tokyo6to4プロジェクトについて
前回のエントリにて、6to4クライアントは、IPv4とIPv6の変換を行っている6to4リレールータ(192.88.99.1)を経由してIPv6インターネットと接続されると説明を行いましたが、このリレールータを日本国内で運用している「Tokyo6to4プロジェクト」というボランティアの組織がありますので紹介したいと思います。
▽ Tokyo6to4プロジェクトのWebページ http://www.tokyo6to4.net/
実は筆者(大久保)もこのプロジェクトで活動を行っており、当プロジェクトの発足当時(2008年9月)より参加しています。
当プロジェクトのリレールータが設置される前は、日本国内で利用できるパブリックなリレールータが存在せず、6to4の通信が全て海外経由となり、通信品質が良くありませんでした。
現在では、国内の主要なIX(Internet eXchange)であるDIX-IE、JPIX、JPNAPにリレールータを接続し、主要なプロバイダとのピアリングを行っていますので、国内の6to4の通信品質はずいぶん向上したといえるでしょう。

図1 Tokyo6to4のネットワーク構成(Tokyo6to4プロジェクトの発表資料より引用)
当然ながら、弊社(さくらインターネット)もTokyo6to4のリレールータとピアリングしていますので、弊社内のネットワークからは快適に6to4を利用することができます。
まとめ
前回と今回にわたり、6to4の概要、設定方法、リレールータの状況について触れてみました。次回以降は6to4を改良した6rdについて説明を行っていきたいと思います。