本檔案介紹ACI交換矩陣埠跟蹤功能、補救步驟和角案例情景。
思科ACI交換矩陣埠跟蹤(也稱為交換矩陣跟蹤或埠跟蹤)是ACI枝葉交換機上使用的恢復功能,用於根據面向交換矩陣/上行鏈路埠的運行狀態控制面向主機/下行鏈路埠的狀態。
交換矩陣埠跟蹤旨在防止枝葉失去與ACI交換矩陣的充分連線時流量黑洞。如果沒有此功能,即使枝葉已丟失其交換矩陣上行鏈路,面向主機的介面也可保持物理正常運行。在這種情況下,連線的終端可以繼續將流量轉發到枝葉,但枝葉必須無法將該流量轉發到交換矩陣。
啟用交換矩陣埠跟蹤後,枝葉將監控其主幹層上的活動交換矩陣上行鏈路,並將運行交換矩陣鏈路的數量與配置的閾值進行比較。如果可用交換矩陣鏈路的數量下降到配置的最小值以下,枝葉會自動關閉選定的面向主機/下行鏈路介面。這允許連線的終端、伺服器或外部裝置檢測鏈路斷開事件並故障切換到另一個可用路徑或枝葉,而不是繼續將流量傳送到不再具有足夠交換矩陣連線的枝葉。
一旦所需的交換矩陣上行鏈路數恢復且運行中的交換矩陣鏈路數恢復超過配置的閾值,下行鏈路介面將在配置的恢復延遲後恢復。
示例行為:

