vyatta だけで feel6 に繋いでみる

vyatta を使って feel6 に 6to4 のトンネルを張って v6 life を満喫するための方法.

前提として vyatta はグローバルアドレスを持っていることとする.
あと feel6 のアカウントは持っているものをして話をすすめる.

やり方は feel6 の dtcp サーバに telnet で接続して認証を通してから,
トンネルインタフェースを作成し,feel6 のサーバに接続するだけである.

認証を通す部分については他の人が perl でやりとりしてくれるスクリプトを書いてくれているのでそれをありがたく使わせてもらう.
仙石さんのページを参考にするといいと思う.
dtcp はチャレンジ・レスポンス認証を使っているが仙石さんのページにあるスクリプトは設定ファイルに書いておいたアカウント名とパスワードから勝手に認証を通してくれるのでそのまま実行するだけでいい.
ssh 越しにやると screen とか使ってない限りセッションを切ったタイミングで(多分) v6 も切れるので注意

で,認証は OK なので次にトンネルの設定を行う.
トンネルインタフェースは tun0,トンネル先のサーバは ${SERVER},vyatta が持っているグローバルアドレスは ${GLOBAL_IP},そのインタフェースは eth0,v4 でいうプライベートネットワークに繋がるインタフェースは eth1,feel6 からもらえる v6 prefix は ${V6_PREFIX_48},RA を送信する prefix を ${V6_PREFIX_64} とする.

まずトンネルインタフェースを作成し,sit を選択する.

# set interfaces tunnel tun0
# set interfaces tunnel tun0 encapsulation sit

次にトンネル先のアドレスと自分のアドレスを設定する.
トンネル先のサーバは認証時に表示されるので,それを覚えておく.
ちなみに認証が成功すると以下の形式でメッセージが表示される.

S:  +OK ${GLOBAL} ${SERVER} ${V6_PREFIX_48}

まぁトンネル先のサーバは 43.244.255.36 か 43.244.255.37 のどちらかである.
ってことで設定.
※ トンネル先を間違えるとインタフェースを作り直さないとなぜか修正されないので注意.

# set interfaces tunnel tun0 local-ip ${GLOBAL}
# set interfaces tunnel tun0 remote-ip ${SERVER}

で,vyatta 君にも v6 アドレスと RA を送信するように設定.

# set interfaces ethernet eth1 address hogehoge::1/64
# set interfaces ethernet eth1 ipv6 router-advert prefix ${V6_PREFIX_64}

これで feel6 のトンネルサーバと接続して,自分のネットワークに RA を送信する設定までできた.
最後に外に出す v6 パケットは tun0 に回して,内側宛の v6 パケットは eth1 に回すように設定.

# set protocols static interface-route6 ::/0 next-hop-interface tun0
# set protocols static interface-route6 ${V6_PREFIX_48} next-hop-interface eth1

これで OK.

最後に show コマンドで見るとこんな感じになる.

interfaces {
 ethernet eth1 {
     address 10.0.0.1/8
     address 2001:xxxx:xxxx::1/64
     hw-id xx:xx:xx:xx:xx:xx
     ipv6 {
         router-advert {
             prefix ${V6_PREFIX_64} {
             }
         }
     }
 }
 tunnel tun0 {
     encapsulation sit
     local-ip ${GLOBAL}
     remote-ip ${SERVER}
 }
}
protocols {
 static {
     interface-route6 ${V6PREFIX_48} {
         next-hop-interface eth1 {
         }
     }
     interface-route6 ::/0 {
         next-hop-interface tun0 {
         }
     }
 }
}

シンタックスハイライトに zsh ってのがあったので使ってみた.これ見にくくなるな。。。