概要
このドキュメントでは、スパニングツリープロトコル(STP)制御パケットの送信元MACアドレスフィールドがNexusシリーズスイッチでどのように設定されるかを説明します。
著者:Cisco TACエンジニア、Nikolay Kartashev、Jun Wang
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Nexusシリーズスイッチの仮想ポートチャネル(vPC)
- STP
使用するコンポーネント
このドキュメントの情報は、Nexus 7000 シリーズ スイッチ プラットフォームに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
問題の説明
vPCを使用すると、2つの異なるCisco Nexus 7000シリーズデバイスに物理的に接続されているリンクを、3つ目のデバイスで1つのポートチャネルとして表示できます。3つ目のデバイスは、スイッチ、サーバ、またはリンク集約テクノロジーをサポートする他のです。
Cisco Catalystシリーズスイッチと同様、Cisco NexusシリーズスイッチはSTPを使用して、イーサネットネットワークの論理ループフリートポロジを構築します。
vPCはMultichassis EtherChannel(MCEC)テクノロジーファミリに属しているため、ブリッジプロトコルデータユニット(BPDU)とも呼ばれるSTP制御パケットの送信元MACアドレスフィールドには、vPCドメインを単一のスイッチとして正しく表すための特別なガイドがが必要があります。
次に、一般的なBPDU構造を示します。ここで、Source Addressフィールドは、図に示すように、このドキュメントの説明の焦点です
Cisco Nexusシリーズスイッチは、仮想ポートチャネルインターフェイスから送信されるBPDUの送信元MACアドレスフィールドに仮想MACアドレスを使用します。このMACアドレスは、両方のvPCピアで同じです。これにより、vPCフェールオーバーシナリオで一貫性のあるシームレスな動作が保証されます。
vPCネットワーク環境でSTPをトラブルシューティングする場合、Nexusシリーズスイッチが発信元BPDUのSource MAC addressフィールドで他のベンダーのMACアドレスを使用する可能性があるため、混乱が生じることがあります。このセクションでは、この理由について説明し、さまざまなNexusシリーズプラットフォーム間でこの動作を比較します。
ネットワーク図
Nexus 7000シリーズスイッチのペアがvPCドメインを形成し、いくつかのアクセススイッチに接続する例を考えてみましょう。1つのアクセススイッチはvPC孤立ポートを介してvPCドメインに接続され、別のアクセススイッチは仮想ポートチャネルインターフェイスを介して接続されます。図に示すように、vPC孤立ポートと仮想ポートチャネルの両方がレイヤ2トランクインターフェイスとして設定されます
この例では、vPCインターフェイスがvPC対応VLANのみを伝送している場合、vPC孤立ポートトランクはvPC対応VLANとvPC非対応VLANの両方をトランクします。
設定
最初のNexus 7000シリーズスイッチのvPCインターフェイスの設定を次に示します。2つ目のNexus 7000シリーズスイッチの設定は同じです。
Nexus7000-1# show running-config interface port-channel 60
!Command: show running-config interface port-channel60
!Time: Fri Jul 14 02:56:21 2017
version 7.2(2)D1(2)
interface port-channel60
switchport
switchport trunk allowed vlan 1-199
switchport mode trunk
vpc 60
Nexus7000-1#
最初のNexus 7000シリーズスイッチのvPC孤立ポートの設定は次のとおりです。
Nexus7000-1# show running-config interface ethernet 3/13
!Command: show running-config interface Ethernet3/13
!Time: Sun Jul 16 04:49:43 2017
version 7.2(2)D1(2)
interface Ethernet3/13
switchport
switchport mode trunk
no shutdown
Nexus7000-1#
vPC孤立ポートのSTP
最初のNexus 7000シリーズスイッチのvPC孤立ポートでのパケットキャプチャは、発信BPDUの送信元MACアドレスが、vPCとvPC以外の両方のVLANのポートMACアドレスに基づいていることを示しています。
#Nexus7000-1# show interface ethernet 3/13
Ethernet3/13 is up
admin state is up, Dedicated Interface
Hardware: 10000 Ethernet, address: 503d.e5b8.7298 (bia 503d.e5b8.7298)
...
Nexus7000-1# ethanalyzer local interface inband-out display-filter stp limit-captured-frames 1000 | include b8:72:98
Capturing on inband
2017-07-16 04:47:17.383777 Cisco_b8:72:98 -> Spanning-tree-(for-bridges)_00 STP 60 RST. Root = 0/1/a4:4c:11:6a:24:41 Cost = 2 Port = 0x818d
2017-07-16 04:47:17.383876 Cisco_b8:72:98 -> PVST+ STP 64 RST. Root = 0/1/a4:4c:11:6a:24:41 Cost = 2 Port = 0x818d
2017-07-16 04:47:17.384182 Cisco_b8:72:98 -> PVST+ STP 64 RST. Root = 4096/2/00:23:04:ee:be:01 Cost = 0 Port = 0x818d
2017-07-16 04:47:17.384483 Cisco_b8:72:98 -> PVST+ STP 64 RST. Root = 4096/3/00:23:04:ee:be:01 Cost = 0 Port = 0x818d
2017-07-16 04:47:17.384876 Cisco_b8:72:98 -> PVST+ STP 64 RST. Root = 4096/4/00:23:04:ee:be:01 Cost = 0 Port = 0x818d
2017-07-16 04:47:17.385189 Cisco_b8:72:98 -> PVST+ STP 64 RST. Root = 4096/5/00:23:04:ee:be:01 Cost = 0 Port = 0x818d
2017-07-16 04:47:17.385504 Cisco_b8:72:98 -> PVST+ STP 64 RST. Root = 4096/6/00:23:04:ee:be:01 Cost = 0 Port = 0x818d
...
2017-07-16 04:47:17.399802 Cisco_b8:72:98 -> PVST+ STP 64 RST. Root = 4096/c8/00:23:04:ee:be:01 Cost = 0 Port = 0x818d
注:発信BPDUの送信元MACアドレスフィールドとしてポートMACアドレスを使用することは、Cisco NexusシリーズスイッチおよびCisco Catalystシリーズスイッチのプラットフォームでのデフォルト動作です。
vPCでのSTP
Nexusシリーズスイッチによって仮想ポートチャネルに送信されるBPDUの送信元MACアドレスは、次のように構成されます。
vPC BPDU送信元MACアドレス= 0026.fxxx.0000
ここで、xxxはvPCポートチャネル番号です。
たとえば、このパケットキャプチャは、vPCのポートチャネル番号の位置の値0x03cを示し、これは10進数の60に変換されます。これは、Nexus 7000シリーズスイッチで設定された仮想ポートチャネルの数です。
2017-07-13 02:54:12.710581 00:26:f0:3c:00:00 -> 01:00:0c:cc:cc:cd STP 100 RST. Root = 4096/43/00:23:04:ee:be:01 Cost = 0 Port = 0x903b
2017-07-13 02:54:12.710599 00:26:f0:3c:00:00 -> 01:00:0c:cc:cc:cd STP 100 RST. Root = 4096/44/00:23:04:ee:be:01 Cost = 0 Port = 0x903b
2017-07-13 02:54:12.710601 00:26:f0:3c:00:00 -> 01:00:0c:cc:cc:cd STP 100 RST. Root = 4096/45/00:23:04:ee:be:01 Cost = 0 Port = 0x903b
2017-07-13 02:54:12.710603 00:26:f0:3c:00:00 -> 01:00:0c:cc:cc:cd STP 100 RST. Root = 4096/46/00:23:04:ee:be:01 Cost = 0 Port = 0x903b
ただし、ソースMACアドレス00:26:f0:3c:00:00のOUI(Organizational Unique Identifier)がチェックされ、このMACアドレスがcTrixs International GmbH組織に割り当られた範囲当一部であることが確認されます。
注:MACアドレスブロックの割り当てを確認するには、このリンクhttps://www.wireshark.org/tools/oui-lookup.htmlまたは類似のツールで利用可能なWireshark OUI Lookupを使用できます。
キャプチャには、MACアドレス解決が設定された同じ出力が表示されます。 ネットワークオペレータとして、vPCネットワーク環境でSTPをトラブルシューティングする際に表示されるものは、次のとおりです。
Nexus7000-1# ethanalyzer local interface inband-out display-filter stp limit-captured-frames 1000 | include CtrixIn
Capturing on inband
2017-07-17 04:34:32.324661 CtrixsIn_3c:00:00 -> PVST+ STP 64 RST. Root = 4096/5/00:23:04:ee:be:01 Cost = 0 Port = 0x903b
2017-07-17 04:34:32.324864 CtrixsIn_3c:00:00 -> PVST+ STP 64 RST. Root = 4096/6/00:23:04:ee:be:01 Cost = 0 Port = 0x903b
2017-07-17 04:34:32.325075 CtrixsIn_3c:00:00 -> PVST+ STP 64 RST. Root = 4096/7/00:23:04:ee:be:01 Cost = 0 Port = 0x903b
2017-07-17 04:34:32.325265 CtrixsIn_3c:00:00 -> PVST+ STP 64 RST. Root = 4096/8/00:23:04:ee:be:01 Cost = 0 Port = 0x903b
2017-07-17 04:34:32.325466 CtrixsIn_3c:00:00 -> PVST+ STP 64 RST. Root = 4096/9/00:23:04:ee:be:01 Cost = 0 Port = 0x903b
注:vPC以外のポートチャネルインターフェイスは、最初に動作するインターフェイスからMACアドレスを取得します。発信BPDUの送信元MACアドレスフィールドは、ポートチャネルインターフェイスのMACアドレスを使用します。
行動の変化
Nexus 5000シリーズスイッチの5.2(1)N1(9)から7.1(4)N1(1)まで、シスコはNXで使用するMACアドレス範囲を0026.0bf1.f000 ~ 0026.0bf2.2ffff0仮想ポートチャネルインターフェイスで送信されるBPDUの送信元MACアドレスのOS。
vPC BPDU送信元MACアドレス= 0026.0bf1.fxxx
ここで、xxxはvPCポートチャネル番号です。
導入された変更により、Nexus 5000シリーズスイッチで仮想ポートチャネル60に送信される発信元BPDUの送信元MACアドレスは、Cisco Systems, Inc.のOUIを持つ00:26:0b:f1:f0:3cになります。
14 2017-07-13 04:38:16.781559 00:26:0b:f1:f0:3c -> 01:00:0c:cc:cc:cd STP 100 RST. Root = 4096/18/00:23:04:ee:be:01 Cost = 0 Port = 0x903b
15 2017-07-13 04:38:16.781561 00:26:0b:f1:f0:3c -> 01:00:0c:cc:cc:cd STP 100 RST. Root = 4096/19/00:23:04:ee:be:01 Cost = 0 Port = 0x903b
16 2017-07-13 04:38:16.782222 00:26:0b:f1:f0:3c -> 01:00:0c:cc:cc:cd STP 100 RST. Root = 4096/20/00:23:04:ee:be:01 Cost = 0 Port = 0x903b
17 2017-07-13 04:38:16.782229 00:26:0b:f1:f0:3c -> 01:00:0c:cc:cc:cd STP 100 RST. Root = 4096/21/00:23:04:ee:be:01 Cost = 0 Port = 0x903b
Nexus 7000およびNexus 9000シリーズスイッチのデフォルト動作は変更されません。ただし、Nexus 7000および7.0(3)I6(2)、7.0(3)I7(2) for Nexus 9000では、このコマンドをvPCドメインコンフィギュレーションモードで使用して、この変更を実行できます。
Nexus7000-1(config-vpc-domain)# mac-address bpdu source version 2
この警告メッセージは、この設定コマンドの影響を通知するために表示されます。
警告:このコマンドにより、STPはvPCポートで生成されたBPDUの送信元アドレスとして新しいCisco MACアドレス(00:26:0b:xx:xx:xx)を使用します。両方のvPCピアデバイスでこのパラメータの設定が同じであることが重要です。この通信を発行する前にエッジデバイスでEther Channel Guardを無効にして、STPの不一致によるトラフィックの中断を最小限に抑えることもできます。両方のピアで関連する設定を更新した後に、Ether Channel Guardを再度有効にすることを推奨します。
Continue?(はい/いいえ) [いいえ]
確認
現在、この設定に使用できる確認手順はありません。
トラブルシュート
現在、この設定に関する特定のトラブルシューティング情報はありません。
要約
STP PDUはCiscoスイッチのMACアドレス学習メカニズムでは使用されないため、シスコ以外の送信元MACアドレスを使用しても、レイヤ2の日常的なネットワーク動作に悪影響を及ぼすことはありません。ただし、規格に準拠するために、自己発信BPDUには、割り当てられた範囲のMACアドレスからSource MAC addressフィールドを設定する必要があります。Cisco Nexusシリーズスイッチは、Cisco NX-OSソフトウェアに対して、Nexus 5000シリーズスイッチおよびNexus 9000シリーズスイッチのデフォルト設定の変更、およびNexus 7000シリーズスイッチのコマンドライン設定オプションのプロビジョニングを提供します。
関連情報