gobgpでフルルート
今回はgobgpでCSRvとXRvにフルルートを流してみる。
フルルートのMRTファイルは以下のリンクからダウンロード
Route Views Archive Project Page
そしてpeerを張った状態で以下コマンド
root@ubuntu:~/go/bin#gobgp mrt inject global rib.20170420.1400
CSRvではこんな感じ。
csr#show ip bgp summary Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 192.168.0.4 4 65100 618938 23 2 0 0 00:09:05 0
どうやらフルルートを受信しているみたい。
けどshow ip bgpしてもルートが登録されていない。
なぜなのか。いろいろ考えてみた。
あーnexthopに到達性がないからかとアホなことを考え出して、
neighbor 192.168.0.4 route-map nexthop in とかこれまた分けわかないことやろうとして、
いや待てよ到達性なくてもベストパスに選ばれないだけでshowコマンドで出てくるよなとか。
そういえばダウンロードしたmrtファイルはupdateの方だったなと。
今後はtableの方で流してみようと思った。この二つの違いはよく分からないけど。
ただunetlab上のubuntuに新しいmrtファイルを保存するためには、外部アクセスができるようにしなくてはならない。
この作業もこれまた非常に時間がかかった。
unetlabの設定に関しては、日本語のドキュメントがあまりなく英語のドキュメントを読まなくてはならない。
英語は苦手かつ嫌いなので出来れば日本語のドキュメントだけでいろいろとやっていきたい。
英語のドキュメントを読むだけでその日一日のパワーを根こそぎ奪われてしまう。
とはいえそんなことも言ってられないのでなんとかいろいろ調べてとりあえずunetlabのubuntuにtable mrtデータを保存することができた。
下図が新たな構成。
unetlabをローカルとアクセスさせるためには、「cloud」のオブジェクトを利用。
このcloudとunetlabのpnetがリンクしている。
まず、ubuntsuとcloud1を接続させる。
unetlabのpnetインターフェースを設定する。
root@eve-ng:~# vi /etc/network/interfaces iface eth0 inet manual auto pnet0 iface pnet0 inet dhcp bridge_ports eth0 bridge_stp off
これでローカルからunetlab上のubuntuにpingが届くようになる。
後はscpになりで、ファイルを転送させればいちいちovaファイルをエクスポートしてーみたいなことはしなくて済む。
たぶん、固定IPとかで設定させれば、unetlab上から直接インターネットにアクセスできるようになるとは思うけど、
またしても気力不足となったのでしばらくはこの方法でいく。
本来の目的はgobgpでのフルルートなので。
というわけで無事にtableのmrtデータも入手できたわけだけど、
こちらのmrtデータでも先ほどと同様にbgpメッセージは受信しているみたいだけど、ルーティングテーブルには登録されない。
もう少し時間がかかりそう。