15.2(3)Tで実装された経路交換サーバ機能を試してみました。
構成
経路交換サーバ用のCisco892Jと、CentOS(quagga+openNHRP)です。実際の経路交換サーバは同一セグメント内にあるなーということで、mGREとNHRPを使って強引に同一セグメントにしました。トラフィックは経路交換サーバを経由してしますのでそれほど意味はありません。。
Cisco892Jの設定
通常のBGP設定と大きな違いはありません。ネイバに対して「route-server-client」を追加するだけです。vrfで分けているのは我が家の都合です。
interface Tunnel1216
vrf forwarding route-server
ip address 10.12.16.1 255.255.255.0
no ip redirects
no ip proxy-arp
ip nhrp authentication 1216
ip nhrp map multicast dynamic
ip nhrp network-id 1216
ip nhrp holdtime 300
tunnel source Loopback1
tunnel mode gre multipoint
router bgp 64585
(中略)
address-family ipv4 vrf route-server
neighbor 10.12.16.2 remote-as 65002
neighbor 10.12.16.2 activate
neighbor 10.12.16.2 route-server-client
neighbor 10.12.16.3 remote-as 65003
neighbor 10.12.16.3 activate
neighbor 10.12.16.3 route-server-client
exit-address-family
CentOS設定
opennhrpの設定は下記の通りです。あとは同じ名前のGREトンネルを作り、opennhrpを起動すればOKです。この時点でAS65003のルータからAS65002のWAN側IP(10.12.16.2)へPingが飛びます。BGPの設定は通常のeBGPと同様です。
AS65003# more /etc/opennhrp/opennhrp.conf
interface gre1216
map 10.12.16.1/24 153.16.xxx.xxx register
cisco-authentication 1216
AS65003# ping 10.12.16.2
PING 10.12.16.2 (10.12.16.2) 56(84) bytes of data.
64 bytes from 10.12.16.2: icmp_seq=1 ttl=63 time=45.0 ms
64 bytes from 10.12.16.2: icmp_seq=2 ttl=63 time=47.3 ms
64 bytes from 10.12.16.2: icmp_seq=3 ttl=63 time=47.8 ms
動作確認
経路交換サーバから1つ経路を受信しています。本来のeBGPであれば経路交換サーバ(AS64585)のAS-PATHが付与されるはずですが、それがついておらずAS65002だけになっているのがわかります。「route-server-client」コマンドを外すとただのeBGP扱いとなり、AS64585のAS-PATHが付与されます。
AS65003# show ip bgp summary
BGP router identifier 192.168.3.1, local AS number 65003
2 BGP AS-PATH entries
0 BGP community entries
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.12.16.1 4 64585 52 45 0 0 0 00:26:42 1
Total number of neighbors 1
AS65003# show ip bgp
BGP table version is 0, local router ID is 192.168.3.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 192.168.2.0 10.12.16.2 0 0 65002 i
*> 192.168.3.0 0.0.0.0 0 32768 i
Total number of prefixes 2
■route-server-clientコマンドを外した場合
AS65003# show ip bgp
BGP table version is 0, local router ID is 192.168.3.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 192.168.2.0 10.12.16.2 0 64585 65002 i
*> 192.168.3.0 0.0.0.0 0 32768 i
Total number of prefixes 2
今後の予定
IPv6でも動作確認をして、IHANet内に経路交換サーバを立てられればなと思います。問題はopenNHRPがIPv6で動作しないので今の環境では動作確認が出来ないことと、IHANet内にCiscoルータが接続できるIXが存在しない事ですね・・mGREなL2?IXを立てても需要がなさそうだし・・・