避免網路故障:Cisco ACI 中的 STP 最佳實踐

七月 5, 2024 by
Filed under: killtest 

原创 网工笔记本
思科 ACI 是一個大型路由域,不支援傳統 STP 生成樹協議,但可以識別 STP BPDU 封包並對 STP TCN 拓撲變化做出回應。

處理機制

ACI 從外部交換器接收到 TCN BPDU,將會在對應介面所屬 EPG flood BPDU。 flood 範圍控制在 EPG,或者說,EPG 相關的 FD VLAN,具體是透過 FD VLAN/VXLAN 關聯的 fabric_encap VNI 來實現。

STP 可能造成的問題

upon receiving STP TCN, EPM will flush all EPs behind the VLAN,這個行為會導致接收到 STP TCN 的 EPG,所有 EP 被 flush,重新學習,流量中斷。

如果不同 EPG,使用 overlapping vlan id,且 vlan id 來源是相同 vlan pool,就會計算相同 fabric_encap VNID,STP flood 範圍就會從單一 EPG 變成兩個 EPG。影響範圍喜加一(這也是不建議 overlapping vlan 的原因之一)

STP 相關的 best practice
總結了一些 tips,詳細內容還是建議參考官方文件。 ACI Design Guide[1],unofficial guide 1[2],和 Cisco 論壇[3]

1. leaf — external switch(eg. N7k),external switch 介面無法設定 bpdufilter 不收不發 BPDU,容易形成環路

2. leaf — physical server,leaf 介面可以開啟 bpduguard,收到 BPDU 就進入 bpdu-guard-err-disable 狀態,避免誤接 switch

3. external switch 所有接入 endhost(non-switch) 的接口,都應該打開 portfast/trunk edge,避免接口 flap 產生的 TCN,一路傳遞到 ACI。同時開啟 bpduguard,避免誤接 switch

4. external switch 在 trunk 接口,只 allow 特定 vlan

5. external switch 連接 ACI 的接口,應該配置 spanning-tree link-type shared,將 ACI 理解為一個 Hub,並不是默認 STP P2P(兩台 switch 直接對接)。參考文件 STP link-type shared[4]

6. 建議使用 leaf–VPC / port-channel LACP 形式連接 external switch,避免 STP 的影響

7. 推薦 VLAN = EPG 的 network centric mode 部署,縮小故障域

8. BD setting L2 Unknown Unicast 可以設定為 flood,即使 EP 被 flush,也能夠透過 flood 行為轉發。這個方式會增加網路當中的 flood traffic,慎重選擇

9. 外接 external switch 和 BM local endpoint,建議使用不同 vlan,分割到不同 EPG,避免被連帶影響。

10. 打開 MCP(MCP default policy:enabled, on intf policy group)

11. 開啟 Rogue EP control

12. Catalyst 系列的spanning-tree etherchannel guard misconfig 最好關閉,這個機制是假設Catalyst switch 連接到了同一個設備做EtherChannel 所以收到BPDU 的source mac 應該相同;如果收到不同source mac BPDU 並且超出一定閾值,就會err-disable 介面;在和ACI 對接場景,ACI 作為STP hub,在encap vlan flood BPDU,很容易讓對端Cat err-disable。建議使用 LACP, PagP 來取代 etherchannel guard misconfig。

透過這些最佳實踐,可以在 Cisco ACI 環境中更好地管理 STP TCN,確保網路穩定性和效能。

Comments


Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/html/wwwroot/itrenzheng.hk/wp-includes/class-wp-comment-query.php on line 399

Tell me what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!





*