目錄

簡介

必要條件

需求

採用元件

問題描述

網路圖表

組態

vPC孤立埠上的STP

vPC上的STP

行為改變

驗證

疑難排解

摘要

相關資訊

簡介

本檔案將說明如何在Nexus系列交換器上填充跨距樹狀目錄通訊協定(STP)控制封包中的來源MAC位址欄位。

作者：Nikolay Kartashev、Jun Wang、思科TAC工程師。

必要條件

需求

思科建議您瞭解以下主題：

- Nexus系列交換機上的虛擬埠通道(vPC)

- STP

採用元件

本檔案中的資訊是根據Nexus 7000系列交換器平台。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

問題描述

vPC允許物理連線到兩個不同的Cisco Nexus 7000系列裝置的鏈路顯示為由第三台裝置提供的單埠通道。第三台裝置可以是交換機、伺服器或任何支援鏈路聚合技術的其他網路裝置。

與Cisco Catalyst系列交換機類似，Cisco Nexus系列交換機使用STP為乙太網路構建邏輯無環拓撲。

由於vPC屬於多機箱EtherChannel(MCEC)技術系列，因此STP控制資料包的源MAC地址欄位(也稱為網橋協定資料單元(BPDU))需要特殊的指南，才能將vPC域正確表示為單個交換機。

以下是典型的BPDU結構的提醒，其中「來源位址」欄位是本文討論的重點，如下圖所示

Cisco Nexus系列交換機在從虛擬埠通道介面傳送的BPDU的「源MAC地址」欄位中使用虛擬MAC地址。兩個vPC對等體的此MAC地址相同。這可確保vPC故障切換場景中的行為一致且無縫。

當您對vPC網路環境中的STP進行故障排除時，經常會出現混淆，原因是Nexus系列交換機可能使用某些源自BPDU的源MAC地址欄位中的其他供應商MAC地址。以下各節解釋了出現此現象的原因，並比較不同Nexus系列平台之間的此行為。

網路圖表

考慮一對Nexus 7000系列交換機構成vPC域並且與兩個接入交換機具有連線的示例。一個接入交換機通過vPC孤立埠連線到vPC域，另一個接入交換機通過虛擬埠通道介面連線。vPC孤立埠和虛擬埠通道均配置為第2層中繼介面，如下圖所示

在本示例中，vPC介面只傳送支援vPC的vlan，而vPC孤立埠中繼啟用vPC和不支援vPC的vlan。

組態

這是第一台Nexus 7000系列交換機上的vPC介面配置。第二台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地址基於埠MAC地址，適用於vPC和非vPC VLAN。

#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，該數值轉換為十進位制值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)的檢查顯示此MAC地址是分配給cTrixs International GmbH組織的範圍的一部分。

附註：要查詢MAC地址塊的分配，您可以使用連結https://www.wireshark.org/tools/oui-lookup.html上提供的Wireshark OUI查詢或任何類似工具。

捕獲中顯示了具有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)開始，思科分配從0026.0bf1.f000到0026.0bf2.2ffff的一系列MAC地址，供NX-OS用於虛擬埠 — 通道介面上傳送的BPDU中的源MAC地址。

vPC BPDU源MAC地址= 0026.0bf1.fxxx

其中xxx是vPC埠通道號。

在引入更改後，從Nexus 5000系列交換機上的虛擬埠通道60傳送的源BPDU的源MAC地址將為00:26:0b:f1:f0:3c，具有Cisco Systems， Inc.的OUI。

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的6.1(3)和Nexus 9000的7.0(3)I6(2)的7.0(3)I7(2)開始，您可以在vPC域配置模式下使用此命令來執行此更改。

Nexus7000-1(config-vpc-domain)# mac-address bpdu source version 2

系統會顯示此警告消息，通知您此配置命令的影響。

警告：此命令將觸發STP使用新的思科MAC地址(00:26:0b:xx:xx:xx)作為vPC埠上生成的BPDU的源地址。兩台vPC對等裝置必須配置相同的此引數。您也可以在發出此命令之前禁用邊緣裝置上的Ether通道防護，並最大限度地減少由於STP不一致而造成的流量中斷。建議在更新兩個對等點上的相關組態後，重新啟用Ether通道防護。

是否繼續？（是/否）[否]

驗證

目前沒有適用於此組態的驗證程序。

疑難排解

目前尚無適用於此組態的具體疑難排解資訊。

摘要

STP PDU不被Cisco交換機上的MAC地址學習機制使用，因此使用非Cisco源MAC地址對日常第2層網路操作沒有負面影響。但是，為了符合標準，自發起的BPDU應該從分配的MAC地址範圍填充源MAC地址欄位。Cisco Nexus系列交換機通過更改Nexus 5000系列交換機和Nexus 9000系列交換機的預設設定，以及在Nexus 7000系列交換機上提供命令列配置選項，在Cisco NX-OS軟體中提供此類合規性。

相關資訊

- 技術支援與文件 - Cisco Systems