목차

소개

이 문서에서는 Nexus 9000 cloudscale 제품군의 LACP(Link Aggregation Control Protocol) 문제를 해결하는 방법을 설명합니다.

사전 요구 사항

요구 사항

Cisco에서는 다음 항목에 대해 알고 있는 것이 좋습니다.

- LACP 프로토콜

- NXOS 플랫폼

- ELAM 이해

- Ethanalyzer 이해

사용되는 구성 요소

이름

플랫폼

버전

N9K1

N9K-C93108TC-EX

9.3(10)

N9K2

N9K-C93108TC-EX

9.3(10)

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

토폴로지

LACP 링크 상태 확인

참고: 이미지 1.1 LACP 링크 상태.

LACP를 구성합니다.

N9K1

N9K2

show run interface port-channel 1 membership

interface port-channel1

switchport

switchport mode trunk

interface Ethernet1/1

switchport

switchport mode trunk

channel-group 1 mode active

no shutdown

interface Ethernet1/2

switchport

switchport mode trunk

channel-group 1 mode active

no shutdown

show run interface port-channel 1 membership

interface port-channel1

switchport

switchport mode trunk

interface Ethernet1/1

switchport

switchport mode trunk

channel-group 1 mode active

no shutdown

interface Ethernet1/2

switchport

switchport mode trunk

channel-group 1 mode active

no shutdown

포트 채널 상태 확인

N9K1

N9K2

sh port-channel summary interface port-channel 1

Flags:  D - Down        P - Up in port-channel (members)

I - Individual  H - Hot-standby (LACP only)

s - Suspended   r - Module-removed

b - BFD Session Wait

S - Switched    R - Routed

U - Up (port-channel)

p - Up in delay-lacp mode (member)

M - Not in use. Min-links not met

--------------------------------------------------------------------------------

Group Port-       Type     Protocol  Member Ports

Channel

--------------------------------------------------------------------------------

1     Po1(SU)     Eth      LACP      Eth1/1(P)

sh port-channel summary interface port-channel 1

Flags:  D - Down        P - Up in port-channel (members)

I - Individual  H - Hot-standby (LACP only)

s - Suspended   r - Module-removed

b - BFD Session Wait

S - Switched    R - Routed

U - Up (port-channel)

p - Up in delay-lacp mode (member)

M - Not in use. Min-links not met

--------------------------------------------------------------------------------

Group Port-       Type     Protocol  Member Ports

Channel

--------------------------------------------------------------------------------

1     Po1(SU)     Eth      LACP      Eth1/1(P)

참고: 가장 일반적인 장애 시나리오는 LACP Suspended interface(LACP 일시 중단 인터페이스) 섹션에서 다루는 Nexus의 인터페이스 일시 중단입니다.

LACP 일시 중단 인터페이스 확인

sh port-channel summary interface port-channel 1

Flags:  D - Down        P - Up in port-channel (members)

I - Individual  H - Hot-standby (LACP only)

s - Suspended   r - Module-removed

b - BFD Session Wait

S - Switched    R - Routed

U - Up (port-channel)

p - Up in delay-lacp mode (member)

M - Not in use. Min-links not met

--------------------------------------------------------------------------------

Group Port-       Type     Protocol  Member Ports

Channel

--------------------------------------------------------------------------------

1     Po1(SD)     Eth      LACP      Eth1/1(s)

sh int e1/1 status

--------------------------------------------------------------------------------

Port         Name           Status     Vlan    Duplex   Speed     Type

--------------------------------------------------------------------------------

Eth1/1       --            suspended   trunk    auto     auto   10Gbase-SR

sh int e1/1

Ethernet1/1 is down (suspended(no LACP PDUs))

admin state is up, Dedicated Interface

Belongs to Po1

Hardware: 100/1000/10000/25000 Ethernet, address: 003a.9c08.68ab (bia 003a.9c08.68ab)

MTU 9216 bytes, BW 10000000 Kbit , DLY 10 usec

reliability 255/255, txload 1/255, rxload 1/255

<Snipped>

