14-MAC地址转发表管理操作
本章节下载 (385.39 KB)
本章节内容只涉及静态、动态和黑洞MAC地址表项的管理,有关组播MAC地址表项管理的内容,请参见“组播协议”部分。
以太网交换机的主要功能是在数据链路层对报文进行转发,也就是根据报文的目的MAC地址将报文输出到相应的端口。MAC地址转发表是一张包含了MAC地址与转发端口对应关系的二层转发表,是以太网交换机实现二层报文快速转发的基础。MAC地址转发表的表项中包含如下信息:
l 目的MAC地址
l 端口所属的VLAN ID
l 本设备上的转发出端口编号
以太网交换机在转发报文时,根据MAC地址表项信息,会采取以下两种转发方式:
l 单播方式:当MAC地址转发表中包含与报文目的MAC地址对应的表项时,交换机直接将报文从该表项中的转发出端口发送。
l 广播方式:当交换机收到目的地址为全F的报文,或MAC地址转发表中没有包含对应报文目的MAC地址的表项时,交换机将采取广播方式将报文向除接收端口外的所有端口转发。
MAC地址转发表中的表项可以通过两种方式进行更新和维护:
l 手工配置方式
l MAC地址学习方式
通常情况下,多数MAC地址表项都是通过MAC地址学习功能创建和维护的。以太网交换机学习MAC地址的过程如下:
(1) 如图1-1所示,当UserA需要与同处在VLAN1中的UserB通信时,需要将报文发送到交换机的Ethernet1/0/1端口,此时交换机将该报文的源MAC地址,即UserA的地址“MAC-A”记录到自身的MAC地址转发表中,形成如图1-2所示的表项。
图1-1 MAC地址学习过程图示一
图1-2 交换机中的MAC地址转发表项一
(2) 学习过程完成后,交换机将对该报文进行转发,由于现有的MAC地址转发表中没有关于UserB的MAC地址及端口的对应表项,因此,交换机会如所示将该报文向除Ethernet1/0/1之外的所有端口进行转发,以尽最大能力保证UserB能够收到该报文。
图1-3 MAC地址学习过程图示二
(3) 由于交换机采用广播方式发送报文,UserB和UserC都会收到,但UserC不是该报文的目的设备,因此不会进行处理。而正常情况下,UserB会向UserA发送报文进行响应,如图1-4所示。当该响应报文发送至Ethernet1/0/4端口时,交换机会采取同样的MAC地址学习方式将UserB的地址和端口对应关系保存到MAC地址转发表中。
图1-4 MAC地址学习过程图示三
(4) 此时交换机的转发表中应包含如图1-5所示的两条表项。在转发响应报文时,由于MAC地址转发表中已经包含目的为“MAC-A”的表项,因此交换机不会再次采取广播操作,而是直接将报文通过Ethernet1/0/1端口发送至UserA,完成此次报文交互过程。
图1-5 交换机中的MAC地址表项二
(5) 在此之后UserA和UserB的通信报文,交换机将按照表项信息直接进行单播发送。
l 在某些特殊情况下,例如UserB不可达或UserB虽然收到报文但没有回复,交换机将无法学习到UserB的MAC地址。因此,在下一次收到目的为UserB的报文时,交换机依然会以广播方式进行发送。
l 交换机通过MAC地址学习机制只能学习到单播地址;对于源MAC地址是广播地址的报文,交换机将直接丢弃。
以太网交换机的MAC地址转发表是有容量限制的,为了最大限度利用地址转发表资源,以太网交换机利用老化机制更新MAC地址转发表,即:系统在动态创建某条表项的同时,开启老化定时器,如果在老化时间内没有再次收到来自该表项中的MAC地址的报文,交换机就会把该MAC地址表项删除。
MAC地址的老化机制只对动态MAC地址表项生效。
根据自身特点和配置方式等的不同,MAC地址表项可以分为三类:
l 静态MAC地址表项:也称为“永久地址”,由用户手工添加和删除,不会随着时间老化。对于一个设备变动较小的网络,手工添加静态地址表项可以减少网络中的广播流量。
l 动态MAC地址表项:指可以按照用户配置的老化时间而老化掉的MAC地址表项,交换机可以通过MAC地址学习机制或通过用户手工建立的方式添加动态MAC地址表项。
l 黑洞MAC地址表项:由用户手工配置的一类特殊的MAC地址,当交换机接收到源MAC地址或目的MAC地址为黑洞MAC地址的报文时,会将该报文丢弃。
MAC地址表项的分类与特点如表1-1所示。
表1-1 MAC地址表项的分类与特点
MAC地址 |
配置方式 |
有无老化时间 |
设备重启后是否被保留(在保存配置的情况下) |
静态MAC地址表项 |
用户手工配置 |
无 |
是 |
动态MAC地址表项 |
由设备通过MAC地址学习机制生成或者由用户手工配置 |
有 |
否 |
黑洞MAC地址表项 |
用户手工配置 |
无 |
是 |
MAC地址表项映射功能是指将一个(或多个)VLAN的MAC地址表项复制到另一个VLAN的MAC地址表中。在使用traffic-remark-vlanid命令对报文的VLAN ID进行重标记的过程中,使用MAC地址表项映射功能可以有效减少网络中的广播,提高网络安全性。
缺省情况下,配置了重标记VLAN ID功能的端口将报文的源MAC地址学习到原始VLAN的MAC地址表中,而将报文在重标记后的VLAN中进行转发。因此,当返回的报文从重标记后的VLAN到达设备时,设备在该VLAN的MAC地址表中无法找到对应的表项,只能对报文以广播的形式进行发送。
图1-6 缺省情况下重标记VLAN ID功能对MAC地址的学习过程
如图1-6所示,在端口Port1上配置重标记VLAN ID功能,将报文的VLAN ID由VLAN3标记为VLAN4。在缺省情况下,该端口接收报文时,设备将源MAC地址MAC-A学习到原始VLAN(VLAN3)的MAC地址表中。
当返回的报文从VLAN4返回到设备时,设备将从VLAN4的MAC地址表中查找MAC-A的发送端口,但由于对应表项没有被学习到VLAN4的MAC地址表中,该报文会被认为是目的MAC地址未知的单播报文,系统将在VLAN4内的所有端口进行广播。这种处理方式不但浪费网络资源,而且造成一定的安全隐患。
通过配置MAC地址表项映射功能,可以将原始VLAN内的MAC地址表项复制到重标记后的VLAN的MAC地址表内。这样设备便可以从重标记后的VLAN的MAC地址表中找到相应的转发路径,并对报文进行单播转发,避免在网络中产生过多的广播报文,如图1-7所示。
图1-7 开启MAC地址表项映射功能后的MAC地址学习过程示意图
同样,在上行端口处也可以将重标记后的VLAN的MAC地址表项复制到原始VLAN的MAC地址表中,以便设备在下行端口接收报文时,能够从原始VLAN的MAC地址表中找到报文在重标记VLAN ID后的发送端口,实现单播转发。
表1-2 MAC地址转发表管理配置任务
配置任务 |
说明 |
详细配置 |
设置MAC地址表项 |
必选 |
|
设置系统的MAC地址老化时间 |
可选 |
|
设置以太网端口最多可以学习到的MAC地址数量 |
可选 |
|
禁用VLAN的MAC地址学习功能 |
可选 |
|
配置以太网端口的MAC地址 |
可选 |
|
配置MAC地址表项映射功能 |
可选 |
管理员根据实际情况可以人工添加、修改或删除MAC地址转发表中的表项。可以删除与某个端口相关的所有MAC地址表项,也可以选择删除某类MAC地址表项如动态表项、静态表项。
用户可以在系统视图或以太网端口视图下添加MAC地址表项。
表1-3 在系统视图下添加MAC地址表项
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
添加MAC地址表项 |
mac-address { static | dynamic | blackhole } mac-address interface interface-type interface-number vlan vlan-id |
必选 |
l 在添加MAC地址表项时,命令中interface参数指定的端口必须属于vlan参数指定的VLAN,否则将添加失败。
l 如果vlan参数指定的VLAN是动态VLAN,在添加静态MAC地址之后,会自动变为静态VLAN。
表1-4 在以太网端口视图下添加MAC地址表项
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
添加MAC地址表项 |
mac-address { static | dynamic | blackhole } mac-address vlan vlan-id |
必选 |
l 在添加MAC地址表项时,当前的端口必须属于命令中vlan参数指定的VLAN,否则将添加失败。
l 如果vlan参数指定的VLAN是动态VLAN,在添加静态MAC地址之后,会自动变为静态VLAN。
设置合适的老化时间可以有效利用MAC地址的老化功能。用户设置的老化时间过长或者过短,都可能影响交换机的运行性能。
l 如果用户设置的老化时间太长,以太网交换机可能会保存许多过时的MAC地址表项,从而耗尽MAC地址转发表资源,导致交换机无法根据网络的变化更新MAC地址转发表。
l 如果用户设置的老化时间太短,以太网交换机可能会删除有效的MAC地址表项,降低转发效率。
表1-5 设置系统MAC地址老化时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置MAC地址表项的老化时间 |
mac-address timer { aging age | no-aging } |
必选 缺省情况下,MAC地址表项的老化时间为300秒 |
一般情况下,推荐缺省的老化时间300秒。使用参数no-aging时表示不对MAC地址表项进行老化。
MAC地址老化时间的配置对所有端口都生效,但地址老化功能只对动态的(学习到的或者用户配置可老化的)MAC地址表项起作用。
以太网交换机可以利用MAC地址学习功能获取与某端口相连的网段上各网络设备的MAC地址。对于发往这些MAC地址的报文,以太网交换机直接通过查找MAC地址转发表使用硬件转发,提高转发效率。如果MAC地址转发表过于庞大,可能延长查找相应转发表项的时间,导致以太网交换机的转发性能下降。
管理员可以通过设置以太网端口最多学习到的MAC地址数,控制以太网交换机维护的MAC地址转发表的表项数量。当端口学习到的MAC地址条数达到用户设定的最大值时,该端口将不再对MAC地址进行学习。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
设置端口最多可以学习到的MAC地址数量 |
mac-address max-mac-count count |
必选 缺省情况下,没有配置对端口学习MAC地址数量的限制 |
如果端口配置了最大MAC地址学习个数,则禁止在该端口上启动MAC地址认证和端口安全功能。反之,如果端口启动了MAC地址认证和端口安全功能,则不能配置该端口的最大MAC地址学习个数。
用户可以通过禁用指定VLAN的MAC地址学习功能,保证此VLAN中网络用户的稳定性和安全性,防止非法用户接入网络。
表1-7 禁止在指定VLAN中学习MAC地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入指定的VLAN视图 |
vlan vlan-id |
- |
禁用当前VLAN的MAC地址学习功能 |
mac-address max-mac-count 0 |
必选 缺省情况下,允许交换机在所有VLAN中学习MAC地址 |
l 当指定VLAN已经作为远程端口镜像使用的探测VLAN时,将不能禁用该VLAN的MAC地址学习功能。
l 禁用MAC地址学习功能的VLAN不能作为远程端口镜像使用的探测VLAN。
l 禁用VLAN的MAC地址学习功能对启动该VLAN内端口的MAC地址认证没有影响。
在缺省情况下,S2000-EA系列交换机的以太网端口是没有配置MAC地址的,因此当交换机在发送二层协议报文(例如STP)时,由于无法取用发送端口的MAC地址,将使用该协议预置的MAC地址作为源地址填充到报文中进行发送。在实际组网中,由于多台设备都使用相同的源MAC地址发送二层协议报文,会造成在某台设备的不同端口学习到相同MAC地址的情况,可能会对MAC地址表的维护产生影响。
为避免上述情况的发生,S2000-EA系列交换机提供了端口MAC地址配置功能,用户可以指定本设备端口MAC地址的起始值,即Ethernet1/0/1端口的MAC地址,其他端口将根据自身端口编号以每端口加1的顺序确定自己的MAC地址。
例如:用户配置Ethernet1/0/1端口的MAC地址为000f-e200-0001,则Ethernet1/0/2端口将自动确定自身的MAC地址为000f-e200-0002,依次类推。
表1-8 配置以太网端口的MAC地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置以太网端口MAC地址的起始值 |
port-mac start-mac-address |
必选 缺省情况下,没有配置以太网端口MAC地址的起始值 |
用户设置的起始MAC地址必须为合法的单播地址,不能是广播、组播、全0或全f的地址。
在配置了端口的MAC地址后,交换机在发送以下二层协议报文时,将使用发送端口的MAC地址作为源地址,包括:
l LACP
l STP
l NDP/NTDP
l GVRP
l DLDP
用户配置的端口MAC地址对正常业务报文的转发不会产生影响。
表1-9 配置MAC地址映射功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
配置MAC地址表项映射功能 |
mac-address-mapping index source-vlan source-vlan-list destination-vlan dest-vlan-id |
必选 缺省情况下,没有配置MAC地址表项映射功能 |
l MAC地址表项映射功能在一个端口下对某个目的VLAN只能配置一次。如果需要修改,必须先删除之前的配置,然后再重新进行配置。
l 关闭MAC地址表项映射功能后,系统将删除目的VLAN中通过该功能学到的其他VLAN的所有MAC地址表项。
l 用户不能手工删除通过MAC地址表项映射功能获得的MAC地址表项,如果确实需要删除该表项,可以通过关闭MAC地址表项映射功能实现。
完成上述配置后,在任意视图下执行display命令,可以显示配置MAC地址转发表后的运行情况。通过查看显示信息,用户可以验证配置的效果。
表1-10 MAC地址转发表管理配置显示
操作 |
命令 |
说明 |
显示地址表信息 |
display mac-address [ display-option ] |
display命令可以在任意视图下执行 |
显示地址表动态表项的老化时间 |
display mac-address aging-time |
|
显示用户配置的以太网端口MAC地址的起始值 |
display port-mac |
服务器通过Ethernet1/0/2端口连接到交换机。为避免交换机在转发目的为服务器的报文时进行广播,要求在交换机上设置静态的服务器MAC地址表项,使交换机始终通过Ethernet1/0/2端口单播发送去往服务器的报文。
l 服务器的MAC地址为000f-e20f-dc71
l 端口Ethernet1/0/2属于VLAN1
# 增加MAC地址(指出所属VLAN、端口、状态)。
<Sysname> system-view
[Sysname] mac-address static 000f-e20f-dc71 interface Ethernet 1/0/2 vlan 1
# 查看当前MAC地址转发表的信息。
[Sysname] display mac-address interface Ethernet 1/0/2
MAC ADDR VLAN ID STATE PORT INDEX AGING TIME(s)
000f-e20f-dc71 1 Config static Ethernet1/0/2 NOAGED
000f-e20f-a7d6 1 Learned Ethernet1/0/2 AGING
000f-e20f-b1fb 1 Learned Ethernet1/0/2 AGING
000f-e20f-f116 1 Learned Ethernet1/0/2 AGING
--- 4 mac address(es) found on port Ethernet1/0/2 ---
l 在SwitchA的Ethernet1/0/1端口配置重标记VLAN ID功能,对源IP地址为192.168.1.0/24网段的报文(原始VLAN ID为3),将其VLAN ID重标记为VLAN4。
l 为使设备能够正确处理返回的报文,在Ethernet1/0/2端口同样配置重标记VLAN ID功能,对目的地址为192.168.1.0/24网段的报文(原始VLAN ID为4),将其VLAN ID重标记为VLAN3。
l 为避免在数据转发过程中产生大量的广播报文,配置MAC地址表项映射功能。
图1-8 重标记VLAN ID组网示意图
# 在SwitchA上创建VLAN3和VLAN4。
<SwitchA> system-view
[SwitchA] vlan 3 to 4
Please wait.... Done.
# 配置端口Ethernet1/0/1为Trunk端口,并加入VLAN3和VLAN4。
[SwitchA] interface Ethernet 1/0/1
[SwitchA-Ethernet1/0/1] port link-type trunk
[SwitchA-Ethernet1/0/1] port trunk permit vlan 3 4
Please wait... Done.
[SwitchA-Ethernet1/0/1] quit
# 配置端口Ethernet1/0/2为Trunk端口,并加入VLAN3和VLAN4。
[SwitchA] interface Ethernet 1/0/2
[SwitchA-Ethernet1/0/2] port link-type trunk
[SwitchA-Ethernet1/0/2] port trunk permit vlan 3 4
Please wait... Done.
[SwitchA-Ethernet1/0/2] quit
# 创建高级ACL3000,匹配源地址为192.168.1.0/24网段的报文。
[SwitchA] acl number 3000
[SwitchA-acl-adv-3000] rule permit ip source 192.168.1.0 0.0.0.255
[SwitchA-acl-adv-3000] quit
# 创建高级ACL3001,匹配目的地址为192.168.1.0/24网段的报文。
[SwitchA] acl number 3001
[SwitchA-acl-adv-3001] rule permit ip destination 192.168.1.0 0.0.0.255
[SwitchA-acl-adv-3001] quit
# 在端口Ethernet1/0/1上配置重标记VLAN ID功能,将匹配ACL3000的报文将其VLAN ID重标记为VLAN4。
[SwitchA] interface Ethernet 1/0/1
[SwitchA-Ethernet1/0/1] traffic-remark-vlanid inbound 3000 remark-vlan 4
# 在端口Ethernet1/0/1上配置MAC地址表项映射功能,将VLAN3的地址表项复制到VLAN4的MAC地址表中。
[SwitchA-Ethernet1/0/1] mac-address-mapping 0 source-vlan 3 destination-vlan 4
[SwitchA-Ethernet1/0/1] quit
# 在端口Ethernet1/0/2上配置重标记VLAN ID功能,将匹配ACL3001的报文将其VLAN ID重标记为VLAN3。
[SwitchA] interface Ethernet 1/0/2
[SwitchA-Ethernet1/0/2] traffic-remark-vlanid inbound 3001 remark-vlan 3
# 在端口Ethernet1/0/2上配置MAC地址表项映射功能,将VLAN4的MAC地址表项复制到VLAN3的MAC地址表中。
[SwitchA-Ethernet1/0/1] mac-address-mapping 0 source-vlan 4 destination-vlan 3
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!