目录

简介

先决条件

要求

使用的组件

规则

CatOS 和 Cisco IOS 系统软件之间的区别

Catalyst 交换机中 VLAN (SVI) 或 L3 接口上的 MAC 地址

第 2 层接口上的 MAC 地址

用于生成树计算 (STC) 的 MAC 地址

支持每接口一个唯一 MAC 地址的 CLI 配置的 Catalyst 交换机

带有运行 CatOS 系统软件的 MSFC1、MSFC2 或 MSFC3 的 Catalyst 6500/6000 Supervisor 引擎 720 和 Supervisor 引擎 I

Catalyst 4000 L3 模块

不支持每接口唯一 MAC 地址的 CLI 配置的 Catalyst 交换机

Catalyst 6500/6000 Supervisor 引擎 II

Catalyst 4500/4000 Supervisor 引擎 III/IV

Catalyst L2 和 L3 固定配置交换机

Catalyst 2900XL/3500XL

相关信息

简介

本文描述对 Cisco Catalyst 交换机的 VLAN（交换虚拟接口 [SVI]）或第 3 层 (L3) 接口上的唯一 MAC 地址配置的支持。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件和硬件版本。

规则

有关文档规则的详细信息，请参阅 Cisco 技术提示规则。

CatOS 和 Cisco IOS 系统软件之间的区别

Supervisor 引擎上的 Catalyst OS (CatOS) 和 Multilayer Switch Feature Card (MSFC) 上的 Cisco IOS® 软件（混合）：可将 CatOS 映像用作系统软件，在 Catalyst 6500/6000 交换机上运行 Supervisor 引擎。如果安装了可选的 MSFC，则将使用单独的 Cisco IOS 软件映像来运行 MSFC。

Supervisor 引擎和 MSFC 上的 Cisco IOS 软件（本地）：可将单个 Cisco IOS 软件映像用作系统软件，在 Catalyst 6500/6000 交换机上同时运行 Supervisor 引擎和 MSFC。

注：有关详细信息，请参阅Cisco Catalyst 6500系列交换机的Cisco Catalyst和Cisco IOS操作系统的比较。

Catalyst 交换机中 VLAN (SVI) 或 L3 接口上的 MAC 地址

默认情况下，Catalyst 交换机的所有接口都配置了相同的 MAC 地址。本部分的图显示了带有Supervisor引擎2和MSFC2的Catalyst 6500。但是，尽管IP地址不同，所有三个VLAN接口上的MAC地址也相同。

Catalyst 交换机可对为 VLAN (SVI) 或 L3 接口更改 MAC 地址的功能提供多种支持。如果网络设备支持多个 IP 到单个 MAC 的地址解析协议 (ARP) 表（很常见），则无需更改固化的 MAC 地址。而且，如果交换机支持每 VLAN MAC 地址表，则无需更改 MAC 地址。Cisco 交换机支持每 VLAN MAC 地址表或内容可寻址存储器 (CAM) 表。此支持允许交换机维护每 VLAN 的 MAC 地址表。所以，交换机可在多个 VLAN 接口上具有同一 MAC 地址，而不会出现任何问题。

注意：如果HSRP组ID在多个接口上重复使用，热备份路由器协议(HSRP)组使用相同的虚拟MAC地址。因此，您必须尽可能地了解并使用不同的 HSRP 组。为了了解 Catalyst 6500/6000 中的 HSRP 组限制，请参考以下文档：

- Catalyst 6500/6000 系列交换机上的 HSRP 组限制常见问题

Catalyst 3550 交换机、带有 Supervisor 引擎 III/IV 的 Catalyst 4500/4000 交换机和带有 Supervisor 引擎 720 的 Catalyst 6500 交换机在 0 到 255 范围内最多支持 256 个唯一 HSRP 组 ID。

第 2 层接口上的 MAC 地址

