ほぼ雑記的メモ
我が家のマンションもBフレッツからフレッツネクストになり、やっとIPv6接続が安価に可能になりました。IIJmioに限らずフレッツ網使ってる限り、pppoeで接続後にDHCPv6でプレフィックスが振り出されるというやり方は基本同じなので、他のプロバイダでも通用するでしょう。
DHCPv6が必要になるので、あらかじめ pkg から dhcp6を インストールしておきます。
# pkg install dhcp6
pppの設定
/etc/ppp/ppp.conf:
iijmiov6: set authname AUTHNAME@bnf6.iij.ad.jp set authkey AUTHKEY set device PPPoE:re0:pppoe-in enable lqr disable ipcp enable ipv6cp set cd 5 set dial set login set redial 0 0 set timeout 0 set reconnect 10 20
AUTHNAME, AUTHKEY, deviceは適宜環境に合わせてください。 ipcpをdisableしてipv6cpをenableにするのがコツです。うまく設定できているかどうかは以下のコマンドで確認できます。
# ppp -unit2 iijmiov6 Working in interactive mode Using interface: tun2 ppp ON peach> dial ppp ON peach> Warning: deflink: Reducing configured MRU from 1500 to 1492 Ppp ON peach> PPp ON peach> Warning: ::/0: Change route failed: errno: No such process PPP ON peach>
pppがPPPになれば、リンクが確立したことになります。ここで、ワーニングが出ますが、これを消す方法があるのかどうかは不明です。別に出てもちゃんと動くようなので気にしないようにしました。
この状態では、リンクがつながってもIPアドレスも振られてなければdefault rotueも設定されていないので、まだIPv6で通信はできません。これらを自動で取得するためにpppを一旦終了し、次のような設定ファイルを書きます。
/etc/ppp/ppp.linkup:
iijmiov6: ! sh -c "/usr/local/sbin/dhcp6c tun2" ! sh -c "route -6 add default -iface tun2"
/etc/ppp/ppp.linkdown:
iijmiov6: ! sh -c "route -6 delete default" ! sh -c "kill `cat /var/run/dhcp6c.pid`"
/usr/local/etc/dhcp6c.conf:
interface tun2{ send ia-pd 0; }; id-assoc pd 0 { prefix-interface fxp0 { sla-id 1; sla-len 8; }; };
dhcp6c.confの fxp0等は適宜読み替えてください。
やってることはなんということはなく、リンクが確立したら
/usr/local/sbin/dhcp6c tun2 route -6 add default -iface tun2
が順番に実行されるだけです。設定段階では上記コマンドを手動でタイプしてちゃんと動いているかどうか、設定に間違いがないかどうか確認するとよいでしょう。特にdhcp6cは間違いやすいので -D -f オプションをつけて実行すると捗るのではないかと思います。
ちなみに dhcp6c.confの意味ですが、プロバイダから振り出されたプレフィックスに 8ビット足してその部分を1にしたものがfxp0にIPv6アドレスとして振るという設定です。IIJmioからは /56でIPv6アドレスが振り出されるので結果/64のアドレスがfxp0に振られます。
うまく動いているようでしたら、起動時に自動で実行されるよう /etc/rc.confに以下の行を追加します
ppp_enable="YES" ppp_profile="iijmiov6" ppp_mode="ddial" ppp_iijmiov6_unit="2" ppp_iijmiov6_nat="NO"
これで
# /etc/rc.d/ppp start
でIPv6アドレスが振り出されていれば成功です。
Powered by Red Leaf ( Rev. c78c769f2 ), © Issei Numata, 2007-2021