内容

はじめに

このドキュメントでは、Nexus 9000 cloudscaleファミリでLink Aggregation Control Protocol(LACP)をトラブルシュートする方法について説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- LACPプロトコル

- NXOSプラットフォーム

- ELAMの理解

- Ethanalyzerの理解

使用するコンポーネント

[名前(Name)]

掌状

バージョン

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)

注：最も一般的な障害シナリオは、Nexusがインターフェイスを一時停止することです。これについては、「LACP一時停止インターフェイス」セクションで説明します。

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

注：このシナリオが発生しても、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では、アクターの状態情報がパートナーとアクターの間で交換されます。

Activity

1：アクティブモード

0：パッシブモード

[タイムアウト（Timeout）]

1：短いタイムアウト

0：長いタイムアウト

集約

1：集約可能

0：個別

sync

1：同期

0：同期外れ

収集中

1：収集が有効

0：収集が無効

配布

1：配布が有効

0：配布が無効

デフォルト

1：パートナーにデフォルトを使用

0：パートナーにrx LACPDUを使用

Expired

1：パートナーPDUの有効期限が切れています

0：有効期限なし

注：表2.0アクターの状態ビットの意味

LACP状態の16進数値を確認します。

注：イメージ3.0のLACP状態の2進数から16進数への変換

LAG IDの確認

Link Agregation Identifier(LAG)は、同じポートチャネルの各物理インターフェイスメンバーが共有している情報で、単一の「仮想インターフェイス」として表示されます。 コマンドを使用して確認できます。

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情報の確認応答(ACK)を行います。

3

N9K1アクター

N9K2パートナー

- N9K1:N9K2情報を確認します。

4

N9K1パートナー

N9K2アクター

- N9K2はN9K1から確認応答を受信します。

- N9K2はLACP PDUを送信し、同期ビットを1に追加する

5

N9K1アクター

N9K2パートナー

- N9K1はN9K2からのSYNCビットを確認します。

- N9K1はLACP PDUに1のSYNCビットを追加する

6

N9K1パートナー

N9K2アクター

- N9K2 N9K1からのSYNCビットの確認応答。

- N9K2はLACP PDUに1のCollectビットを追加する

7

N9K1アクター

N9K2パートナー

- N9K1確認応答N9K2からの収集ビット。

- N9K1はLACP PDUにCollectビットを追加する

8

N9K1アクター

N9K2パートナー

- N9K1は、が配信状態に遷移する準備ができていると判断します。そのため、タイムアウト(Time Out)ビットを1（速い）から0（遅い）に変更し、配信ビットを1に設定します。

9

N9K1パートナー

N9K2アクター

- N9k2はN9k1 PDUを確認応答し、そのタイムアウトビットを1から0に変更して、配布バイトを1に設定します。

- この時点で、両方のNexusはポートチャネルでデータを送信する準備が整いました。

10

N9K1アクター

N9K2パートナー

- N9K1はN9K2からのLACP PDUを確認します。

- この時点で、ポートチャネルはアップに移行します。

LACP FSMログの確認

LACP有限状態マシン(FSM)には専用のログがあり、このログにはインターフェイスのLACP状態のすべてのイベントが保存され、LACP PDUは次のログで確認できます。

sh lacp internal info interface e1/1 detail fsmlog

新しいバージョンでは、次のコマンドも使用できます。

sh lacp internal event-history interface e1/1

最初のセクションでは、インターフェイスのLACP移行について説明します

>>>>FSM:

has 61 logged transitions<<<<<

58) FSM:

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:

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:

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:

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]

2番目のセクションには、exusが送受信したすべてのLACP PDU情報が表示されます。

(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で処理する必要がある（LACPパケットをCPUにリダイレクトするため、nexusがハードウェア内部アクセスリストにインストールされている）場合、Wiresharkフィルタ「slow」を使用してこれらをフィルタリングするために、ethanalyzerですべてのLACP PDUを確認できます。

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 <<<<

sup redirectインデックスをデコードするには、sh system internal access-list sup-redirect-statsコマンドを実行できます。

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

2627 LACP 0

2627 LACP 103