참고: 이 시나리오와 관련하여 Nexus가 파트너로부터 LACP PDU를 수신하지 않는 경우, LACP 인터페이스 카운터를 서면 섹션과 같이 확인할 수 있습니다. LACP 인터페이스 카운터를 확인하거나 SPAN 또는 ELAM과 같은 패킷 캡처(섹션 LACP ELAM에 설명)를 수행할 수 있습니다.

LACP 인터페이스 카운터 확인

각 디바이스는 포트 채널이 가동되기 위해 동일한 속도로 LACPDU를 송수신해야 합니다.

N9K1

N9K2

sh lacp counters interface port-channel 1

NOTE: Clear lacp counters to get accurate statistics

------------------------------------------------------------------------------

LACPDUs                      Markers/Resp LACPDUs

Port              Sent                Recv                  Recv Sent  Pkts Err

------------------------------------------------------------------------------

port-channel1

Ethernet1/1        445                  445                    0      0    0

Ethernet1/2        445                  445                    0      0    0

sh lacp counters interface port-channel 1

NOTE: Clear lacp counters to get accurate statistics

------------------------------------------------------------------------------

LACPDUs                      Markers/Resp LACPDUs

Port              Sent                Recv                  Recv Sent  Pkts Err

------------------------------------------------------------------------------

port-channel1

Ethernet1/1        445                  445                    0      0    0

Ethernet1/2        445                  445                    0      0    0

LACP 액터 상태 비트 확인

각 LACP PDU에서 Actor 상태 정보는 파트너와 Actor 간에 교환됩니다.

활동

1: 활성 모드

0: 패시브 모드

Timeout(시간 초과)

1: 짧은 시간 초과

0: 긴 시간 초과

Aggregation(어그리게이션)

1: 집계 가능

0: 개별

동기화

1: 동기화 중

0: 동기화되지 않음

Collecting(수집 중)

1: 수집 사용

0: 수집 사용 안 함

배포

1: 배포 사용

0: 배포 사용 안 함

Defaulted(기본값 지정됨)

1: 파트너의 기본값 사용

0: 파트너용 rx LACPDU 사용

Expired(만료됨)

1: 파트너 PDU 만료

0: 만료되지 않음

참고: 표 2.0 액터 상태 비트 의미

LACP 상태 16진수 값 확인:

참고: Image 3.0 LACP 상태 변환이 이진에서 16진수로

LAG ID 확인

Link Aggregation Identifier(링크 집계 식별자)는 동일한 포트 채널의 각 물리적 인터페이스 멤버가 공유하는 정보로, 단일 "가상 인터페이스"로 표시됩니다. 명령을 사용하여 확인할 수 있습니다.

N9K1 LAG ID

N9K2 LAG ID

sh lacp interface e1/1 | include iignore  local|lag

Lag Id: [ [(1770, a8-c-d-96-43-7f, 5, 8000, 1c9), (1770, a8-c-d-96-c9-bf, 5, 8000, 1c9)] ]

Local Port: Eth1/1 MAC Address=a8-c-d-96-c9-bf

sh lacp interface e1/2 | include iignore  local|lag

Lag Id: [ [(1770, a8-c-d-96-43-7f, 5, 8000, 1ca), (1770, a8-c-d-96-c9-bf, 5, 8000, 1ca)] ]

Local Port: Eth1/2 MAC Address=a8-c-d-96-c9-bf

sh lacp interface e1/1 | include iignore  local|lag

Lag Id: [ [(1770, a8-c-d-96-c9-bf, 5, 8000, 1c9),(1770, a8-c-d-96-43-7f, 5, 8000, 1c9)] ]

Local Port: Eth1/1 MAC Address=a8-c-d-96-43-7f

sh lacp interface e1/2 | include iignore  local|lag

Lag Id: [ [(1770, a8-c-d-96-c9-bf, 5, 8000, 1c9),(1770, a8-c-d-96-43-7f, 5, 8000, 1c9)] ]

Local Port: Eth1/2 MAC Address=a8-c-d-96-43-7f

LACP PDU 교환 확인

Nexus가 올바른 속도로 LACP PDU를 교환하더라도 포트 채널이 나타나지 않는 경우가 있습니다.

