exabgpでフルルートを注入してみた

IHANet network
Published: 2012-03-17

 @stereocatさんのエントリーを見て自分もルータにフルルートを注入したくなったので、RouteViews+bgpdump+exabgpで試してみました。

経路情報の準備

 route-views6.oregon-ix.netが公開しているIPv6のMRTデータを利用します。

bgpdumpのインストール

 @stereocatさんのエントリーを見ながら粛々と実施します。

exabgpの準備

 これも@stereocatさんのエントリーを見ながら粛々と実施します。なおCentOS5.8のyumでインストールされるpython2.4だとエラーが出て動かなかった為、別途2.6をソースからインストールしました。

コンフィグ作成スクリプトの実施

 MRT形式のデータをbgpdumpで変換しただけではexabgpのコンフィグに必要な構文になりません。そこで、スクリプトでbgpdumpの変換結果をexabgpのコンフィグにそった形に修正します。イケてないスクリプトなのはご了承ください。

#!/bin/sh

#Parameter
FILENAME=$1
NEXTHOP="2001:470:24:571::11"
AS="64606"

/usr/local/bin/bgpdump -m ${FILENAME} > /tmp/bgproute/route.txt

#initialize
echo "" > /tmp/bgproute/config.txt

#make configuration
while read LINE; do

        PREFIX=`echo $LINE | awk -F'|' '{print $6}'`
        LP=`echo $LINE | awk -F'|' '{print $10}'`
        ASPATH=`echo $LINE | awk -F'|' '{print $7}'`

        ASPATH=`echo ${ASPATH} | sed -e "s/{//"`
        ASPATH=`echo ${ASPATH} | sed -e "s/}//"`
        ASPATH=`echo ${ASPATH} | sed -e "s/,/ /"`

        echo "route ${PREFIX} next-hop ${NEXTHOP} local-preference ${LP} as-path [${AS} ${ASPATH}];" >> /tmp/bgproute/config.txt

done < /tmp/bgproute/route.txt

cat /tmp/bgproute/neighbor /tmp/bgproute/config.txt > /tmp/bgproute/exabgpconf
echo } >>/tmp/bgproute/exabgpconf
echo } >>/tmp/bgproute/exabgpconf

 neighborファイルの中にネイバーに関する設定(Static部分はスクリプトが自動生成します)を準備してから、変換したいRMT形式のデータを引数にしてシェルを実行すると、static部分が追記されたexabgpconfというコンフィグファイルが出来上がります。(cloudcore上で実施したら凄い時間がかかりました・・・) 

ルータへ経路を注入する

 Cisco892J側にexabgpをネイバーとして追加して、いざ経路注入。

# exabgp exabgpconf                                            
Sat, 17 Mar 2012 15:55:10 INFO     20069  configuration Performing reload of exabgp 2.0.6
Sat, 17 Mar 2012 15:56:19 INFO     20069  supervisor    New Peer 2001:470:24:571::12
Sat, 17 Mar 2012 15:56:19 INFO     20069  configuration Loaded new configuration successfully
Router#show bgp ipv6 unicast summary 
Load for five secs: 4%/0%; one minute: 7%; five minutes: 8%
Time source is NTP, 17:04:13.072 JST Sat Mar 17 2012
BGP router identifier xxx.xxx.xxx.xxx, local AS number 64585
BGP table version is 167513, main routing table version 167513
8358 network entries using 1337280 bytes of memory
8360 path entries using 668800 bytes of memory
8220/7531 BGP path/bestpath attribute entries using 1052160 bytes of memory
8215 BGP AS-PATH entries using 326932 bytes of memory
1 BGP community entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 3385196 total bytes of memory
BGP activity 20178/11820 prefixes, 20484/12124 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
exabgp
                4        64606    4411      41   167313    0    0 00:03:14     8268

 それっぽい数の経路をexabgpから受信している事が分ります。Cisco892JでもIPv6のフルルートは喰えるみたいですね。どこかのトランジット業者様で、個人向けにIPIPトンネル越しでIPv6のフルルートをくれる方がいらっしゃいましたらご連絡ください。。。