第 2 层接口（交换机端口）的 MAC 地址是唯一的，并且已分配给该特定线路模块。在 Cisco 6500/6000、4500/4000、3750、3560、3550 和 2970 系列交换机中，不能更改交换机端口上的 MAC 地址。在 Cisco 2940 和 2950/2955 系列交换机中，可在接口配置模式下使用 mac-address 命令更改交换机端口的 MAC 地址。

用于生成树计算 (STC) 的 MAC 地址

用于生成树计算 (STC) 的 MAC 地址存储在 Supervisor 模块的 EEPROM 中。无论安装的是哪种类型的线路模块，除非更换 Supervisor 模块，否则 VLAN的第 2 层 MAC 地址不会更改。如果更换 Supervisor 模块，所有 VLAN 的第 2 层 MAC 地址都会更改为在新 Supervisor 模块的地址分配器中指定的地址。在固定配置的 Catalyst 交换机中，无法更改 VLAN 的 MAC 地址。

支持每接口一个唯一 MAC 地址的 CLI 配置的 Catalyst 交换机

本部分讨论支持在每接口 MAC 地址中进行更改的交换机。

带有运行 CatOS 系统软件的 MSFC1、MSFC2 或 MSFC3 的 Catalyst 6500/6000 Supervisor 引擎 720 和 Supervisor 引擎 I

此输出来自 MSFC1，其中所有接口的默认 MAC 地址均相同：

cs-6506-24a#show interfaces | include line | address

Vlan1 is down, line protocol is down

Hardware is Cat6k RP Virtual Ethernet, address is 00d0.bcf1.ee5c (bia 00d0.bcf1.ee5c)

Internet address is 14.18.2.182/16

Vlan2 is down, line protocol is down

Hardware is Cat6k RP Virtual Ethernet, address is 00d0.bcf1.ee5c (bia 00d0.bcf1.ee5c)

cs-6506-24a#

使用 mac-address mac_address 接口配置命令更改 MAC 地址。示例如下：

cs-6506-24a#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

cs-6506-24a(config)#interface vlan 1

cs-6506-24a(config-if)#mac-address 0007.0001.0001

cs-6506-24a(config-if)#exit

cs-6506-24a(config)#interface vlan 2

cs-6506-24a(config-if)#mac-address 0007.0001.0002

cs-6506-24a(config-if)#end

cs-6506-24a#

以下面的方式验证 MAC 地址的变化：

cs-6506-24a#show interfaces | include line | address

Vlan1 is down, line protocol is down

Hardware is Cat6k RP Virtual Ethernet, address is 0007.0001.0001 (bia 00d0.bcf1.ee5c)

Internet address is 14.18.2.182/16

Vlan2 is down, line protocol is down

Hardware is Cat6k RP Virtual Ethernet, address is 0007.0001.0002 (bia 00d0.bcf1.ee5c)

cs-6506-24a#

当运行 Cisco IOS 系统软件时，将对 VLAN (SVI) 和 L3 接口应用相同命令。但是，第 2 层 (L2) 接口具有从每个模块的 MAC 地址范围内分配的 MAC 地址。发出 show module 命令，以便查看此范围：

cat6kIOS#show module 3

Mod Ports Card Type                              Model              Serial No.

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

3   16  SFM-capable 16 port 1000mb GBIC        WS-X6516-GBIC      SAD0438056W

Mod MAC addresses                       Hw    Fw           Sw           Status

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

3  0030.f270.ce3b to 0030.f270.ce4a   1.0   6.1(3)       7.5(0.6)HUB1 Ok

当特定 L2 接口发出控制流量时（例如网桥协议数据单元 (BPDU)），将使用此 MAC 地址。 但是，如果使用 no switchport 命令以便配置与 L3 接口相同的 L2 端口，MAC 地址将恢复为 SVI 和 L3 接口的全局默认 MAC 地址。在具有运行 Cisco IOS 系统软件的 Supervisor 引擎 I 的 Catalyst 6500 中，可以更改此设置，如下面的示例所示：

cat6kIOS#show interfaces | include line | address

Vlan1 is up, line protocol is up

Hardware is EtherSVI, address is 00d0.003f.880a (bia 00d0.003f.880a)

