소개
이 문서에서는 nexus 7000에서 포트 채널의 입력 폐기 문제를 해결하는 방법에 대해 설명합니다.
사전 요구 사항
Cisco는 다음 주제에 대해 알고 있는 것을 권장합니다.
Nexus 7000 Series 스위치
F 시리즈 라인 카드
링크 집계 제어 프로토콜
배경 정보
F3 라인 카드는 이그레스(egress) 대신 인그레스(ingress)의 패킷을 대기열에 배치하고 모든 인그레스(ingress) 인터페이스에서 VOQ(virtual output queue)를 구현하므로, 혼잡한 이그레스 포트가 다른 이그레스(egress) 포트로 향하는 트래픽에 영향을 미치지 않습니다. 시스템에서 VOQ를 광범위하게 사용하면 이그레스 기준으로 최대 처리량을 보장할 수 있습니다. 한 이그레스 포트의 혼잡은 다른 이그레스 인터페이스로 향하는 트래픽에 영향을 주지 않으므로 혼잡을 확산시키는 HOLB(Head-of-Line Blocking)를 방지합니다.
버스트 최적화 모드에서는 IB가 소진되는 경우 PL에서 드롭을 볼 수 있습니다. 메시 최적화 모드에서 삭제는 임계값을 초과했기 때문에 VQ로 이동합니다. 메시 최적화 - HOLB 삭제를 방지합니다.
VOQ는 또한 차감 및 차감 없는 트래픽의 개념을 사용합니다. 유니캐스트 트래픽은 크레딧된 트래픽으로 분류됩니다. 브로드캐스트, 멀티캐스트 및 알 수 없는 유니캐스트 트래픽은 차감되지 않은 트래픽으로 분류됩니다. 차감 없는 트래픽은 VOQ를 사용하지 않으며 트래픽은 인그레스 대신 이그레스(egress)에서 대기됩니다. 인그레스 포트에 트래픽을 이그레스 포트로 보낼 크레딧이 없는 경우, 인그레스 포트는 크레딧을 받을 때까지 버퍼링합니다. 인그레스 포트 버퍼가 깊지 않으므로 입력 삭제가 발생할 수 있습니다.
일반적인 원인
입력 폐기
- 가장 일반적인 입력 폐기 원인은 F2 라인 카드의 대상 포트와 회선 속도를 초과하는 SPAN 트래픽이 있는 SPAN(Switched Port Analyzer)이 있는 경우에 발생합니다. 결국 인그레스 포트는 패킷을 버퍼링하여 입력을 버립니다.
참고: F2E, F3 및 M3과 같은 차세대 I/O 모듈은 인그레스 포트에서 인버링 및 HOB를 일으키는 SPAN 대상 포트 오버서브스크립션 시나리오에 취약하지 않습니다. 이는 SPAN의 지침 및 제한에도 설명되어 있습니다.
- 부적절한 설계(예: 입력 대역폭 10G 및 출력 대역폭 1G)로 인해 F2 하드웨어 제한(HOL 차단)이 트리거됩니다.
- 여러 포트의 트래픽이 동일한 인터페이스(1G~1G 또는 10G~10G 인터페이스)를 벗어나면 라인 속도를 초과할 경우 인그레스 포트에서 입력이 삭제될 수 있습니다.
- VLAN이 일치하지 않으면 입력 폐기가 발생할 수 있습니다. 두 스위치가 동일한 VLAN을 전달하는지 확인하려면 show interface trunk 명령을 사용합니다.
LACP PDU 손실:
포트 채널은 네이버에서 LACP PDU를 수신하지 못하면 일시 중단됩니다. 라인 카드는 이그레스(egress) 대신 인그레스(ingress)의 패킷을 대기열에 넣고 입력 삭제는 혼잡 때문에 입력 대기열에서 삭제된 패킷 수를 나타냅니다.
- PL(Port Logic)은 결정 엔진 이전의 버퍼이며 전면 패널 포트 뒤에 있습니다. 인그레스(ingress)의 Port Logic에서 혼잡 또는 흐름 제어가 이루어지면 LACP PDU가 더 이상 진행되지 않거나 지연되어 인터페이스가 중단됩니다. VL은 우선 순위가 높은 가상 레인입니다. 우선 순위가 높은 VL 5 트래픽이 혼잡한 포트에서 Head-Of-Line 차단을 하는 경우 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에서는 0이 아닌 카운터가 끊임없이 이동했습니다. 혼잡한 포트에서 카운터는 대개 항상 높게 유지됩니다
.
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에는 0이 아닌 카운터가 있으며 계속 증가합니다.
16진수로 변환:
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)
픽셀 매핑을 사용하여 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 트래픽이 혼잡한 포트에서 Head-of-Line 차단이 발생하는 경우는 제외합니다.
우선 순위가 높은 VL 5 트래픽이 삭제되는지 확인하려면 "show hardware queuing dropping 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`
|------------------------------------------------------------------------|
| 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 삭제(vl5)
솔루션
이 문제를 해결하려면 혼잡이 발생하지 않아야 하며, 이그레스 병목 포트에서 대역폭을 늘리거나 혼잡한 포트로 트래픽을 제한하여 이 작업을 수행할 수 있어야 합니다.
알려진 버그
CSCvn97534 이 버그로 인해 이그레스 버퍼가 잠기므로 입력 폐기 및 포트 채널 플랩이 발생합니다.
참조
Nexus 7000 문제 해결: F2/F2e 입력 폐기