簡介
本檔案介紹如何對nexus 7000上連線埠通道上的輸入捨棄進行疑難排解。
必要條件
思科建議瞭解以下主題:
Nexus 7000系列交換器
F系列線卡
鏈路聚合控制協定
背景資訊
F3線卡將封包排入入口而非出口,並在所有輸入介面上實作虛擬輸出佇列(VOQ),如此一來,擁塞的出口連線埠就不會影響導向其他出口連線埠的流量。在系統中廣泛使用VOQ有助於確保每個出口的最大吞吐量。一個輸出連線埠上的擁塞不會影響目的地為其他輸出介面的流量,這可以避免原本會導致擁塞擴散的線路頭封鎖(HOLB)。
在突發最佳化模式下,如果IB耗盡,我們應會看到PL中的丟包。在網狀最佳化模式下,丟棄會由於超過閾值而移動到VQ。網格最佳化可避免HOLB丟棄。
VOQ還使用貸記和未貸記流量的概念。單播流量被分類為貸記流量;廣播、組播和未知的單點傳播流量被歸類為不可信流量。不可信流量不使用VOQ,流量在出口而非入口上排隊。如果輸入連線埠沒有將流量傳送到輸出連線埠的信用額,則輸入連線埠會緩衝直到獲得信用額。由於輸入連線埠緩衝區不深,可能會發生輸入捨棄情況。
常見原因
輸入丟棄
- 交換連線埠分析器(SPAN)在F2線路卡上具有目的地連線埠,且其SPAN流量超過線路速率時,會發生輸入捨棄的最常見原因。最後,輸入連線埠會緩衝封包,導致輸入捨棄。
附註:下一代I/O模組(如F2E、F3和M3)不易受導致SPAN目的地連線埠超訂用情況的影響,這些情況會在輸入連線埠上造成內嵌和HOLB。SPAN的准則與限制中也會註明這一點
- 設計不當(如10G的輸入頻寬和1G的輸出頻寬)會觸發F2硬體限制(HOL阻塞)。
- 如果來自多個埠的流量從同一介面(1G到1G或10G到10G介面)流出,則如果超過線路速率,可能會導致輸入埠上出現輸入丟棄情況。
- VLAN不匹配可能會導致輸入丟棄。使用show interface trunk命令以驗證兩台交換器是否轉送相同的VLAN。
LACP PDU丟失:
當埠通道未收到來自鄰居的任何LACP PDU時,該埠通道會被掛起。線卡在輸入(而不是輸出)上對資料包進行排隊,而輸入丟棄則表示由於擁塞而在輸入隊列中丟棄的資料包數。
- 埠邏輯(PL)是決策引擎之前和前面板埠之後的緩衝區。入口埠邏輯上的任何擁塞或流量控制都會阻止或延遲LACP PDU進一步進入導致介面暫停的狀態。VL是高優先順序虛擬通道。如果有高優先順序VL 5流量從擁塞埠進行線頭阻塞的情況,我們將在VL 5的PL中施加背壓,這會導致LACP PDU丟棄。
疑難排解
‘show module’
Mod Ports Module-Type Model Status
--- ----- ----------------------------------- ------------------ ----------
5 0 Supervisor Module-2 N7K-SUP2E active *
6 0 Supervisor Module-2 N7K-SUP2E ha-standby
7 6 100 Gbps Ethernet Module N7K-F306CK-25 ok
8 12 10/40 Gbps Ethernet Module N7K-F312FQ-25 ok
在本示例中,埠通道10(7/1、7/2和7/5)和埠通道20(7/3、7/4和7,6)上的輸入丟棄是由出口介面8/6上的擁塞引起的。這些丟棄是由HOL阻塞引起的。
`show port-channel summary`
--------------------------------------------------------------------------------
Group Port- Type Protocol Member Ports
Channel
--------------------------------------------------------------------------------
10 Po10(RU) Eth LACP Eth7/1(P) Eth7/2(P) Eth7/5(P)
20 Po20(RU) Eth LACP Eth7/3(P) Eth7/4(P) Eth7/6(P)
switch# show interface counter errors
--------------------------------------------------------------------------------
Port InDiscards
--------------------------------------------------------------------------------
Eth7/1 253323164
Eth7/2 253682395
Eth7/3 66785160 >>>>> input discards on interfaces 7/1-6 are incrementing continuously. These interfaces belong to Po10 and Po20 which eventually goes into suspended state with reason “no LACP PDUs received”
Eth7/4 64770521
Eth7/5 258650104
Eth7/6 66533418
Eth8/6 0
Po10 765655663
Po20 198089099
要確定擁塞的埠:
在VQI上,非零計數器的操作一直都在進行。在擁塞的連線埠上,計數器的使用時間通常都處於高位
.
switch# attach mod 7
Attaching to module 7 ...
To exit type 'exit', to abort type '$.'
module-7# show hardware internal qengine voq-status | ex "0 0 0 0 0 0 0 0 0 0 0 0"
+-------------------------------------------------------------------------------
| VOQ Status for Queue Driver
| ports 1-48
VQI:CCOS INST0 INST1 INST2 INST3 INST4 INST5
-------- ----- ----- ----- ----- ----- -----
0:0 0 0 0 0 0 0
0:1 0 0 0 0 0 0
145:6 0 0 0 0 0 0
145:7 0 0 0 0 0 0
146:0 0 0 0 0 0 0
146:1 14d 130 533 79b 258 447
146:2 5 44 7 12 1a 2
146:3 2325 2277 1ae8 1a39 27bc 1902
146:4 0 0 0 0 0 0
146:5 0 0 0 0 0 0
146:6 0 0 0 0 0 0
146:7 0 0 0 0 0 0
147:0 0 0 0 0 0 0
147:1 0 0 0 0 0 0
147:2 0 0 0 0 0 0
147:3 0 0 0 0 0 0
VQI是146
VQI === 146具有非零計數器,並且不斷增加
轉換為十六進位制:
switch# hex 146
0x92
switch# show system internal ethpm info module | egrep -i vqi
LTL(0x36), VQI(0x42), LDI(0), IOD(0x14c)
LTL(0x37), VQI(0x43), LDI(0x1), IOD(0x14d)
LTL(0x38), VQI(0x44), LDI(0x2), IOD(0x14e)
LTL(0x39), VQI(0x45), LDI(0x3), IOD(0x14f)
LTL(0x72), VQI(0x8a), LDI(0xc), IOD(0x62)
LTL(0x76), VQI(0x8e), LDI(0x10), IOD(0x63)
LTL(0x7a), VQI(0x92), LDI(0x14), IOD(0xe6) >>>>>>> VQI 0x92 maps to LTL 0x7a
LTL(0x7e), VQI(0x96), LDI(0x18), IOD(0xe7)
LTL(0x82), VQI(0x9a), LDI(0x1c), IOD(0xe8)
LTL(0x86), VQI(0x9e), LDI(0x20), IOD(0xe9)
使用pixm對映將LTL轉換為物理接口
PIXM管理LTL和FPOE對映以構建通過交換機的硬體轉發路徑
switch# show system internal pixm info ltl 0x7a
Member info
------------------
Type LTL
---------------------------------
PHY_PORT Eth8/6 >>>> congested egress interface.
確定LACP PDU是否被丟棄
LACP PDU是高優先順序的流量,因此不應預期LACP PDU會因為輸入丟棄而丟棄且埠通道會關閉,除非有高優先級VL 5流量會從擁塞的埠進行線頭阻塞。
為了確認高優先順序VL 5流量是否被丟棄,請運行命令「show hardware queuing drops ingress」,該命令將顯示受影響介面上VL 5的PL丟棄
switch# show hardware queuing drops ingress
slot 7
=======
Device: Flanker Queue
PL drops:
SOURCE INTERFACE VL COUNT
-------------------- ----- --------------------------
Eth7/1 5 24437734
Eth7/2 5 24289997
Eth7/3 5 24449567
Eth7/4 5 26084373
Eth7/5 5 27840523
Eth7/6 5 21043740
通過為受影響的模組運行命令「show hardware internal errors」來確認受影響介面上的VL 5丟棄
switch# show hardware internal errors
`show hardware internal errors`
|------------------------------------------------------------------------|
| Device:Flanker Eth Mac Driver Role:MAC Mod: 7 |
| Device Statistics Category :: ERROR
|------------------------------------------------------------------------|
5236 igr rx pl: cbl drops 0000000000069679 8 -
5282 egr in pl: total rcvd pkts with drop 0000000001951540 8 -
indication from eb
5321 egr out pl: total pkts dropped due to cbl 0000000000034829 8 -
5477 igr PL: bpdu drops(vl5) 0000000000004986 2 - <<<<<<<<<<<
5480 igr PL: nde drops(vl0) 0000000000098993 2 -
5485 igr PL: nde drops(vl5) 0000000002291236 2 - <<<<<<<<<<<
5496 igr PL: Q threshold drop bytecount (vl0) 0000000000344607 2 -
13453 [intr] IPL intr: parser truncated mlh error 0000000000002946 2 -
請注意,丟棄計數器會針對以下內容遞增
igr PL:bpdu捨棄(vl5)
igr PL:nde drops(vl5)
解決方案
為了解決此問題,請確保沒有擁塞,這可以通過增加出口擁塞連線埠上的頻寬或限制到擁塞連線埠的流量來完成。
已知錯誤
CSCvn97534 此錯誤會導致輸出緩衝區鎖定,從而導致輸入丟棄和連線埠通道翻動。
參考
Nexus 7000故障排除:F2/F2e輸入丟棄