アーカイブ

6rd設定方法(FreeBSD8編)

さくらの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のソースコードが展開されているものとして説明します。存在しない場合は、あらかじめソースコードを展開しておいてください。

  1. パッチをダウンロード
    まずはパッチをダウンロードします。ここでは/root/以下にダウンロードします。

    # cd /root
    # fetch http://people.allbsd.org/~hrs/FreeBSD/stf_6rd_20100923-1.diff
  2. パッチをあてる
    /usr/src/以下のソースコードにパッチをあてます。

    # cd /usr/src
    # patch -p0 < /root/stf_6rd_20100923-1.diff
  3. カーネルモジュールのコンパイル、インストール
    以下コマンドで、/boot/kernel/if_stf.ko としてインストールされます。

    # cd sys/modules/if_stf/
    # make
    # make install
  4. マニュアルのインストール
    stfのマニュアルが更新されるため、インストールします。

    # cd /usr/src/share/man/
    # make
    # make install

    これでman stfとすると、6rdの説明が表示されるはずです。

6rdの設定を行う

設定手順は以下の通りです。ここでは、59.106.69.125のIPv4アドレスをもったFreeBSDサーバでの設定例を紹介します。

  1. IPv6アドレスの算出
    以下のように、IPv4アドレスをスペース区切りで引数に指定します。

    # printf "2001:e41:%02x%02x:%02x%02x::1\n" 59 106 69 125
    2001:e41:3b6a:457d::1
    
  2. /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"
  3. 再起動
    設定を反映させるために一度再起動します。

    # reboot
  4. 設定反映確認
    起動後に設定が反映されていることを確認します。

    # 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