Internet address is 10.48.72.111/23

Vlan3 is administratively down, line protocol is down

Hardware is EtherSVI, address is 00d0.003f.880a (bia 00d0.003f.880a)

!--- Output suppressed.

GigabitEthernet3/1 is up, line protocol is down (notconnect)

Hardware is C6k 1000Mb 802.3, address is 0030.f270.ce3f (bia 0030.f270.ce3f)

!--- Gigabit Ethernet 3/5 is an L2 interface. The MAC address !--- is from the module MAC address pool.

!--- Output suppressed.

GigabitEthernet3/10 is up, line protocol is down (notconnect)

Hardware is C6k 1000Mb 802.3, address is 00d0.003f.880a (bia 00d0.003f.880a)

!--- Gigabit Ethernet 3/10 is an L3 interface. The MAC address !--- is the default for SVI and L3 interface.

现在，将接口 3/10 配置为 L2 端口并验证 MAC 地址的更改：

Enter configuration commands, one per line.  End with CNTL/Z.

cat6kIOS(config)#interface gigabitethernet

cat6kIOS(config)#interface gigabitethernet 3/10

cat6kIOS(config-if)#switchport

cat6kIOS(config-if)#

如此示例所示，千兆以太网 3/10 接口现在使用来自模块 MAC 地址池的 MAC 地址：

cat6kIOS#show interface gigabitethernet 3/10

GigabitEthernet3/10 is up, line protocol is down (notconnect)

Hardware is C6k 1000Mb 802.3, address is 0030.f270.ce44 (bia 0030.f270.ce44)

MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec,

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

Encapsulation ARPA, loopback not set

Full-duplex mode, link type is autonegotiation, GBIC not connected

output flow-control is unsupported, input flow-control is unsupported, 1000Mb/s

如果恢复千兆以太网 3/10 的设置使其成为 L3 接口，则分配默认 MAC 地址：

cat6kIOS(config)#interface gigabitethernet 3/10

cat6kIOS(config-if)#no switchport

cat6kIOS(config-if)#end

cat6kIOS#show interface gigabitethernet 3/10

GigabitEthernet3/10 is up, line protocol is down (notconnect)

Hardware is C6k 1000Mb 802.3, address is 00d0.003f.880a (bia 00d0.003f.880a)

MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec,

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

Encapsulation ARPA, loopback not set

Keepalive set (10 sec)

Catalyst 4000 L3 模块

Catalyst 4000 L3 模块支持更改 MAC 地址。在物理接口和端口信道接口中使用 mac-address mac_address 命令，以便进行更改。

不支持每接口唯一 MAC 地址的 CLI 配置的 Catalyst 交换机

Catalyst 6500/6000 Supervisor 引擎 II

Catalyst 6500/6000 Supervisor 引擎 II 支持由默认固化地址 (BIA) 更改 MAC 地址。 但是，如果更改一个接口的 MAC 地址，则所有已配置的 SVI 的 MAC 地址都将更改为新配置的 MAC 地址。因此，无法实现每个接口有一个唯一的 MAC 地址。这是 Supervisor 引擎 II 的硬件限制，在将来的软件版本中无法解决。

此示例将 MAC 地址由 BIA 的 0007.0e8f.088a 更改为 0007.0001.0001：

Router#show interfaces | include line | address

Vlan1 is up, line protocol is up

Hardware is EtherSVI, address is 0007.0e8f.088a (bia 0007.0e8f.088a)

Vlan2 is up, line protocol is up

Hardware is EtherSVI, address is 0007.0e8f.088a (bia 0007.0e8f.088a)

!--- Output suppressed.

使用 mac-address mac_address 命令以便在接口配置下更改 MAC 地址：

Router#configure terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)#interface vlan 1

Router(config-if)#mac-address 0007.0001.0001

Router(config-if)#end

Router#

VLAN 1 接口中的 MAC 地址更改会修改所有接口上的 MAC 地址，如下面的示例所示：

Router#show interfaces | include line | address