調查思科ACI交換矩陣埠跟蹤問題時,請使用核對表。每個步驟都包含相關的驗證或故障排除命令。
驗證面向主機/下行鏈路埠是否關閉,以及事件是否與交換矩陣埠跟蹤相關。
檢查交換矩陣埠跟蹤故障F0532:
moquery -c faultInst -f 'fault.Inst.code=="F0532"'
示例指示:
descr : Port is down, reason being fabricTrack(connected) severity : critical subject : port-down
如果出現F0532故障,則介面因交換矩陣埠跟蹤而關閉。
確認是否已啟用Fabric Port-Track並檢視配置的引數。
moquery -c infraPortTrackPol | egrep "adminSt|delay|includeApicPorts|minlinks"
檢視顯示的值:
| 參數 | 目的 |
|---|---|
| adminSt | 指示是啟用還是禁用交換矩陣埠跟蹤。 |
| delay | 在重新啟用下行鏈路埠之前恢復延遲。 |
| 包括ApicPort | 指示是否包括APIC連線的埠。 |
| minlinks | 所需的可操作交換矩陣鏈路的最小數量。 |
範例:
adminSt : on delay : 300 includeApicPorts : no minlinks : 0
確認枝葉仍能通過交換矩陣上行鏈路看到預期的主幹鄰居。
show lldp neighbors
有關特定交換矩陣上行鏈路的詳細資訊:
show lldp neighbors int ethernet 1/49 detail
使用以下輸出確認:
驗證面向交換矩陣的介面最近是否閃爍。
show int eth 1/49 | egrep "flapped|state"
範例:
admin state is up, Dedicated Interface Last link flapped 00:02:57
交換矩陣上行鏈路上的最近擺動可以解釋為什麼觸發了交換矩陣埠跟蹤。
驗證面向主機/下行鏈路介面的狀態和擺動歷史記錄。
show int eth 1/17 | egrep "flapped|state|fabric-track"
這有助於將下行鏈路埠事件與交換矩陣上行鏈路故障相關聯。
檢查受影響枝葉上的Fabric Port-Track進程日誌。
cat /var/sysmgr/tmp_logs/fabric_track.py.dbg | tail -n 15
正常操作期間的日誌輸出示例:
cat /var/sysmgr/tmp_logs/fabric_track.py.dbg | tail -n 15
Reading the port track Mo
...
Reading the port track Mo
故障視窗期間的日誌檔案示例:
cat /var/sysmgr/tmp_logs/fabric_track.py.dbg | tail -n 15
Reading Isis Mo to check for Isis Adjacency
1 Fabric links are up
Reading l1PhysIf Mos of fabric links to check number of up fabric links
Bringdown: 0 Fabric links left up
PortTrackIf Mo is not present. Creating PortTrackIf Mo for eth1/17
Committing the port track Mo
這些消息表明枝葉檢測到不充分的交換矩陣鏈路並為受影響的下行鏈路埠建立PortTrack介面對象。
主要意見:
收集受影響光纖上行鏈路的光資訊。
show interface ethernet 1/49 transceiver details | egrep "type|name|serial"
範例:
type is QSFP-40/100-SRBD name is CISCO-FINISAR serial number is FIW2440004Z-B
在排除故障時,這一點尤其重要:
確定與物理介面相關的內部埠號。
vsh_lc -c 'show platform internal usd port info' | egrep "Eth1/49" -A 1
範例:
Port 61.0 (Eth1/49) : Admin UP (1) Link UP Cfg_Fec Disabled Fec Disabled Fcot Fiber retimer 0x0
AN_knob No AN_cfg Yes AN_operSt No In_debounce 0, Debounce-Time 0 usecs qsa: No
在本例中,Eth1/49對映到內部埠61.0。
識別內部埠後,檢視鏈路事件歷史記錄。
vsh_lc -c 'show platform internal tah event-history linkevents' | grep Port "61.0" -A 1
無反退回示例:
Port 61.0: tahusd_port_handle_debounce: No debounce required!!
配置了反退回的示例:
Port 61.0: tahusd_port_handle_debounce/9481: Started Debounce Timer for 10000 ms
這確認在連結事件期間是否應用了連結反跳動。
驗證是否已為交換矩陣介面配置鏈路退回。鏈路反跳有助於防止臨時微擺動立即觸發交換矩陣埠跟蹤行為。
檢查交換矩陣介面策略:
moquery -c fabricFIfPol | egrep "dn|linkDebounce"
範例:
dn : uni/fabric/fintfpol-default linkDebounce : 0
直接從介面檢查退回:
show interface eth1/49 debounce
無反退回示例:
------------------------------------------------------------------------------------ Port Debounce time Value(ms) ------------------------------------------------------------------------------------ Eth1/49 disable 0
如果反退回功能已禁用,並且懷疑有微擺現象,請在交換矩陣介面上配置反退功能:
configure leaf 101 interface ethernet 1/49 link debounce time 100
重要:
驗證設定:
show interface eth1/49 debounce
預期輸出:
------------------------------------------------------------------------------------ Port Debounce time Value(ms) ------------------------------------------------------------------------------------ Eth1/49 enable 100
預設的反退回間隔為0毫秒。我們建議使用100毫秒的值,但是您可以選擇適合您的交換矩陣的值。
| 工作 | 指令 |
|---|---|
| 檢查交換矩陣埠跟蹤故障 | moquery -c faultInst -f 'fault.Inst.code=="F0532"' |
| 驗證交換矩陣埠跟蹤策略 | moquery -c infraPortTrackPol | egrep "adminSt|delay|includeApicPorts|minlinks" |
| 檢查LLDP鄰居 | 顯示lldp鄰居 |
| 檢查詳細的LLDP鄰居 | show lldp neighbors int ethernet 1/49 detail |
| 檢查交換矩陣上行鏈路狀態 | show int eth 1/49 | egrep "flapped|state" |
| 檢查下行鏈路狀態 | show int eth 1/17 | egrep "flapped|state|fabric-track" |
| 檢查交換矩陣埠跟蹤調試日誌 | cat /var/sysmgr/tmp_logs/fabric_track.py.dbg |尾部 — n 15 |
| 檢查收發器詳細資訊 | show interface ethernet 1/49收發器詳細資訊 | egrep "type|name|serial" |
| 將物理介面對映到內部埠 | vsh_lc -c 'show platform internal usd port info' | egrep "Eth1/49" -A 1 |
| 檢查平台連結事件 | vsh_lc -c 'show platform internal tah event-history linkevents' | grep埠"61.0" -A 1 |
| 檢查交換矩陣反退回策略 | moquery -c fabricFIfPol | egrep "dn|linkDebounce" |
| 檢查介面反退回 | show interface eth1/49 debounce |
| 配置反退回 | 連結取消退回時間10000 |
當物理交換矩陣介面未翻動,但交換矩陣埠跟蹤仍像交換矩陣鏈路不可用一樣運行時,可能出現拐角情況。
範例:
show int eth 1/49 | egrep "flapped|state"
admin state is up, Dedicated Interface
Last link flapped 1y14w
在此案例中,介面最近沒有翻動。
由於Fabric Port-Track依賴於託管對象查詢,因此請驗證枝葉是否可以成功執行相關moquery:
moquery -c l1PhysIf -x 'query-target-filter=and(anybit(l1PhysIf.usage,"fabric"),eq(l1PhysIf.switchingSt,"enabled"))'
還要檢查磁碟利用率,出現問題的條件示例:
df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 2.5G 2.5G 0 100% /bin
如果根檔案系統已滿,枝葉可能會丟棄或中斷內部功能,包括moquery。因此,Fabric Port-Track必須無法確認交換矩陣鏈路是否已啟動,並且必須錯誤地關閉下行鏈路介面。
建議的操作:
有一個特定問題涉及用於監控的BiDi QSFP光纖和無源光纖TAP。
被動分接頭風險
當被動式TAP基礎設施插入枝葉和主幹之間,並且監控裝置使用常規BiDi光學器件時,監控路徑可以將光傳輸回即時生產鏈路。
這可能導致:
這種情況下,重新載入監控交換機會導致出現意外的光訊號,從而導致枝葉和主幹發生鏈路中斷事件。