이는 LACP 협상 실패 때문일 수 있습니다.

이 표에는 포트 채널에 대한 올바른 LACP 트랜잭션의 예가 나와 있습니다.

1

N9K1 액터

N9K2 파트너

- N9K1은 상태 비트와 함께 액터 정보가 포함된 LACP를 전송합니다.

- N9K1이(가) 파트너로부터 LACP PDU를 수신하지 않았으므로 파트너 정보가 0에 있습니다.

2

N9K1 파트너

N9K2 액터

- N9K2는 N9K1에 대한 정보를 수신한다.

- N9K2는 LACP PDU에 해당 정보를 보내고 N9K1 정보를 승인합니다.

3

N9K1 액터

N9K2 파트너

- N9K1은 N9K2 정보를 승인한다.

4

N9K1 파트너

N9K2 액터

- N9K2는 N9K1로부터 확인 응답을 수신합니다.

- N9K2는 1에서 SYNC 비트를 추가하는 LACP PDU를 전송합니다.

5

N9K1 액터

N9K2 파트너

- N9K1은 N9K2로부터 SYNC 비트를 승인한다.

- N9K1은 1의 SYNC 비트를 LACP PDU에 추가합니다.

6

N9K1 파트너

N9K2 액터

- N9K2는 N9K1의 SYNC 비트를 확인합니다.

- N9K2는 LACP PDU에 Collect bit at 1을 추가합니다.

7

N9K1 액터

N9K2 파트너

- N9K1은 N9K2에서 수집 비트를 승인한다.

- N9K1은 LACP PDU에 수집 비트를 추가합니다.

8

N9K1 액터

N9K2 파트너

- N9K1은 배포 상태로 전환할 준비가 되었다고 결정하므로 현재 시간 초과 비트를 1(빠름)에서 0(느림)으로 변경하고 배포 비트를 1로 설정합니다.

9

N9K1 파트너

N9K2 액터

- N9k2는 N9k1 PDU를 승인하고 해당 시간 초과 비트를 1에서 0으로 변경하고 distribute bite를 1로 설정합니다.

- 이제 두 Nexus 모두 포트 채널에서 데이터를 전송할 준비가 되었습니다.

10

N9K1 액터

N9K2 파트너

- N9K1은 N9K2에서 LACP PDU를 승인합니다.

- 포트-채널 볼륨이 up으로 전환됩니다.

LACP FSM 로그 확인

LACP Finite State Machine(LACP 유한 상태 머신)에는 인터페이스 LACP 상태 및 LACP PDU의 모든 이벤트를 저장하는 전용 로그가 있습니다.

sh lacp internal info interface e1/1 detail fsmlog

새 버전에서는 다음을 사용할 수도 있습니다.

sh lacp internal event-history interface e1/1

첫 번째 섹션에서는 인터페이스 LACP 전환에 대해 설명합니다

>>>>FSM: <Ethernet1/1> has 61 logged transitions<<<<<

<Snipped>

58) FSM:<Ethernet1/1> Transition at 127198 usecs after Mon Aug 14 22:34:42 2023

Previous state: [LACP_ST_WAIT_FOR_HW_TO_PROGRAM_RECEIVE_PATH]

Triggered event: [LACP_EV_PORT_RECEIVE_PATH_ENABLED_AS_CHANNEL_MEMBER_MESSAGE]

Next state: [LACP_ST_PORT_MEMBER_RECEIVE_ENABLED]

59) FSM:<Ethernet1/1> Transition at 127227 usecs after Mon Aug 14 22:34:42 2023

Previous state: [LACP_ST_PORT_MEMBER_RECEIVE_ENABLED]

Triggered event: [LACP_EV_PARTNER_PDU_IN_SYNC_COLLECT_ENABLED_DISTRIBUTING_DISABLED]

Next state: [LACP_ST_WAIT_FOR_HW_TO_PROGRAM_TRANSMIT_PATH]

60) FSM:<Ethernet1/1> Transition at 128265 usecs after Mon Aug 14 22:34:42 2023

