OpenWrtを Buffalo のAir StationにいれてOCN IPv6に繋げられたので、メモ。
内容については、無保証、無サポートというお約束で。
OpenWrtのクロスコンパイルはおそらく必要。Hiroaki's blog: OpenWrtのkernelをカスタマイズする を参考に、カスタマイズしたkernelを含むfirmwareを作成し、Air Stationに転送、起動することを確認する。
起動すれば、Air Stationでipkgを使ってパッケージをインストールする。ip6tablesやkmod-ip6tables、kmod-ipv6、l2tpd、ppp、radvdなど。
また、/etc/modulesに必要なモジュールを記述する。
slhc ppp_generic ppp_async ip6_tables iptable_filter ip6t_LOG
ここまでで、いったんOCN IPv6に接続できるようにする。Memo - OCNIPv6が参考になる。
「/etc/xl2tpd/xl2tpd.confの設定」を参考に/etc/l2tpd/l2tpd.confを、「/etc/ppp/peers/l2tp-ipv6の設定」を参考に l2tp-ipv6 を作成する。/etc/ppp/chap-secretsにOCN IPv6の接続IDとパスワードを記述したら、
と入力して、ppp0インタフェースが現れるかどうか、現れた場合、IPv6のアドレス(fe80:~)がついているかどうかを確認する。l2tpdが動いていれば、つなぐときはl2tpd
echo "conn L2TPIPv6Server" > /var/run/l2tp-control
切るときはecho "disc L2TPIPv6Server" > /var/run/l2tp-control
とすればよい。
ここまでできればもう一息。dhcpでアドレスを受け取ってradvdでアナウンスする。
コンパイル済のWIDE DHCPv6 clientはここから。
MD5 (dhcp6c) = 6328e9aa7cd6cc3fa5170ff793652706 SHA1 (dhcp6c) = 22b9196f49213699bde469f1b5ae9942bd900cc1ディレクトリ /var/db をあらかじめ用意しておくことに注意。
/etc/dhcp6c.confやradvdの設定は、Memo - OCNIPv6にある通り。
pppでIPv6アドレスが割り当てられたときに/etc/ppp/ipv6-upを、ダウンしたときは/etc/ppp/ipv6-downを実行するみたいなので、自動化のスクリプトはそこに仕込むと便利。