katorea memo

いろいろ

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データを保存することができた。

下図が新たな構成。
f:id:gemunopedy:20170421010900p:plain

unetlabをローカルとアクセスさせるためには、「cloud」のオブジェクトを利用。
このcloudとunetlabのpnetがリンクしている。

まず、ubuntsuとcloud1を接続させる。
f:id:gemunopedy:20170422005944p:plain

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上のubuntupingが届くようになる。
後はscpになりで、ファイルを転送させればいちいちovaファイルをエクスポートしてーみたいなことはしなくて済む。

たぶん、固定IPとかで設定させれば、unetlab上から直接インターネットにアクセスできるようになるとは思うけど、
またしても気力不足となったのでしばらくはこの方法でいく。
本来の目的はgobgpでのフルルートなので。

というわけで無事にtableのmrtデータも入手できたわけだけど、
こちらのmrtデータでも先ほどと同様にbgpメッセージは受信しているみたいだけど、ルーティングテーブルには登録されない。
もう少し時間がかかりそう。