VyattaでIHANet(IPv6でBGP)

 4月から異動になった職場が、IPv4/IPv6のデュアルスタック機器でAS運用をしていました。「やべ!BGPなんて大まかな動作しかわからん。しかもIPv6でBGPかよ」という事でテキストベースで勉強してみたものの、こういうものは実際にやってみないと良くわからないものです。
 dynagenというエミュレータを使い、一人でAS運用をすることも出来ますが、Peerとのお付き合い?的な事も体験したい。そんなこんなで色々と調べてみると、IHANetという事をしている方々がいらっしゃるらしい。「これだ!」ということで、IHANetに参加するまでにやったことをメモします。

IPv6アドレスの調達

 インターネットの出口がリビングにしかないので、嫁がいるリビングに機器は置きたくない。うるさいし電気代もかかる。自宅ラボはマジで憧れ。
 色々調べたところ、さくらインターネットが6rd方式でIPv6接続サービスを提供していました。しかも、/64でPrefixを委譲してくれる。さくらのVPSを利用すればリビングに機器を置く必要もなくなるので、さくらの6rd+さくらのVPSIPv6と接続機器の筐体を一挙調達しました。BGPが喋れる機器を購入して自宅で動かしっぱなしにする費用と比べたら、VPSの月額料金の方が安いはず。。?

接続機器の選定

 会社はCisco機器なのでVPS上でdynagenを動かそうかと思ったのですが、外部のサーバにIOSを入れてdynagen動かすのはちょっと気が引ける。また、6rdに対応しているIOSは、dynagenがサポートしている筐体に入れられないっぽい。ということで、今流行り?のソフトウェアルータ「Vyatta」を選択した。Vyattaは使った事がないけどこれも勉強という事で。Linuxベースだから、Vyatta以外にも色々出来るはず?bindとか。

Vyattaの設定(6rd)

 さくらが公開している方法でしゅくしゅくと設定した。設定完了後、ipv6.google.comにPingが飛んだので、無事6rdでIPv6をゲットできたみたい。

Vyattaの設定(BGP)

 Ciscoの設定を思い出しながらVyattaを設定をしていた所、IHANetのIRCでPeeringさせて下さる方がいらっしゃっので、その方とGREトンネルを張ってPeeringを試みた。しかしながらそう簡単には経路交換できず。。。

  • 失敗その1

 NeighborとのStatusがESTABLISHにならない。ずっとidleのまま。/var/log/messagesを見たところ、Bad BGP Identifierのメッセージが頻出していた。設定を見直した所、Router-IDが未設定でした。。。なんという素人。Router-IDを設定した所、Statusは無事ESTABLISHになりました。

  • 失敗その2

 Neighborと経路交換が出来ない。色々と試行錯誤し、Neighborの箇所でもaddress-family ipv6-unicastを設定した所、経路交換が出来た。

自ASの運用ポリシーの策定

 ただPeeringをするだけでは面白くありません。ASとは自律システムですから、「自らを律する為のポリシーを決めた方がカッコよくね?」という事で、色々なドキュメントを見ながら運用ポリシーを考えました。

  • ポリシーその1:Peerに迷惑をかけない。

 不要な経路は広告しない。自ASから広告する経路は最長の/64のみとする。

  • ポリシーその2:不要な経路は受け取らない。

 受け取る経路はPeerさんが広告した経路のみとし、IHANet上に存在しえない経路(文書作成やサイトローカル、リンクローカル、マルチキャスト)は受け取らない。

今後は、Route-mapやas-path-listを使ってこのゆるいポリシーを実装しながら、Peerさんをどんどん増やそうと思います。