Previous state: [LACP_ST_WAIT_FOR_HW_TO_PROGRAM_TRANSMIT_PATH]

Triggered event: [LACP_EV_PERIODIC_TRANSMIT_TIMER_EXPIRED]

Next state: [FSM_ST_NO_CHANGE]

61) FSM:<Ethernet1/1> Transition at 134352 usecs after Mon Aug 14 22:34:42 2023

Previous state: [LACP_ST_WAIT_FOR_HW_TO_PROGRAM_TRANSMIT_PATH]

Triggered event: [LACP_EV_PORT_HW_PATH_ENABLED]

Next state: [LACP_ST_PORT_MEMBER_COLLECTING_AND_DISTRIBUTING_ENABLED]

Curr state: [LACP_ST_PORT_MEMBER_COLLECTING_AND_DISTRIBUTING_ENABLED]
두 번째 섹션에는 exu가 보내거나 받은 모든 LACP PDU 정보가 표시됩니다.
<Snipped>

(1) Send LACP PDU: len:110 at 492243 usecs after Tue Aug 15 00:02:13 2023

01010114 8000f8a7 3a393d6b 80008000 01013d00 00000214 8000f8a7 3a2ea30f

80008000 01013d00 00000310 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 0000

Actor:

info: (8000, f8-a7-3a-39-3d-6b, 8000, 8000, 101)

state:0x0f (Ac-1:To-1:Ag-1:Sy-1:Co-0:Di-0:De-0:Ex-0)

Partner:

info: (8000, f8-a7-3a-2e-a3-f, 8000, 8000, 101)

state:0x0f (Ac-1:To-1:Ag-1:Sy-1:Co-0:Di-0:De-0:Ex-0

(2) Recv LACP PDU: len:124 at 708749 usecs after Tue Aug 15 00:02:12 2023

0180c200 0002f8a7 3a2ea310 88090101 01148000 f8a73a2e a30f8000 80000101

3d000000 02148000 f8a73a39 3d6b8000 80000101 3d000000 03100000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000 00000000 00000000 00000000

Actor:

info: (8000, f8-a7-3a-2e-a3-f, 8000, 8000, 101)

state:0x0f (Ac-1:To-1:Ag-1:Sy-1:Co-0:Di-0:De-0:Ex-0)

Partner:

info: (8000, f8-a7-3a-39-3d-6b, 8000, 8000, 101)

state:0x07 (Ac-1:To-1:Ag-1:Sy-0:Co-0:Di-0:De-0:Ex-0)

참고: LACP PDU 이벤트 기록 타임라인이 이전 로그에서 이전 로그로 이동하지만 LACP 상태 이벤트 기록 타임라인이 이전 로그에서 최신 로그로 이동한다는 점을 고려하십시오.

LACP Ethanalyzer 구성 및 확인

LACP PDU는 CPU에서 처리해야 합니다. Nexus는 LACP 패킷을 CPU로 리디렉션하기 위해 하드웨어 내부 액세스 목록에 설치되었으며, 모든 LACP PDU를 ethanalyzer로 관찰할 수 있습니다. 이를 필터링하기 위해 wireshark 필터 "slow"를 사용할 수 있습니다.

ethanalyzer local interface inband display-filter "slow and eth.addr==04:76:b0:b2:00:20 and eth.addr==01:80:c2:00:00:02" limit-captured-frames 0

Capturing on inband

2023-07-03 23:37:14.420839 04:76:b0:b2:00:20 -> 01:80:c2:00:00:02 LACP Link Aggregation Control ProtocolVersion 1. Actor Port = 257 Partner Port = 449

Detailed:

Frame 19 (124 bytes on wire, 124 bytes captured)

Arrival Time: Jul 3, 2023 23:38:14.425502000

[Time delta from previous captured frame: 0.836575000 seconds]

[Time delta from previous displayed frame: 11.246799000 seconds]

[Time since reference or first frame: 11.246799000 seconds]

Frame Number: 19

Frame Length: 124 bytes

Capture Length: 124 bytes

[Frame is marked: False]

[Protocols in frame: eth:slow]

Ethernet II, Src: 04:76:b0:b2:00:20 (04:76:b0:b2:00:20), Dst: 01:80:c2:00:00:02 (01:80:c2:00:00:02)

Destination: 01:80:c2:00:00:02 (01:80:c2:00:00:02)

Address: 01:80:c2:00:00:02 (01:80:c2:00:00:02)

.... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast)

