04-MAC地址表配置
本章节下载: 04-MAC地址表配置 (206.47 KB)
目 录
l 本文中涉及接口的相关配置目前只能在二层以太网接口和二层聚合接口上进行。
l 本章节内容只涉及单播的静态、动态、黑洞MAC地址表项和多端口单播MAC地址表项的配置。有关静态组播MAC地址表项的相关介绍和配置内容,请参见“IP组播配置指导”中的“组播路由与转发”和“IPv6组播路由与转发”。有关VPLS中MAC地址表的相关介绍和配置内容,请参见“MPLS配置指导”中的“VPLS”。
MAC地址表记录了MAC地址与接口的对应关系,以及接口所属的VLAN等信息。设备根据MAC地址表查找报文出接口,并转发报文。
MAC地址表项的生成方式有两种:自动生成、手工配置。
一般情况下,MAC地址表是设备通过源MAC地址学习过程而自动建立的。设备学习MAC地址的方法如下:如果从某接口(假设为接口A)收到一个数据帧,设备分析该数据帧的源MAC地址(假设为MAC-SOURCE),并认为目的MAC地址为MAC-SOURCE的报文可以由接口A转发。如果MAC地址表中已经包含MAC-SOURCE,设备将对该表项进行更新;如果MAC地址表中尚未包含MAC-SOURCE,设备则将这个新MAC地址以及该MAC地址对应的接口A作为一个新的表项加入到MAC地址表中。
为适应网络的变化,MAC地址表需要不断更新。MAC地址表中自动生成的表项并非永远有效,每一条表项都有一个生存周期,到达生存周期仍得不到刷新的表项将被删除,这个生存周期被称作老化时间。如果在到达生存周期前记录被刷新,则重新计算该表项的老化时间。
设备通过源MAC地址学习自动建立MAC地址表时,无法区分合法用户和非法用户的报文,带来了安全隐患。如果非法用户将攻击报文的源MAC地址伪装成合法用户的MAC地址,并从设备的其他接口进入,设备就会学习到错误的MAC地址表项,于是将本应转发给合法用户的报文转发给非法用户。
为了提高安全性,网络管理员可手工在MAC地址表中加入特定MAC地址表项,将用户设备与接口绑定,从而防止非法用户骗取数据。
MAC地址表项分为以下几种:
l 静态MAC地址表项:由用户手工配置,用于目的是某个MAC地址的报文从对应接口转发出去,表项不老化。
l 动态MAC地址表项:包括用户配置的以及设备通过源MAC地址学习得来的,用于目的是某个MAC地址的报文从对应接口转发出去,表项有老化时间。
l 黑洞MAC地址表项:由用户手工配置,用于丢弃源MAC地址或目的MAC地址为指定值的报文(例如,出于安全考虑,可以禁止某个用户发送和接收报文),表项不老化。
l 多端口单播MAC地址表项:由用户手工配置,用于目的是某个MAC地址的报文从多个接口复制转发出去,表项不老化。
静态MAC地址表项、黑洞MAC地址表项和多端口单播MAC地址表项不会被动态MAC地址表项覆盖,而动态MAC地址表项可以被静态MAC地址表项、黑洞MAC地址表项和多端口单播MAC地址表项覆盖。
设备在转发报文时,根据MAC地址表项信息,会采取以下两种转发方式中的一种:
l 单播方式:当MAC地址表中包含与报文目的MAC地址对应的表项时,设备直接通过该表项中的出接口转发该报文。
l 广播方式:当设备收到目的地址为全1的报文,或MAC地址表中没有包含报文目的MAC地址对应的表项时,设备将采取广播方式通过对应VLAN内除接收接口外的所有接口转发该报文。
以下配置均为可选配置,且配置过程无先后顺序,用户可以根据实际情况选择配置。
配置MAC地址表项时,需要注意:
l 手工配置的静态MAC地址表项优先级高于自动生成的表项,报文源MAC地址与手工配置表项中的MAC地址相同时,如果该报文入接口与该表项中的接口不同,则该报文会被丢弃。
l 手工配置的多端口单播MAC地址表项优先级高于自动生成的表项,报文源MAC地址与手工配置表项中的MAC地址相同时,该报文会被丢弃。
l 手工配置的动态MAC地址表项优先级等于自动生成的表项,报文源MAC地址与手工配置表项中MAC地址相同时,如果该报文入接口与该表项中的接口不同,则会进行MAC地址学习,并覆盖手工配置的动态MAC地址表项。
l 在手工配置动态MAC地址表项时,如果MAC地址表中已经存在MAC地址相匹配的自动生成表项,但该表项的接口与配置不符,那么该手工配置的动态MAC地址表项覆盖自动生成表项。
l 如果不保存配置,设备重启后所有手工配置的MAC地址表项都会丢失;如果保存配置,设备重启后手工配置的静态MAC地址表项、黑洞MAC地址表项和多端口单播MAC地址表项不会丢失,手工配置的动态MAC地址表项会丢失。
(1) 全局配置静态/动态MAC地址表项
表1-1 全局配置静态/动态MAC地址表项
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
添加或者修改MAC地址表项 |
mac-address { dynamic | static } mac-address interface interface-type interface-number vlan vlan-id |
缺省情况下,系统没有配置任何MAC地址表项 interface参数指定的接口必须属于vlan参数指定的VLAN,而且该VLAN必须事先创建,否则将配置失败 |
(2) 接口配置静态/动态MAC地址表项
表1-2 接口配置静态/动态MAC地址表项
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
二层以太网接口视图 |
interface interface-type interface-number |
- |
二层聚合接口视图 |
interface bridge-aggregation interface-number |
||
S通道接口视图 |
interface s-channel interface-number.channel-id |
||
在当前接口下添加或者修改MAC地址表项 |
mac-address { dynamic | static } mac-address vlan vlan-id |
缺省情况下,接口下没有配置任何MAC地址表项 当前接口必须属于vlan参数指定的VLAN,而且该VLAN必须事先创建,否则将配置失败 |
表1-3 配置黑洞MAC地址表项
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
添加或者修改MAC地址表项 |
mac-address blackhole mac-address vlan vlan-id |
缺省情况下,系统没有配置任何MAC地址表项 vlan参数指定的VLAN必须事先创建,否则将配置失败 |
网络管理员可手工配置多端口单播MAC地址表项,将多个端口和单播MAC地址绑定,以实现目的地址匹配该MAC地址的报文通过多个端口转发出去。比如当有一组服务器同时处理客户端请求时,客户端不用了解服务器的细节,会认为只有一台服务器在响应请求,这时可以在连接服务器组的设备上配置多端口单播MAC地址表项,把客户端发往服务器组(即客户端认为的服务器)的报文转发至每一台服务器。
(1) 全局配置多端口单播MAC地址表项
表1-4 全局配置多端口单播MAC地址表项
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置接口加入多端口单播MAC地址表项 |
mac-address multiport mac-address interface interface-list vlan vlan-id |
缺省情况下,系统没有配置任何多端口单播MAC地址表项 interface参数指定的接口必须属于vlan参数指定的VLAN,而且该VLAN必须事先创建,否则将配置失败 |
(2) 接口配置多端口单播MAC地址表项
表1-5 接口配置多端口单播MAC地址表项
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
二层以太网接口视图 |
interface interface-type interface-number |
- |
二层聚合接口视图 |
interface bridge-aggregation interface-number |
||
配置当前接口加入多端口单播MAC地址表项 |
mac-address multiport mac-address vlan vlan-id |
缺省情况下,接口下没有配置任何多端口单播MAC地址表项 当前接口必须属于vlan参数指定的VLAN,而且该VLAN必须事先创建,否则将配置失败 |
缺省情况下,MAC地址学习功能处于开启状态。有时为了保证设备的安全,需要关闭MAC地址学习功能。常见的危及设备安全的情况是:非法用户使用大量源MAC地址不同的报文攻击设备,导致设备MAC地址表资源耗尽,造成设备无法根据网络的变化更新MAC地址表。关闭MAC地址学习功能可以有效防止这种攻击。
关闭MAC地址学习功能后,已经学习到的MAC地址表项将继续有效直至老化。
关闭全局的MAC地址学习功能的同时也就关闭了全部接口的MAC地址学习功能。
全局MAC地址学习功能不能控制TRILL网络、EVB的S通道以及VPLS的VSI中MAC地址的学习。有关TRILL网络的介绍,请参见“TRILL配置指导”中的“TRILL”。有关EVB和S通道的介绍,请参见“EVB配置指导”中的“EVB”。有关VPLS和VSI的介绍,请参见“MPLS配置指导”中的“VPLS”。
表1-6 关闭全局MAC地址学习功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
关闭全局的MAC地址学习功能 |
undo mac-address mac-learning enable |
缺省情况下,全局的MAC地址学习功能处于开启状态 |
在开启全局的MAC地址学习功能的前提下,用户可以关闭设备上单个接口的MAC地址学习功能。
表1-7 关闭接口的MAC地址学习功能
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
二层以太网接口视图 |
interface interface-type interface-number |
- |
二层聚合接口视图 |
interface bridge-aggregation interface-number |
||
S通道接口视图 |
interface s-channel interface-number.channel-id |
||
关闭接口的MAC地址学习功能 |
undo mac-address mac-learning enable |
缺省情况下,接口的MAC地址学习功能处于开启状态 |
在开启全局的MAC地址学习功能的前提下,用户可以关闭设备上指定VLAN的MAC地址学习功能。
表1-8 关闭VLAN的MAC地址学习功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
关闭VLAN的MAC地址学习功能 |
undo mac-address mac-learning enable |
缺省情况下,VLAN的MAC地址学习功能处于开启状态 |
当网络拓扑改变后,动态MAC地址表项不会及时自动更新。这样,由于设备学习不到新的MAC地址,会导致用户流量不能正常转发。因此,需要配置动态MAC地址表项老化时间。超出设定的老化时间,动态MAC地址表项被自动删除,设备重新进行MAC地址学习,构建新的动态MAC地址表项。
用户配置的老化时间过长或者过短,都可能影响设备的运行性能:
l 如果用户配置的老化时间过长,设备可能会保存许多过时的MAC地址表项,从而耗尽MAC地址表资源,导致设备无法根据网络的变化更新MAC地址表。
l 如果用户配置的老化时间太短,设备可能会删除有效的MAC地址表项,导致设备广播大量的数据报文,增加网络的负担。
所以用户需要根据实际情况,配置合适的老化时间来有效地实现MAC地址老化功能。如果网络比较稳定,可以将老化时间配置得长一些或者配置为不老化;否则,可以将老化时间配置得短一些。比如在一个比较稳定的网络,如果长时间没有流量,动态MAC地址表项会被全部删除,可能导致设备突然广播大量的数据报文,被他人侦听,造成安全隐患,此时可将动态MAC地址表项的老化时间设成不老化,以减少广播,增加网络稳定性和安全性。
动态MAC地址表项的老化时间作用于全部接口上,地址老化只对动态的(设备学习到的或者用户配置的)MAC地址表项起作用。
表1-9 配置动态MAC地址表项的老化时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置动态MAC地址表项的老化时间 |
mac-address timer { aging seconds | no-aging } |
缺省情况下,动态MAC地址表项的老化时间为300秒。 |
通过配置接口最多可以学习到的MAC地址数,用户可以控制设备维护的MAC地址表的表项数量。当接口学习到的MAC地址数达到配置的最大值时,该接口将不再对MAC地址进行学习。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网接口视图 |
interface interface-type interface-number |
- |
配置接口最多可以学习到的MAC地址数,以及当接口学习到的MAC地址数达到配置的最大值时,继续转发源MAC地址不在MAC地址表里的数据帧 |
mac-address max-mac-count { count | enable-forwarding } |
缺省情况下,没有配置接口最多可以学习到的MAC地址数,并且当接口学习的MAC地址数达到配置的最大MAC地址数后,允许转发源MAC地址不在MAC地址表里的数据帧 |
基于MAC地址转发报文的网络必然面临MAC地址欺骗攻击,对于分层网络,有时也会因为下行接口的攻击行为或者环路,将网关等上层设备的MAC地址学习到下行接口。为了避免这种情况,将接口的MAC地址学习功能分为两个优先级:高优先级和低优先级。对于高优先级的接口,可以学习任何MAC地址;对于低优先级的接口,在学习MAC地址时需要查看高优先级接口是否已经学到该MAC地址,如果已经学到,则不允许学习该MAC地址。
为了预防攻击,可以将上行接口的MAC地址学习优先级配置为高优先级,下行接口的MAC地址学习优先级配置为低优先级,那么,下行接口就不会学到网关等上层设备的MAC地址,避免了攻击。
表1-11 配置接口的MAC地址学习优先级
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
二层以太网接口视图 |
interface interface-type interface-number |
- |
二层聚合接口视图 |
interface bridge-aggregation interface-number |
||
S通道接口视图 |
interface s-channel interface-number.channel-id |
||
配置接口的MAC地址学习优先级 |
mac-address mac-learning priority { high | low } |
缺省情况下,MAC地址学习优先级为低优先级 |
分布式设备通常有多块单板,为了避免不必要的广播报文,以及提高报文转发的速度,需要所有单板拥有同样的MAC地址表。开启全局的MAC地址同步功能后,设备会将每块单板的MAC地址表同步到其他单板上。当多个分布式设备组成IRF设备时,开启全局的MAC地址同步功能后,设备会在所有成员设备的所有单板间进行MAC地址表的同步。
表1-12 开启全局的MAC地址同步功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启全局的MAC地址同步功能 |
mac-address mac-roaming enable |
缺省情况下,全局的MAC地址同步功能处于关闭状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后MAC地址表的运行情况,通过查看显示信息验证配置的效果。
表1-13 MAC地址表显示和维护
操作 |
命令 |
显示MAC地址表信息 |
display mac-address [ mac-address [ vlan vlan-id ] | [ [ dynamic | static ] [ interface interface-type interface-number ] | blackhole | multiport ] [ vlan vlan-id ] [ count ] ] |
显示MAC地址表动态表项的老化时间 |
display mac-address aging-time |
显示MAC地址学习功能的使能状态 |
display mac-address mac-learning [ interface interface-type interface-number ] |
显示MAC地址表的统计信息 |
display mac-address statistics |
l 现有一台用户主机,它的MAC地址为000f-e235-dc71,属于VLAN 1,连接Device的Ten-GigabitEthernet1/0/1端口。为防止假冒身份的非法用户骗取数据,在设备的MAC地址表中为该用户主机添加一条静态表项。
l 另有一台用户主机,它的MAC地址为000f-e235-abcd,所属VLAN为VLAN 1。由于该用户主机曾经接入网络进行非法操作,为了避免此种情况再次发生,在设备上添加一条黑洞MAC地址表项,使该用户主机接收不到报文。
l 配置设备的动态MAC地址表项老化时间为500秒。
# 增加一个静态MAC地址表项。
<Device> system-view
[Device] mac-address static 000f-e235-dc71 interface ten-gigabitethernet 1/0/1 vlan 1
# 增加一个黑洞MAC地址表项。
[Device] mac-address blackhole 000f-e235-abcd vlan 1
# 配置动态MAC地址表项的老化时间为500秒。
[Device] mac-address timer aging 500
# 查看端口Ten-GigabitEthernet1/0/1上的MAC地址表信息。
[Device] display mac-address interface ten-gigabitethernet 1/0/1
MAC Address VLAN ID State Port/NickName Aging
000f-e235-dc71 1 Static XGE1/0/1 N
# 查看黑洞MAC地址表信息。
[Device] display mac-address blackhole
MAC Address VLAN ID State Port/NickName Aging
000f-e235-abcd 1 Blackhole N/A N
# 查看动态MAC地址表项的老化时间。
[Device] display mac-address aging-time
MAC address aging time: 500s.
由于MAC地址能唯一标识一个网络用户,所以可以通过监控加入和离开网络的MAC地址对用户进行跟踪。MAC Information功能可以用来对接口学习和删除MAC地址进行监控,在接口学习到或删除MAC地址时,设备将发送MAC变化通知(即MAC地址变化的通知信息)。具体机制为:当接口学习到一条新的MAC地址或删除一条已有MAC地址时,设备会将该MAC地址变化信息写入专门用于记录用户信息的缓冲区。当用户设定的发送MAC变化通知的时间间隔到期,设备立即发送记录了MAC地址变化信息的日志或SNMP告警信息。信息接收端通过对日志或SNMP告警信息的分析,可以实现对网络中的用户进行监控,同时为分析网络的使用情况提供依据。
必须同时使能全局和接口的MAC Information功能,MAC Information功能才会生效。
当EA、EB业务板工作在MAC扩展模式(bridging)或混合扩展模式(mix-bridging-routing)时,不支持MAC Information功能。关于业务板工作模式的详细介绍,请参见“基础配置指导”中的“设备管理”。
表2-1 使能全局MAC Information功能
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能全局MAC Information功能 |
mac-address information enable |
缺省情况下,全局MAC Information功能处于关闭状态 |
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
二层以太网接口视图 |
interface interface-type interface-number |
- |
S通道接口视图 |
interface s-channel interface-number.channel-id |
||
使能当前接口的MAC Information功能 |
mac-address information enable { added | deleted } |
缺省情况下,接口的MAC Information功能处于关闭状态 |
发送MAC变化通知的方式有两种:
l Syslog方式:通过发送日志信息通知MAC的变化信息。采用该方式时,日志信息会被发送到设备的信息中心,由信息中心发送到监控终端。有关信息中心的详细介绍及相关配置,请参见“网络管理和监控配置指导”中的“信息中心”。
l Trap方式:通过发送SNMP告警信息通知MAC的变化信息。采用该方式时,需要通过SNMP将SNMP告警信息发送到NMS。有关SNMP和NMS的详细介绍及相关配置,请参见“网络管理和监控配置指导”中的“SNMP”。
表2-3 配置发送MAC变化通知的方式
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置发送MAC变化通知的方式 |
mac-address information mode { syslog | trap } |
缺省情况下,采用Trap方式发送MAC变化通知 |
为了防止过于频繁发送的MAC变化通知干扰用户,用户可以配置发送MAC变化通知的时间间隔,以此间隔发送MAC变化通知。
表2-4 配置发送MAC变化通知的时间间隔
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置发送MAC变化通知的时间间隔 |
mac-address information interval interval-time |
缺省情况下,发送MAC变化通知的时间间隔为1秒 |
MAC Information缓存队列长度是否为0对应着不同的处理方式:
l 如果MAC Information缓存队列长度为0,则当接口学习到或删除一条MAC地址时会立即发送日志或SNMP告警信息。
l 如果MAC Information缓存队列长度不为0,则将MAC地址变化信息存放在缓存队列中。当未达到发送MAC变化通知的时间间隔,此时若缓存队列被写满,新的MAC地址变化信息将覆盖缓存队列中最后一条写入的信息;当达到发送MAC变化通知的时间间隔时,不论此时缓存队列是否已被写满,都发送日志或SNMP告警信息。
表2-5 配置MAC Information缓存队列长度
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置MAC Information缓存队列长度 |
mac-address information queue-length value |
缺省情况下,MAC Information缓存队列长度为50 |
l Host A与远端服务器Server通过Device相连。
l 在Device的Ten-GigabitEthernet1/0/1上使能MAC Information功能,Device将MAC变化信息(即Ten-GigabitEthernet1/0/1学习到或删除MAC地址)利用Syslog方式通过Ten-GigabitEthernet1/0/3发送给Host B,Host B可以对接收到的日志信息进行分析。
图2-1 MAC Information典型配置组网图
(1) 配置Device可以将日志信息发送到Host B
详细配置请参见“网络管理和监控配置指导”中的“信息中心”。
(2) 配置MAC Information功能
# 使能全局MAC Information功能。
<Device> system-view
[Device] mac-address information enable
# 配置采用Syslog方式发送MAC变化通知。
[Device] mac-address information mode syslog
# 使能端口Ten-GigabitEthernet1/0/1的MAC Information功能,使该接口在学习到或删除MAC地址时记录MAC变化信息。
[Device] interface ten-gigabitethernet 1/0/1
[Device-Ten-GigabitEthernet1/0/1] mac-address information enable added
[Device-Ten-GigabitEthernet1/0/1] mac-address information enable deleted
[Device-Ten-GigabitEthernet1/0/1] quit
# 配置MAC Information缓存队列长度为100。
[Device] mac-address information queue-length 100
# 配置发送MAC变化通知的时间间隔为20秒。
[Device] mac-address information interval 20
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!