Inter-AS Option B
今回はInter-AS Option Bに挑戦。
Option Bは、ASBR-to-ASBR ということでASBR間でvpnv4アドレス情報を交換し、end-endの通信を可能とする手段。
結論から言うとOption Bはかなり苦労した。
IOSとXRで異なる設定を行う必要があるもは至極当たり前だが苦労する。
ちなみにMPLS関係は「MPLS Configuration on Cisco IOS Software」を参考に構築している。
www.ciscopress.com
下図構成で構築する。
Option Bのポイントは三点
・ASBR間をaddress-family vpnv4 unicastでebgp接続する
・ibgpのpeerに対してnext-hop-selfを行う
・no bgp route-target filter(ebgp peerからのVPNv4アドレス情報受信を許可する)
上記三点を意識してXRで設定してみる。
「no bgp route-target filter xr」で調べてみると「retain route-target all」というコマンドがでてくるので、
これが代替コマンドなんだろうと勝手に思い設定している。
※結果として、「retain route-target all」はなくてもend-endのpingが到達したので、代替ではないっぽい。
後で意味はちゃんと調べる。
最初は以下config ※これは間違いconfig
XR4
router bgp 65200 bgp router-id 4.4.4.4 ! address-family ipv4 unicast ! address-family vpnv4 unicast ! neighbor 3.3.3.3 remote-as 65200 update-source Loopback0 address-family vpnv4 unicast next-hop-self ! ! neighbor 192.168.48.8 remote-as 65300 address-family vpnv4 unicast route-policy pass in route-policy pass out ! ! !
XR8とvpnv4でebgpしているのと、RR3に対してnext-hop-selfをしている。
同様の設定をXR8にも行うと、CSR1では、CSR9のlo0アドレス9.9.9.9を学習する。
けどping 9.9.9.9 so 1.1.1.1を行うと到達しない。
ここで嵌る。
そういえばIOSでも構築経験ないなと思いまずはIOSで設定をしてみることに。
構成は下図の通り。
R3のconfig #抜粋
interface Loopback0 ip address 3.3.3.3 255.255.255.255 ! interface Ethernet0/0 ip address 192.168.34.3 255.255.255.0 mpls bgp forwarding ! interface Ethernet0/1 ip address 192.168.23.3 255.255.255.0 mpls ip ! ! router ospf 1 network 3.3.3.3 0.0.0.0 area 0 network 192.168.23.0 0.0.0.255 area 0 ! router bgp 1 bgp router-id 3.3.3.3 bgp log-neighbor-changes no bgp default ipv4-unicast no bgp default route-target filter neighbor 2.2.2.2 remote-as 1 neighbor 2.2.2.2 update-source Loopback0 neighbor 192.168.34.4 remote-as 2 ! address-family ipv4 exit-address-family ! address-family vpnv4 neighbor 2.2.2.2 activate neighbor 2.2.2.2 send-community extended neighbor 2.2.2.2 next-hop-self neighbor 192.168.34.4 activate neighbor 192.168.34.4 send-community extended exit-address-family ! end
これでうまくいった。
int e0/0の「mpls bgp forwarding」は自動的に設定された。
たぶんvpnv4のpeer設定をするときに自動的に設定されている気がする。
ということでやはりXR独自の設定が必要とことでこれまたいろいろと調べた。
そして素晴らしいドキュメントを見つけた。
https://nsrc.org/workshops/2015/apricot2015/raw-attachment/wiki/Track3MPLS/9-Apriot_2015_Inter-AS.2.pdf
すごくわかりやすい。
XRで必要なことは上記のポイントに加え二点
・ルータコンフィギュレーションモードで「mpls activate」を設定
・ASBRのピア対向先をstatic routeで設定
二点目の理由がよくわからない。ちゃんと調べれば理由はわかると思うけど、
現段階では不明。とりあえずすべてにおいて一週目は概略理解に努め、二週目から詳細に挙動理由を確認していくスタンスで。
XR4 config #抜粋
hostname XR4 vrf USER1 address-family ipv4 unicast import route-target 1:1 ! export route-target 1:1 ! ! ! interface Loopback0 ipv4 address 4.4.4.4 255.255.255.255 ! interface GigabitEthernet0/0/0/0 ipv4 address 192.168.48.4 255.255.255.0 ! interface GigabitEthernet0/0/0/1 ipv4 address 192.168.24.4 255.255.255.0 ! interface GigabitEthernet0/0/0/2 ipv4 address 10.0.34.4 255.255.255.0 ! route-policy pass pass end-policy ! router static address-family ipv4 unicast 192.168.48.8/32 GigabitEthernet0/0/0/0 ! ! router ospf 1 area 0 interface Loopback0 ! interface GigabitEthernet0/0/0/1 ! interface GigabitEthernet0/0/0/2 ! ! ! router bgp 65200 bgp router-id 4.4.4.4 mpls activate interface GigabitEthernet0/0/0/0 ! address-family ipv4 unicast ! address-family vpnv4 unicast ! neighbor 3.3.3.3 remote-as 65200 update-source Loopback0 address-family vpnv4 unicast next-hop-self ! ! neighbor 192.168.48.8 remote-as 65300 address-family vpnv4 unicast route-policy pass in route-policy pass out ! ! ! mpls ldp interface GigabitEthernet0/0/0/2 ! ! end
これでちゃんとCSR1からCSR9までのpingが到達した。
次回もこのドキュメントを参考にOption Cに挑戦する。