はじめに
このドキュメントでは、Cisco Ultra Packet Core(UPC)と、冗長BGP接続が設定されたNexus 9000スイッチの間のボーダーゲートウェイプロトコル(BGP)フラップに対するソリューションについて説明します。
問題
BGPフラップは、Cisco Ultra Packet Core(UPC)とNexusスイッチ間の冗長インターフェイスの1つがフラップしたときにトリガーされます。
条件
Ultra Packet Core(UPC)ノードは、別々のポートでNexusリーフAおよびリーフBに接続されます。BGP IPv6ピアが確立され、デフォルトルートがUPCノードにインストールされます。図1は、リーフスイッチへの冗長パスを含む高レベルネットワークダイアグラムを示しています。
図1:ネットワーク図
コンフィギュレーション
VLANとインターフェイスバインディングを使用したUPCポートの設定:
port ethernet 1/10
no shutdown
vlan 140
no shutdown
bind interface saegw_vlan140_1/10 saegw
#exit
#exit
port ethernet 1/11
no shutdown
vlan 141
no shutdown
bind interface saegw_vlan141_1/11 saegw
#exit
#exit
end
IPアドレスを使用したUPCインターフェイス設定:
interface saegw_vlan140_1/10
ip address 10.11.11..8 255.255.255.0
ipv6 address fd00:10:11:11::8/64 secondary
bfd interval 300 min_rx 300 multiplier 3
#exit
interface saegw_vlan141_1/11
ip address 10.11.12.8 255.255.255.0
ipv6 address fd00:10:11:12::8/64 secondary
bfd interval 300 min_rx 300 multiplier 3
#exit
UPC BGP設定:
router bgp 25949
router-id 172.19.20.30
maximum-paths ebgp 4
neighbor 10.11.11..1 remote-as 25949
neighbor 10.11.11..1 fall-over bfd
neighbor 10.11.12.1 remote-as 25949
neighbor 10.11.12.1 fall-over bfd
neighbor fd00:10:11:11::1 remote-as 25949
neighbor fd00:10:11:12::1 remote-as 25949
address-family ipv4
neighbor 10.11.11..1 route-map accept_default in
neighbor 10.11.11..1 route-map gw-1-OUT out
neighbor 10.11.12.1 route-map accept_default in
neighbor 10.11.12.1 route-map gw-1-OUT out
redistribute connected
#exit
address-family ipv6
neighbor fd00:10:11:11::1 activate
neighbor fd00:10:11:11::1 route-map accept_v6_default in
neighbor fd00:10:11:11::1 route-map allow_service_ips_v6 out
neighbor fd00:10:11:12::1 activate
neighbor fd00:10:11:12::1 route-map accept_v6_default in
neighbor fd00:10:11:12::1 route-map allow_service_ips_v6 out
redistribute connected
#exit
ipv6 prefix-list name accept_v6_default_routes seq 10 permit ::/0
route-map accept_v6_default permit 10
match ipv6 address prefix-list accept_v6_default_routes
#exit
Nexus 9000スイッチ設定:
Interface vlan140
ipv6 address fd00:10:11:11::1/64
no ipv6 redirects
interface vlan141
ipv6 address fd00:10:11:12::1/64
no ipv6 redirects
vrf upc
address-family ipv4 unicast
advertise l2vpn evpn
maximum-paths ibgp 2
address-family ipv6 unicast
advertise l2vpn evpn
maximum-paths ibgp 2
neighbor fd00:10:11:12::5
remote-as 25949
address-family ipv6 unicast
neighbor fd00:10:11:12::6
remote-as 25949
address-family ipv6 unicast
neighbor fd00:10:11:12::8
remote-as 25949
address-family ipv6 unicast
分析
最初に、いずれかのUPCインターフェイス(fd00:10:11:12::8)とNexusスイッチ(fd00:10:11:12::1 belongs to vlan141)の間の通常のBGP通信が確認され、TCP ACKメッセージが含まれます。
2023-01-01 01:01:59.000000 fd00:10:11:12::8 -> fd00:10:11:12::1 TCP 35813 > bgp [ACK] Seq=250 Ack=8664 Win=31744 Len=0 TSV=2412344062 TSER=531234647
2023-01-01 01:01:59.000087 fd00:10:11:12::8 -> fd00:10:11:12::1 TCP 35813 > bgp [ACK] Seq=250 Ack=11520 Win=37376 Len=0 TSV=2412344062 TSER=531234647
2023-01-01 01:01:59.000162 fd00:10:11:12::8 -> fd00:10:11:12::1 TCP 35813 > bgp [ACK] Seq=250 Ack=14376 Win=43008 Len=0 TSV=241234062 TSER=531234647
2023-01-01 01:01:59.000281 fd00:10:11:12::8 -> fd00:10:11:12::1 TCP 35813 > bgp [ACK] Seq=250 Ack=17232 Win=49152 Len=0 TSV=2412344062 TSER=531234647
2023-01-01 01:01:59.000936 fd00:10:11:12::8 -> fd00:10:11:12::1 TCP 35813 > bgp [ACK] Seq=250 Ack=20663 Win=48640 Len=0 TSV=2412344063 TSER=531234647
UPCへのLeaf-Bインターフェイスが失敗すると、別のVLAN vlan140に属しているインターフェイスfd00:10:11:11::1のLeaf-Aに対してUPC(送信元:fd00:10:11:12::8)によって新しいBGP接続が開始されるという誤った動作がログに記録されます。
2023-01-01 22:36:12.370117 fd00:10:11:12::8 -> fd00:10:11:11::1 TCP 41987 > bgp [SYN] Seq=0 Win=14400 Len=0 MSS=1440 TSV=2412347369 TSER=0 WS=9
このような無効なBGP SYNメッセージが誤ったインターフェイスに送信されると、BGPがダウンします。Nexusが自身の接続されたルートをアドバタイズし、UPCがBGP経由でダウンしていたインターフェイスのルートを取得すると、UPCは発信IPが異なるか間違っている別のインターフェイスを介して接続を試みます。
ソリューション
この記事の「条件」セクションで説明した設定により、UPCは両方のインターフェイスから両方のリーフの接続されたルート情報を受信するため、インターフェイスの1つがダウンすると、UPCは他のインターフェイスを介してそのリーフとの通信を試みます。
UPCが誤ったインターフェイスからBGP接続確立メッセージを送信しないようにするには、次の設定変更を考慮します。
- UPC設定で、ネイバーの
update-sourceを追加します。この設定により、メインインターフェイスがダウンしている場合に、別のインターフェイスからのBGP接続が防止されます。たとえば、saegw_vlan140_1/10(fd00:10:11:11::1/64)がダウンしている場合、ノードは発信インターフェイスsaegw_vlan141_1/11をBGPピアfd00:10:11:11::8に使用できません。
次に設定例を示します。
neighbor fd00:10:11:11::1 update-source fd00:10:11:11::8
neighbor fd00:10:11:12::1 update-source fd00:10:11:12::8
- Nexusの設定で、間違ったインターフェイスからのプレフィックスをブロックします。
たとえば、ネイバーfd00:10:11:11::1上の冗長リーフのルートを拒否します
neighbor fd00:10:11:11::1
update prefix list to deny fd00:10:11:12::8/64
- Nexusスイッチでは、VXLAN経由でVTEPから外部ノードへのEBGPピアリングがテナントVRF内にある必要があり、『Cisco Nexus 9000コンフィギュレーションガイド』で推奨されているように、
ループバックインターフェイス(VXLAN経由のピアリング)のupdate-sourceを使用する必要があります