13-MAC地址转发表管理操作
本章节下载: 13-MAC地址转发表管理操作 (233.62 KB)
目 录
l 本章节内容只涉及静态、动态和黑洞MAC地址表项的管理,有关组播MAC地址和安全MAC地址表项管理的内容,请分别参见“组播协议”和“端口安全”部分。
l 新增“目的MAC地址更新”功能,详情请参见1.2.5 配置目的MAC地址更新功能。
l 新增“配置以太网端口的MAC地址”功能,详情请参见1.2.6 配置以太网端口的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地址表项删除。
l 当开启了“目的MAC地址更新”功能后,如果交换机在老化时间内对目的为某个MAC地址的报文进行了转发,则该MAC的表项也将被触发更新,重新开始老化。
l 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地址表项 |
用户手工配置 |
无 |
是 |
表1-2 MAC地址转发表管理配置任务
配置任务 |
说明 |
详细配置 |
设置MAC地址表项 |
必选 |
|
设置系统的MAC地址老化时间 |
可选 |
|
设置以太网端口最多可以学习到的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地址学习个数。
在缺省情况下,交换机仅根据报文的源MAC地址对自身的MAC地址表项进行更新。但在某些特殊的应用中(例如在IRF Fabric中使用端口聚合组进行通信时),仅依靠源MAC地址更新机制可能会造成聚合组中某些端口的MAC地址表项没有同步更新而老化,引发交换机对报文进行广播操作。通过配置目的MAC地址更新功能,可以使交换机在转发报文时对目的MAC地址的对应表项也进行更新,增加MAC表项的更新频率,提高MAC地址表的可用性。
表1-7 配置目的MAC地址更新功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启目的MAC地址更新功能 |
mac-address aging destination-hit enable |
必选 缺省情况下,没有开启目的MAC地址更新功能 |
在缺省情况下,S3600系列交换机的以太网端口是没有配置MAC地址的,因此当交换机在发送二层协议报文(例如STP)时,由于无法取用发送端口的MAC地址,将使用该协议预置的MAC地址作为源地址填充到报文中进行发送。在实际组网中,由于多台设备都使用相同的源MAC地址发送二层协议报文,会造成在某台设备的不同端口学习到相同MAC地址的情况,可能会对MAC地址表的维护产生影响。
为避免上述情况的发生,S3600系列交换机提供了端口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地址对正常业务报文的转发不会产生影响。
完成上述配置后,在任意视图下执行display命令,可以显示配置MAC地址转发表后的运行情况。通过查看显示信息,用户可以验证配置的效果。
表1-9 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 ---
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!