.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)

Source: 04:76:b0:b2:00:20 (04:76:b0:b2:00:20)

Address: 04:76:b0:b2:00:20 (04:76:b0:b2:00:20)

.... ...0 .... .... .... .... = IG bit: Individual address (unicast)

.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)

Type: Slow Protocols (0x8809)

Link Aggregation Control Protocol

Slow Protocols subtype: LACP (0x01)

LACP Version Number: 0x01

Actor Information: 0x01

Actor Information Length: 0x14

Actor System Priority: 32768

Actor System: 04:76:b0:b2:00:1f (04:76:b0:b2:00:1f)

Actor Key: 32768

Actor Port Priority: 32768

Actor Port: 257

Actor State: 0x3d (Activity, Aggregation, Synchronization, Collecting, Distributing)

.... ...1 = LACP Activity: Yes

.... ..0. = LACP Timeout: No

.... .1.. = Aggregation: Yes

.... 1... = Synchronization: Yes

...1 .... = Collecting: Yes

..1. .... = Distributing: Yes

.0.. .... = Defaulted: No

0... .... = Expired: No

Reserved: 000000

Partner Information: 0x02

Partner Information Length: 0x14

Partner System Priority: 32768

Partner System: 70:0f:6a:d7:d0:fb (70:0f:6a:d7:d0:fb)

Partner Key: 32768

Partner Port Priority: 32768

Partner Port: 449

Partner State: 0x3d (Activity, Aggregation, Synchronization, Collecting, Distributing)

.... ...1 = LACP Activity: Yes

.... ..0. = LACP Timeout: No

.... .1.. = Aggregation: Yes

.... 1... = Synchronization: Yes

...1 .... = Collecting: Yes

..1. .... = Distributing: Yes

.0.. .... = Defaulted: No

0... .... = Expired: No

Reserved: 000000

Collector Information: 0x03

Collector Information Length: 0x10

Collector Max Delay: 0

Reserved: 000000000000000000000000

Terminator Information: 0x00

Terminator Length: 0x00

Reserved: 000000000000000000000000000000000000000000000000...

LACP Elam 구성 및 확인

원격 인터페이스의 첫 번째 mac 주소를 식별해야 합니다.

N9K2#sh int e1/1 | i i addr

Hardware: 1000/10000/25000/40000/50000/100000 Ethernet, address: 0476.b0b2.0020 (bia 0476.b0b2.0020)

이제 nexus N9K1 elam이 구성되었습니다.

N9K1#debug platform internal tah elam

N9K1(TAH-elam)#trigger init

N9K1(TAH-elam-insel6)#set outer l2 src_mac 04:76:b0:b2:00:20 dst_mac 01:80:c2:00:00:02 <<<<<Dest mac is mcast mac for LACP

N9K1(TAH-elam-insel6)#tart

N9K1(TAH-elam-insel6)#report

SUGARBOWL ELAM REPORT SUMMARY

slot - 1, asic - 0, slice - 1

============================Incoming Interface: Eth1/49

Src Idx : 0x601, Src BD : 1

Outgoing Interface Info: met_ptr 0Packet Type: CE

Dst MAC address: 01:80:C2:00:00:02

Src MAC address: 04:76:B0:B2:00:20

Sup hit: 1, Sup Idx: 2627. <<<<<Traffic needs to be punted to the CPU.

Drop Info:

----------LUA:

LUB:

LUC:

LUD:

Final Drops:vntag:

vntag_valid : 0

vntag_vir : 0

vntag_svif : 0

sup redirect index를 디코딩하기 위해 명령 sh 시스템 내부 access-list sup-redirect-stats를 실행할 수 있습니다.

sh system internal access-list sup-redirect-stats | i i 2627

2627 LACP 0

2627 LACP 103