Posted on Sun Apr 12 21:52:51 +0900 2009 by nabeken
この記事は http://www.v6.tknetworks.org/ の再構成です。現状では、個人でも安価に接続できる商用 IPv6 ネットワークは無料、有料含めいくつかあります。
表題は Debian を使っていますが、どの Linux でも手順はほぼ変わりません。
DTCP を使ったトンネリングサービス。RT57i も DTCP をしゃべるため、個人で箱物を使うなら非常によかったが…
2009/04現在、障害対応は行われていますが、抜本的な対応(SSLの証明書期限切れなど)は今後も期待できないでしょう。
6to4 リレールータを日本国内に置く実験。非常におしまれつつ、2006年に実験が終了。これについては、以前考察しましたが、おそらく今後も再開されることはないでしょう。
6to4.jp の後継(?)として、2009年から始まったサービス。OCN配下では、すでに peering が完了しており、非常に快適に 6to4 が利用できます。IPv6への機運が高まりつつあるこの時期に、国内で手頃に 6to4 経由で IPv6 の検証ができるようになったのは大変素晴しいことだと思います。
nabeken@nagisa ~ % ping 192.88.99.1 PING 192.88.99.1 (192.88.99.1) 56(84) bytes of data. 64 bytes from 192.88.99.1: icmp_seq=1 ttl=54 time=9.70 ms 64 bytes from 192.88.99.1: icmp_seq=2 ttl=54 time=10.2 ms 64 bytes from 192.88.99.1: icmp_seq=3 ttl=54 time=8.45 ms --- 192.88.99.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 8.455/9.452/10.201/0.738 ms
このサービスも実験目的であるため、2年程度で終了予定。(参考: http://tokyo6to4.net/index.php/Tokyo6to4:Tokyo6to4%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6)
L2TP + PPP で NAT を越えることができるトンネリングサービス。NTT Com が展開する商用 IPv6 ネットワークに接続できるため、品質は個人向けと言えど高い。
しかし、L2TP をしゃべれる箱物が個人向けだと少なく、あっても Corega に…。しかし、日本国内で常用に耐えられ、かつ安価な IPv6 接続サービスはこれしかないのが現状です。現在、NTTの地域網(NGN)を使ったIPv6インターネット接続サービスが検討されています。
お金に糸目を付けない(固定IPアドレス向けのサービスなので高価)のであれば、 IIJmio のトンネリングサービス などが鉄板。
振り替えったところで、設定。
git から最新バージョンを取得し、インストールする。
# aptitude install git-core make gcc $ git clone git://git.ozlabs.org/~paulus/ppp.git $ cd pppd $ ./configure $ cd pppd $ vi Makefile // INET6 系を有効にする $ cd .. $ make # make install
ppp の設定は以下の通り。
$ cat /etc/ppp/peers/OCN_IPv6 nodefaultroute noip +ipv6 usepeerdns user your-username noipdefault default-asyncmap nopcomp noaccomp noccp novj nobsdcomp nodeflate lcp-echo-interval 30 lcp-echo-failure 2 lock noauth persist
ユーザ名とパスワードの設定は /etc/ppp/chap-secrets で行います。簡単なのでここでは解説しません。
cvs から最新バージョンを取得し、インストールする。
// cvs からもってくる http://sourceforge.net/cvs/?group_id=63352 $ cd rp-l2tp $ ./configure $ make # make install
固定、非固定prefix、どちらに接続するかでトンネリング先が異なります。ホスト名は OCN のページで確認できます。固定と非固定の違いは以下の通りです。
また、同時に2つ使う場合、非固定のトラヒックを固定のpppに流してもルーティングされるようです。
非固定での設定は以下の通り。固定の場合は peer 先のホスト名を修正するだけで動きます。lac-pppd-opts で unit 666 とすると、ppp666というインターフェースができます。
# Global section (by default, we start in global mode) global # Load handlers load-handler "sync-pppd.so" load-handler "cmd.so" # Bind address listen-port 1701 # Configure the sync-pppd handler. You MUST have a "section sync-pppd" line # even if you don't set any options. section sync-pppd #set-ppp-if-name 1 pppd-path "/usr/local/OCN_IPv6/sbin/pppd" lac-pppd-opts "call OCN_IPv6 unit 666" section peer peer v6tfpa1.ocn.ne.jp port 1701 lac-handler sync-pppd lns-handler sync-pppd section cmd
Linux ルータで2つ同時に使う場合の設定は以下の通り。
# Global section (by default, we start in global mode) global # Load handlers load-handler "sync-pppd.so" load-handler "cmd.so" # Bind address listen-port 1701 # Configure the sync-pppd handler. You MUST have a "section sync-pppd" line # even if you don't set any options. section sync-pppd pppd-path "/usr/local/OCN_IPv6/sbin/pppd" lac-pppd-opts "call OCN_IPv6 unit 666" section peer peer v6tfpa1.ocn.ne.jp port 1701 lac-handler sync-pppd lns-handler sync-pppd section peer peer v6tfff1.ocn.ne.jp port 1701 lac-handler sync-pppd lns-handler sync-pppd section cmd
少し解説しておくと、 section peer が2つあります。lac-pppd-opts はpppのインターフェース名を固定にしたいところに追加し、それ以外は動的に設定するため、lac-pppd-optsを省略しています。
これら ppp, l2tp の設定が完了すると
# /usr/local/OCN_IPv6/sbin/l2tp-control "start-session v6tfpa1.ocn.ne.jp"
でセッションを開始できます。
DHCPv6 の実装の1つである wide-dhcpv6 を cvs から最新バージョンを取得し、インストールします。
# aptitude install bison flex // cvs からもってくる http://sourceforge.net/cvs/?group_id=153668 $ cd wide-dhcpv6
ここで、取得した prefix に自分の MAC アドレスを足さずに prefix::1/64 というアドレスにするパッチを当てます。必要のない人は飛ばしてください。
$ wget https://projects.tsuntsun.net/~nabeken/wide-dhcpv6.patch $ patch -p0 < wide-dhcpv6.patch $ ./configure $ make # make install
設定は以下の通りです。
interface ppp1 { send ia-pd 0; }; id-assoc pd { prefix-interface eth1 { sla-id 1; sla-len 0; }; };
prefix-interface は受け取った prefix をつけるインターフェースです。OCN IPv6 では /64 のサイズになるため、 sla-len は0にします。
以上で DHCPv6 の設定は完了です。
# /usr/local/OCN_IPv6/sbin/dhcp6c ppp1
とすれば、 prefix-interface で指定したインターフェースにアドレスがついているはずです。
以上で Linux で OCN IPv6 を使用することができるようになります。応用としては、Linux ルータで非固定のppp接続をしたのち、配下の RT57i で非固定prefixをRAしなおすことで、クライアントも IPv6 化、などがあります。(後日解説予定)