目录

简介

先决条件

要求

使用的组件

问题说明

网络图

配置

vPC孤立端口上的STP

vPC上的STP

行为变化

验证

故障排除

摘要

相关信息

简介

本文档介绍如何在Nexus系列交换机上填充生成树协议(STP)控制数据包中的源MAC地址字段。

作者：Nikolay Kartashev、Jun Wang，Cisco TAC工程师。

先决条件

要求

Cisco 建议您了解以下主题：

- 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地址。此MAC地址对于两个vPC对等体相同。这可确保vPC故障切换场景中的一致和无缝行为。

在vPC网络环境中排除STP故障时，Nexus系列交换机可能会在某些源BPDU的源MAC地址字段中使用其他供应商的MAC地址，这通常会造成混淆。这些部分解释了此原因，并将不同Nexus系列平台之间的此行为进行比较。

网络图

以一对Nexus 7000系列交换机形成vPC域并连接到两台接入交换机为例。一个接入交换机通过vPC孤立端口连接到vPC域，另一个接入交换机通过虚拟端口通道接口连接。vPC孤立端口和虚拟端口通道都配置为第2层中继接口，如图所示

在本示例中，虽然vPC接口仅传输启用vPC的vlan，但vPC孤立端口同时中继启用vPC的vlan和非启用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)开始，Cisco分配了0026.0bf1.f000到0026.0bf2.2ffff的MAC地址范围供MAC使用在虚拟端口通道接口上发送的BPDU中的源MAC地址的nx-OS。

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使用新的Cisco MAC地址(00:26:0b:xx:xx:xx)作为vPC端口上生成的BPDU的源地址。两台vPC对等设备对此参数的配置相同非常重要。在发出此通信之前，您还可以禁用边缘设备上的以太网通道防护，并最大限度地减少因STP不一致而造成的流量中断。建议在更新两个对等体上的相关配置后重新启用以太网通道防护。

Continue?（是/否）[否]

验证

当前没有可用于此配置的验证过程。

故障排除

目前没有针对此配置的故障排除信息。

摘要

思科交换机上的MAC地址学习机制不使用STP PDU，因此使用非思科源MAC地址不会对日常第2层网络操作产生负面影响。但是，为了符合标准，自发BPDU应从分配的MAC地址范围填充源MAC地址字段。Cisco Nexus系列交换机通过更改Nexus 5000系列交换机和Nexus 9000系列交换机的默认设置以及在Nexus 7000系列交换机上提供命令行配置选项，在Cisco NX-OS软件中提供此类合规性。

相关信息

- 技术支持和文档 - Cisco Systems