さくらの6rd(トライアル)>6rd設定方法(FreeBSD8編)
ここでは、FreeBSD8.xにおける6rdの設定方法について説明します。当方ではFreeBSD8.1、FreeBSD8.2上での動作確認を行っています。
※ 設定前にトップページの「提供条件」を必ずお読みください。
FreeBSDのソースコードに6rdのパッチをあてる
FreeBSDはまだ標準で6rdに対応していませんが、東工大の佐藤さんが6to4のカーネルモジュールif_stfを6rdに対応させるパッチを以下のサイトで公開されています。
http://people.allbsd.org/~hrs/FreeBSD/stf_6rd_20100923-1.diff
今回は、このパッチをあてて6rdをサポートする方法を紹介します。
以下では/usr/src/配下にFreeBSDのソースコードが展開されているものとして説明します。存在しない場合は、あらかじめソースコードを展開しておいてください。
- パッチをダウンロード
まずはパッチをダウンロードします。ここでは/root/以下にダウンロードします。# cd /root # fetch http://people.allbsd.org/~hrs/FreeBSD/stf_6rd_20100923-1.diff
- パッチをあてる
/usr/src/以下のソースコードにパッチをあてます。# cd /usr/src # patch -p0 < /root/stf_6rd_20100923-1.diff
- カーネルモジュールのコンパイル、インストール
以下コマンドで、/boot/kernel/if_stf.ko としてインストールされます。# cd sys/modules/if_stf/ # make # make install
- マニュアルのインストール
stfのマニュアルが更新されるため、インストールします。# cd /usr/src/share/man/ # make # make install
これでman stfとすると、6rdの説明が表示されるはずです。
6rdの設定を行う
設定手順は以下の通りです。ここでは、59.106.69.125のIPv4アドレスをもったFreeBSDサーバでの設定例を紹介します。
- IPv6アドレスの算出
以下のように、IPv4アドレスをスペース区切りで引数に指定します。# printf "2001:e41:%02x%02x:%02x%02x::1\n" 59 106 69 125 2001:e41:3b6a:457d::1
- /etc/rc.confの編集
viでファイルを開き、以下の内容を追加します。青文字の部分は上記で表示されたIPv6アドレスを記入してください。# vi /etc/rc.conf (以下を追加) ipv6_enable="YES" cloned_interfaces="stf0" ipv6_ifconfig_stf0="2001:e41:3b6a:457d::1/32" ipv6_defaultrouter="2001:e41:3dd3:e07d::1"
- 再起動
設定を反映させるために一度再起動します。# reboot
- 設定反映確認
起動後に設定が反映されていることを確認します。# ifconfig stf0 stf0: flags=1<UP> metric 0 mtu 1280 inet6 2001:e41:3b6a:457d::1 prefixlen 32 nd6 options=3<PERFORMNUD,ACCEPT_RTADV> # netstat -nr -f inet6 | grep default default 2001:e41:3dd3:e07d::1 UGS stf0