標準SR光纖 — QSFP-40/100-SRBD
使用標準SR光纖時,傳輸和接收路徑是分開的:
Tx -> Rx
Rx <- Tx
每個光纖的流量都是單向的。

建議的緩解
對於BiDi監控方案,請使用只接收而不傳輸到生產路徑的適當的僅監控BiDi光纖。

BiDi光纖 — QSFP-40G-BD-RX
使用BiDi光纖時,傳輸和接收都存在於每條光纖上:
Tx/Rx <-> Tx/Rx
這被描述為一個特殊的TAP/監視器BiDi光學器件,其中監視器路徑只接收訊號。
對於vPC連線的下行鏈路埠,恢復行為可能同時受交換矩陣埠跟蹤延遲計時器和vPC延遲計時器影響。
對於vPC配置,如果枝葉節點丟失所有交換矩陣埠並因此丟失ISIS鄰接關係,則無法與其vPC對等節點通訊。在這種情況下,下行鏈路埠在vPC延遲計時器或埠跟蹤延遲計時器的較長時間內重新啟用。
運營影響:
範例:
思科錯誤ID CSCva95547,與APIC連線的埠和交換矩陣埠跟蹤行為有關。
一個關鍵的操作考慮事項是,在瞬變上行鏈路故障期間,面向APIC的埠通常不能被交換矩陣埠跟蹤關閉,因為這可能會影響管理和控制器連線。
包括ApicPorts選項用於控制行為中是否包含APIC連線的介面。

這表示連線了APIC的連線埠不會被Fabric Port-Track停用。
思科APIC基本配置指南>章節:調配核心ACI交換矩陣服務>鏈路反退回間隔
思科以應用為中心的基礎架構基礎>章節:Fabric Provisioning > Port Tracking Policy for Fabric Port Failure Detection
參考錯誤:
思科錯誤ID CSCva95547:埠跟蹤功能請求:用於禁用進入APIC的枝葉交換機埠的旋鈕
| 修訂 | 發佈日期 | 意見 |
|---|---|---|
1.0 |
17-Jun-2026
|
初始版本 |