Posted on Sat Apr 18 17:57:50 +0900 2009 by nabeken
タイトルだけ見てもよくわからないと思いますが、Linuxルータで固定、非固定のpppを張り、固定はサーバで、そして非固定はクライアントのいるサブネットで使うように設定する方法のメモになります。
prefixを2つ用意しているのは評価できるのですが、問題はその prefix のサイズです。OCN IPv6 では /64 を2つ配る仕様になっています。さらに、prefixを受けとるには L2TP に ppp を通す必要があります。つまり、所有している RT57i では、IPv6 をルーティングできる(かつ、pppもIPv6対応なのに)のに、このprefixは使用できないことになります。
非固定prefixのpppからやってくる RA をRT57iに伝え、さらにそこからクライアントへ RA を出すことで解決できます。しかし、これだけでは Linux ルータは非固定prefixへの経路を持っていませんので、RIPngで経路を交換することにしました。
ネットワークは以下のようになっています。
+--- Linux ルータ--------------------- | | | |ppp1(固定)|---------(eth1)-|S W|------ サーバ (eth0)---------+ | | |ppp666(非固定)|-----(eth2)---+ | | | +------------------------------------+ | |S W| | | |RT57i| | | クライアント
RA は簡易ながら proxy させました。アイデアは以下の通りです。
以上で RT57i 配下のマシンでも IPv6 による通信が可能となりました。
試験的な実装なため、まだエラー処理などは甘いですが、ひとまず動いているようです。以下のスクリプトを動かしています。
手元では10分毎に update-radvd-conf.sh を動かしています。prefixのlifetimeなどは非固定prefixのため、短かめに設定しています。
これらスクリプトは github 上で公開しています。
最近はRT57iの中古にも巡り合い辛い状態ですが、持っているひとはまだまだ(むしろ、これから)活用できると思いますよ。もってない人、中古を見つけたらすぐに買いましょう :-)。