Vlan1 is up, line protocol is up

Hardware is EtherSVI, address is 0007.0001.0001 (bia 0007.0e8f.088a)

Vlan2 is up, line protocol is up

Hardware is EtherSVI, address is 0007.0001.0001 (bia 0007.0e8f.088a)

Catalyst 4500/4000 Supervisor 引擎 III/IV

Catalyst 4500/4000 Supervisor 引擎 III/IV 当前不支持 MAC 地址更改。该接口中的 MAC 地址是默认 BIA，对所有接口均相同。

带有 Supervisor 引擎 III/IV 的 Catalyst 4500/4000 无法识别 mac-address 命令。

cat4kIOS(config)#interface vlan 110

cat4kIOS(config-if)#mac-address ?

% Unrecognized command

cat4kIOS(config-if)#mac-address

Catalyst L2 和 L3 固定配置交换机

此部分论述 Catalyst L2 固定配置交换机 2940、2950/2955 和 2970（VLAN 接口）以及 Catalyst L3 固定配置交换机 3550、3560 和 3750（VLAN 和 L3 接口）。

交换机系列

支持更改 L2 交换机端口的 MAC 地址

支持更改 L3 接口的 MAC 地址

支持更改 VLAN 接口的 MAC 地址

相同的 MAC 地址或对 VLAN 接口唯一的 MAC 地址

2940、2950、2955

Yes

不能应用

Yes

相同的 MAC 地址

2970

无

无

无

唯一的 MAC 地址

3550

无

无

无

相同的 MAC 地址

3560 和 3750

无

无

无

唯一的 MAC 地址

此配置示例显示在运行 Cisco IOS 软件版本 12.1(22)EA9 的 Cisco Catalyst 2950 系列交换机中更改 MAC 地址时使用的步骤。

2950(config)#interface fa0/2

2950(config-if)#mac-address 0007.0007.0002

2950(config-if)#interface vlan 2

2950(config-if)#mac-address 0007.0007.0022

2950#show interfaces | include line | address

Vlan1 is up, line protocol is up

Hardware is CPU Interface, address is 0009.b740.8900 (bia 0009.b740.8900)

Internet address is 172.16.200.1/16

Vlan2 is administratively down, line protocol is down

Hardware is CPU Interface, address is 0007.0007.0022 (bia 0009.b740.8900)

FastEthernet0/1 is down, line protocol is down (notconnect)

Hardware is Fast Ethernet, address is 0009.b740.8901 (bia 0009.b740.8901)

FastEthernet0/2 is down, line protocol is down (notconnect)

Hardware is Fast Ethernet, address is 0007.0007.0002 (bia 0009.b740.8902)

FastEthernet0/3 is down, line protocol is down (notconnect)

Hardware is Fast Ethernet, address is 0009.b740.8903 (bia 0009.b740.8903)

在本例中，带有 Cisco IOS 软件版本 12.1(14)EA1 的 3550 无法识别 mac-address 命令：

3550(config)#interface vlan 2

3550(config-if)#mac-address 0007.0001.0001

^

% Invalid input detected at '^' marker.

3550(config-if)#

注意：在Cisco IOS软件版本12.1(13)EA1及更早版本中，交换机允许在接口中配置mac-address命令。但此命令会导致连接问题。此命令行界面 (CLI) 配置问题在 Cisco IOS 软件版本 12.1(14)EA 和更高版本中已得到解决。

Catalyst 2900XL/3500XL

Catalyst 2900XL/3500XL 交换机可识别 mac-address 命令，但不接受或支持该命令。此输出来自带有 Cisco IOS 软件版本 12.0(5)WC3b 的 Catalyst 3500XL：

Cat3512XL(config)#interface vlan 1

Cat3512XL(config-if)#mac-address

Cat3512XL(config-if)#mac-address 005.0005.0005

"mac-address" override is not allowed in this system

Cat3512XL(config-if)#

相关信息

- 交换机产品支持

- LAN 交换技术支持

- 技术支持和文档 - Cisco Systems