FreeBSD 7.2-RELEASEでOCN IPv6に接続する

OCNバリュープランを申し込んだ - mteramotoの日記で申し込んでいたバリュープランでONC IPv6が申し込めるようになってたから、早速申し込んだ。OCNでの処理が完了すると、接続に必要な情報がメールで送られてくる。ユーザ名とパスワードは、OCNで共通だから、追加で必要なのは接続先サーバのFQDNだけだけど。

OCN IPv6とは

OCN IPv6はOCNが提供しているIPv6接続サービス。OCN以外のISPを使っていても、バリュープランを契約することで利用可能。プロトコルはPPP over L2TPの上でDHCPv6 PDを動かしてPrefixをもらうというもの。Prefixは固定と動的を1つずつ利用可能で、Windows VistaWindows XP向けには専用クライアントソフトウェアが配布されてる。

FreeBSDとOCN IPv6

FreeBSDでOCN IPv6を使うなら、portsのnet/mpd-l2tp-ipv6pd-clientを使うのが簡単。mpd5とdhcp6をインストールした上で、OCN IPv6に接続するための設定ファイルを用意してくれる。
portsをインストールすると、mpd5を使っている場合は以下の4つの質問が表示されるので、OCNからの情報を入力する。

  • Please Input User ID:
    • OCNのユーザIDを入力する
  • Please Input Passwd:
    • OCNのパスワードを入力する
  • Please Input L2TP-IPv6PD Server
    • OCN IPv6の接続サーバ名を入力する
  • Please Input Prefix Delegation Interface:
    • PDでもらったPrefixを設定したいインタフェース名を指定する

Prefix Delegation Interfaceは、通常はRA(Router Advertisement)を送出したいインタフェース、つまりLAN側インタフェースになるはず。
portsのインストールが終わったら、以下のInstall noticeに従って設定をコピーする。

Type following commands to complete setup:

  # mkdir /etc/rc.conf.d
  # cp /usr/local/etc/mpd5/mpd5 /etc/rc.conf.d/mpd5

最後に、/usr/local/etc/rc.d/mpd5 startすれば接続開始。Prefix Delegation Interfaceで指定したインタフェースにIPv6アドレスが付与されてるはず。

RAを送出する

net/mpd-l2tp-ipv6pd-clientが作成する設定ファイルでは、デフォルトでRAを送出しない設定になっている。RAを送出したい場合は、/etc/rc.confに

dhcp6c_pd_rtadvd_enable="YES"

を追加する。/usr/local/etc/mpd5/dhcp6c_pd.shのdhcp6c_pd_poststartでIPv6パケット転送が有効になり、rtadvdが起動される。

dhcp6c_pd_poststart()
{
        if checkyesno dhcp6c_pd_rtadvd_enable; then
                /sbin/sysctl net.inet6.ip6.accept_rtadv=0
                /sbin/sysctl net.inet6.ip6.forwarding=1
                /usr/sbin/rtadvd -c ${dhcp6c_pd_rtadvd_conf} \
                    ${dhcp6c_pd_rtadvd_interface}
        fi
}