概要
このドキュメントでは、Cisco Ultra Packet Core(UPC)と、冗長BGP接続が設定されたNexus 9000スイッチ間のBorder Gateway Protocol(BGP)フラップに対するソリューションについて説明します。
問題
BGPフラップは、Cisco Ultra Packet Coreと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インターフェイスで障害が発生すると、UPC(送信元:fd00:10:11:12::8)によって、別のVLAN(vlan140)に属するインターフェイスfd00:10:11:11::1上のLeaf-Aに対して新しい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は両方のインターフェイスから両方のリーフの接続ルート情報を受信するため、一方のインターフェイスがダウンすると、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内にあり、
update-source
の loopback
『Cisco Nexus 9000コンフィギュレーションガイド』の推奨に従って、インターフェイス(VXLAN経由のピアリング)を設定します。