04-MAC地址表配置
本章节下载: 04-MAC地址表配置 (336.40 KB)
本章节内容只涉及单播的静态、动态、黑洞MAC地址表项的配置。有关静态组播MAC地址表项的相关介绍和配置内容,请参见“IP组播配置指导”中的“IGMP Snooping”和“MLD Snooping”。
MAC地址表记录了目的MAC地址、MAC地址对应的出接口以及所属的VLAN ID。在转发数据时,设备根据报文中的目的MAC地址查询MAC地址表,快速定位出接口,从而减少广播。
通过display mac-address命令可以查看MAC地址表信息,例如:
<Sysname> display mac-address
MAC ADDR VLAN ID STATE PORT INDEX AGING TIME(s)
000f-e201-0101 1 Learned GigabitEthernet1/0/1 AGING
--- 1 mac address(es) found ---
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地址表项分为:静态MAC地址表项、动态MAC地址表项和黑洞MAC地址表项。
· 静态MAC地址表项由用户手工配置,用于目的是某个MAC地址的报文从对应端口转发出去,表项不老化。
· 动态MAC地址表项包括用户配置的以及设备通过源MAC地址学习得来的,用于目的是某个MAC地址的报文从对应端口转发出去,表项有老化时间。
· 黑洞MAC地址表项用于丢弃源MAC地址或目的MAC地址为指定值的报文(例如,出于安全考虑,可以屏蔽某个用户接收报文),由用户手工配置,表项不老化。
用户手工配置的静态MAC地址表项、黑洞MAC地址表项不会被动态MAC地址表项覆盖,而动态MAC地址表项可以被静态MAC地址表项、黑洞MAC地址表项覆盖。
设备在转发报文时,根据MAC地址表项信息,会采取以下两种转发方式:
· 单播方式:当MAC地址表中包含与报文目的MAC地址对应的表项时,设备直接将报文从该表项中的转发出接口发送。
· 广播方式:当设备收到目的地址为全1的报文,或MAC地址表中没有包含对应报文目的MAC地址的表项时,设备将采取广播方式将报文向除接收接口外的所有接口进行转发。
以下配置均为可选配置,且配置过程无先后顺序,用户可以根据实际情况选择配置。
一般情况下,设备通过源MAC地址学习过程自动建立MAC地址表。
为了提高接口安全性,网络管理员可手工在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地址表项 |
在配置MAC地址表项时,命令中interface参数指定的接口必须属于vlan参数指定的VLAN,而且该VLAN必须事先创建,否则将添加失败。
(2) 接口配置静态/动态MAC地址表项
表1-2 接口配置静态/动态MAC地址表项
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网端口、二层聚合接口视图 |
interface interface-type interface-number |
- |
在当前接口下添加或者修改静态/动态MAC地址表项 |
mac-address { dynamic | static } mac-address vlan vlan-id |
必选 缺省情况下,接口下没有配置任何MAC地址表项 |
在配置MAC地址表项时,当前的接口必须属于命令中vlan参数指定的VLAN,而且该VLAN必须事先创建,否则将添加失败。
表1-3 配置黑洞MAC地址表项
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
添加或者修改黑洞MAC地址表项 |
mac-address blackhole mac-address vlan vlan-id |
必选 缺省情况下,系统没有配置任何MAC地址表项 |
在配置黑洞MAC地址表项时,指定的VLAN必须事先创建,否则将添加失败。
有时为了保证设备的安全,需要关闭MAC地址学习功能。常见的危及设备安全的情况是:黑客使用大量源MAC地址不同的报文攻击设备,导致设备MAC地址表资源耗尽,造成设备无法根据网络的变化更新MAC地址表。关闭MAC地址学习功能可以有效防止这种攻击。
关闭全局的MAC地址学习功能的同时也就关闭了全部接口的MAC地址学习功能。
表1-4 关闭全局MAC地址学习功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
关闭全局的MAC地址学习功能 |
mac-address mac-learning disable |
必选 缺省情况下,全局的MAC地址学习功能处于开启状态 |
关闭MAC地址学习功能后,已经学习到的MAC地址表项将继续有效直至老化。
在开启全局的MAC地址学习功能的前提下,用户可以关闭设备上的单个接口或者端口组的MAC地址学习功能。
表1-5 关闭接口的MAC地址学习功能
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
开启全局的MAC地址学习功能 |
undo mac-address mac-learning disable |
可选 缺省情况下,全局的MAC地址学习功能处于开启状态 |
|
进入二层以太网端口、二层聚合接口或者端口组视图 |
进入二层以太网端口、或者二层聚合接口视图 |
interface interface-type interface-number |
二者必选其一 进入二层以太网端口、或者二层聚合接口视图后,下面进行的配置只在当前接口生效;进入端口组视图后,下面进行的配置将在端口组的所有接口生效 |
进入端口组视图 |
port-group manual port-group-name |
||
关闭接口的MAC地址学习功能 |
mac-address mac-learning disable |
必选 缺省情况下,接口的MAC地址学习功能处于开启状态 |
· 关闭MAC地址学习功能后,已经学习到的MAC地址表项将继续有效直至老化。
· 端口组相关的配置请参见“二层技术-以太网交换配置指导”中的“以太网端口”。
仅S5500-EI系列交换机支持关闭指定VLAN的MAC地址学习功能。
用户可以关闭设备上的指定VLAN的MAC地址学习功能。
表1-6 关闭VLAN的MAC地址学习功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启全局的MAC地址学习功能 |
undo mac-address mac-learning disable |
可选 缺省情况下,全局的MAC地址学习功能处于开启状态 |
进入VLAN视图 |
vlan vlan-id |
- |
关闭VLAN的MAC地址学习功能 |
mac-address mac-learning disable |
必选 缺省情况下,VLAN的MAC地址学习功能处于开启状态 |
关闭MAC地址学习功能后,已经学习到的MAC地址表项将继续有效直至老化。
当网络拓扑改变后,动态MAC地址表项不会及时自动更新。这样,由于设备学习不到新的MAC地址,会导致用户流量不能正常转发。因此,需要配置动态MAC地址表项老化时间。超出设定的老化时间,动态MAC地址表项被自动删除,设备重新进行MAC地址学习,构建新的动态MAC地址表项。
配置合适的老化时间可以有效利用MAC地址老化功能。用户配置的老化时间过长或者过短,都可能影响设备的运行性能:
· 如果用户配置的老化时间过长,设备可能会保存许多过时的MAC地址表项,从而耗尽MAC地址表资源,导致设备无法根据网络的变化更新MAC地址表。
· 如果用户配置的老化时间太短,设备可能会删除有效的MAC地址表项,可能导致设备广播大量的数据报文,影响设备的运行性能。
表1-7 配置动态MAC地址表项的老化时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置动态MAC地址表项的老化时间 |
mac-address timer { aging seconds | no-aging } |
可选 缺省情况下,MAC地址老化时间为300秒 |
· 动态MAC地址表项的老化时间作用于全部接口上,地址老化只对动态的(设备学习到的或者用户配置的动态的)MAC地址表项起作用。
· 在一个比较稳定的网络,如果长时间没有流量,动态MAC地址表项会被全部删除,可能导致设备突然广播大量的数据报文,被他人侦听,造成安全隐患,此时可将动态MAC地址表项的老化时间设成no-aging(不老化),以减少广播,增加网络稳定性和安全性。
为适应网络的变化,MAC地址表需要不断更新。每一条动态MAC地址表项都有一个老化时间。如果在到达老化时间之前设备收到源MAC地址或目的MAC地址为MAC地址表中某MAC地址的报文,则重新计算该表项的老化时间。
如果希望设备仅在收到源MAC地址为动态MAC表项中MAC地址的报文时刷新该表项的老化时间,收到目的MAC地址为动态MAC地址表项中MAC地址的报文时不刷新该表项的老化时间,可以关闭目的MAC地址刷新老化时间功能。
表1-8 关闭目的MAC地址刷新老化时间配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
关闭目的MAC地址刷新老化时间 |
mac-address destination-hit disable |
必选 缺省情况下,目的MAC地址刷新老化时间功能处于开启状态 |
微软的网络负载均衡(NLB,Network Load Balancing)功能,是其在Windows Server上开发的一个多服务器集群负载均衡特性。
a. NLB集群
NLB支持集群内服务器之间的负载分担以及冗余备份,当发生服务器故障时可以支持数据快速切换。为了保证快速切换,NLB要求交换机将业务流量转发至集群内的所有服务器或指定服务器,然后由各服务器将该服务器不期望的流量过滤掉。
在NLB集群的单播模式下,集群服务器加入或者切换时会发送一个以虚拟MAC为源MAC的报文,交换机会学习到这个虚拟MAC。之后,服务器不再以此MAC为源地址发送报文,但是发往服务器的流量会以这个虚拟MAC为目的地址。如果设备的MAC地址老化允许目的MAC地址刷新老化时间,将导致该虚拟MAC无法老化,从而使流量只能发送到该虚拟MAC地址表项所在端口,无法发送到所有连接服务器的端口。
此时,可以关闭目的MAC地址刷新老化时间功能,使该虚拟MAC及时老化掉,从而使发往服务器的报文能够到达集群内的所有服务器。
通过配置二层以太网端口或端口组最多可以学习到的MAC地址数,用户可以控制设备维护的MAC地址表的表项数量。当接口学习到的MAC地址数达到配置的最大值时,该接口将不再对MAC地址进行学习。
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入二层以太网端口、或者端口组视图 |
进入二层以太网端口视图 |
interface interface-type interface-number |
二者必选其一 进入二层以太网端口视图后,下面进行的配置只在当前接口生效;进入端口组视图后,下面进行的配置将在端口组的所有接口生效 |
进入端口组视图 |
port-group manual port-group-name |
||
配置接口最多可以学习到的MAC地址数 |
mac-address max-mac-count count |
必选 缺省情况下,没有配置以太网端口/端口组最多可以学习到的MAC地址数 |
· 二层链路聚合端口不支持配置端口最多可以学习到的MAC地址数。
· 当以太网端口被配置为聚合组的成员端口后,如果在这些成员端口上配置端口最多可以学习到的MAC地址数,会导致成员端口不能被选中,因此,请不要在聚合组的成员端口上配置端口最多可以学习到的MAC地址数。
如图1-1所示,是MAC地址漫游功能的典型应用场景。Device A和Device B是两台配置了IRF功能的本系列交换机。无线接入点AP C和AP D分别连接到IRF成员设备Device A和Device B。
开启MAC地址漫游功能后,IRF成员设备会将学习到的MAC地址同步给IRF设备内的其他成员设备。如图1-1所示,当Client A通过AP C接入时,Device A会将学习到的Client A的MAC地址同步给IRF设备内的其他成员设备Device B。
图1-1 Client A通过AP C接入时的MAC地址表
当用户的接入地点发生变化,例如从AP C的覆盖区域移动到AP D的覆盖区域时,IRF会将Client A的MAC地址重新学习到Device B上,并将更新后的MAC地址同步给IRF设备内的其他成员设备Device A(如图1-2所示),使用户的通信不受任何影响。
图1-2 Client A移动到通过AP D接入时的MAC地址表
表1-10 配置MAC地址漫游功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置MAC地址漫游功能 |
mac-address mac-roaming enable |
必选 缺省情况下,MAC地址漫游功能处于关闭状态 |
本功能记录和上报MAC地址迁移情况,包括发生迁移的MAC地址、该MAC地址所在VLAN ID、迁移的源接口和新接口、最近迁移时间、以及该MAC地址一分钟内迁移的次数。
MAC地址迁移是指:设备从某接口(假设接口A)学习到某MAC地址,之后从另一接口(假设接口B)接收到了以该MAC地址为源MAC地址的报文,且接口B与接口A所属的VLAN相同,则该MAC地址表项的出接口改为接口B,即MAC地址从接口A迁移到接口B。
如果MAC地址迁移频繁出现,且同一MAC地址总是在特定的两个接口之间迁移,那么网络中可能存在二层环路。您可以通过MAC地址迁移日志上报功能来发现和定位二层环路。
表1-11 配置MAC地址迁移日志上报
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能MAC地址迁移日志上报功能 |
mac-flapping notification enable |
必选 缺省情况下,MAC地址迁移日志上报功能处于关闭状态 |
使能本功能后,系统将每分钟上报一次上一分钟发生的MAC地址迁移日志。
在完成上述配置后,在任意视图下执行display命令可以显示配置后MAC地址表的运行情况,通过查看显示信息验证配置的效果。
表1-12 MAC地址表显示和维护
操作 |
命令 |
显示MAC地址表信息 |
display mac-address [ mac-address [ vlan vlan-id ] | [ [ dynamic | static ] [ interface interface-type interface-number ] | blackhole ] [ vlan vlan-id ] [ count ] ] [ | { begin | exclude | include } regular-expression ] |
显示MAC地址表动态表项的老化时间 |
display mac-address aging-time [ | { begin | exclude | include } regular-expression ] |
显示系统或接口MAC地址的学习状态 |
display mac-address mac-learning [ interface-type interface-number ] [ | { begin | exclude | include } regular-expression ] |
显示MAC地址表的统计信息 |
display mac-address statistics [ | { begin | exclude | include } regular-expression ] |
· 现有一个用户主机Host A,它的MAC地址为000f-e235-dc71,所属VLAN为VLAN 1,所连的设备接口为GigabitEthernet1/0/1。为防止MAC地址攻击,在设备的MAC地址表中为该用户主机添加一条静态表项。
· 另有一个用户主机Host B,它的MAC地址为000f-e235-abcd,所属VLAN为VLAN 1。由于该用户主机曾经接入网络进行非法操作,为了避免此种情况再次发生,在设备上添加一条黑洞MAC地址表项,使该用户主机接收不到报文。
· 配置设备的动态MAC地址表项老化时间为500秒。
# 增加一个静态MAC地址表项。
<Sysname> system-view
[Sysname] mac-address static 000f-e235-dc71 interface gigabitethernet 1/0/1 vlan 1
# 增加一个黑洞MAC地址表项。
[Sysname] mac-address blackhole 000f-e235-abcd vlan 1
# 配置动态MAC地址表项的老化时间为500秒。
[Sysname] mac-address timer aging 500
# 查看以太网端口GigabitEthernet1/0/1上的MAC地址表信息。
[Sysname] display mac-address interface gigabitethernet 1/0/1
MAC ADDR VLAN ID STATE PORT INDEX AGING TIME(s)
000f-e235-dc71 1 Config static GigabitEthernet 1/0/1 NOAGED
--- 1 mac address(es) found ---
# 查看黑洞MAC地址表信息。
[Sysname] display mac-address blackhole
MAC ADDR VLAN ID STATE PORT INDEX AGING TIME(s)
000f-e235-abcd 1 Blackhole N/A NOAGED
--- 1 mac address(es) found ---
# 查看动态MAC地址表项的老化时间。
[Sysname] display mac-address aging-time
Mac address aging time: 500s
在网络监控中,需要对加入和离开网络的用户进行监控。由于MAC地址能唯一标识一个网络用户,所以可以通过监控加入和离开网络的MAC地址对用户进行跟踪。
通过使用MAC Information功能,当二层以太网端口学习到或删除MAC地址时会发送Syslog或Trap信息,通过对Syslog和Trap信息的分析,监控端可以实现对进入网络的用户进行监控。
当设备学习到一条新的MAC地址或删除掉一条已有MAC地址时,设备将MAC地址相关信息写入设备的记录用户信息的缓冲区。当用户设定的发送MAC监控Syslog或Trap的时间间隔到期,设备立即发送记录的MAC地址的Syslog或Trap信息。
· 设备仅记录和发送通过源MAC地址学习自动生成的MAC地址、通过MAC地址认证的MAC地址、通过802.1X认证的MAC地址、Voice Vlan匹配的OUI MAC地址,以及安全MAC地址等。对黑洞MAC地址、静态MAC地址、用户配置的动态MAC地址、组播MAC地址和本机MAC地址不进行记录和发送。
· 关于MAC地址认证的详细介绍请参见“安全配置指导”中的“MAC地址认证”。
· 关于802.1X的详细介绍请参见“安全配置指导”中的“802.1X”。
· 关于安全MAC地址的详细介绍请参见“安全配置指导”中的“端口安全”。
· 关于Voice VLAN和OUI MAC地址的详细介绍请参见“二层技术-以太网交换配置指导”中的“Voice VLAN”。
表2-1 使能全局MAC Information功能
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能全局MAC Information功能 |
mac-address information enable |
必选 缺省情况下,全局MAC Information功能处于关闭状态 |
表2-2 使能基于接口的MAC Information功能
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网端口视图 |
interface interface-type interface-number |
- |
使能基于接口的MAC Information功能 |
mac-address information enable { added | deleted } |
必选 缺省情况下,基于接口的MAC Information功能处于关闭状态 |
当全局MAC Information功能未使能时,即使以太网端口下使能了MAC Information功能,MAC Information功能也处于关闭状态。
表2-3 配置MAC Information工作模式
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置MAC Information工作模式 |
mac-address information mode { syslog | trap } |
可选 缺省情况下,MAC变化通知功能采用Trap方式发送 |
为了防止过多的Syslog或Trap信息干扰用户,用户可以配置发送Syslog或Trap信息的时间间隔,当到达时间间隔时再发送Syslog或Trap信息。
表2-4 配置发送Syslog或Trap信息的时间间隔
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置发送Syslog或Trap信息的时间间隔 |
mac-address information interval interval-time |
可选 缺省情况下,发送Syslog或Trap信息的时间间隔为1秒 |
MAC Information缓存队列长度是否为0对应着不同的处理方式:
· 如果MAC Information缓存队列长度为0,则当学习到或删除掉一条MAC地址时会立即发送Syslog或Trap信息。
· 如果MAC Information缓存队列长度不为0,则将MAC地址变化信息存放在缓存队列中。当未达到发送Syslog或Trap的时间间隔,此时若缓存队列被写满,新的MAC地址变化信息将覆盖缓存队列中最后一条写入的信息;当达到发送Syslog或Trap的时间间隔时,不论此时缓存队列是否已被写满,都发送Syslog或Trap信息。
表2-5 配置MAC Information缓存队列长度
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置MAC Information缓存队列长度 |
mac-address information queue-length value |
可选 缺省情况下,MAC Information缓存队列长度为50 |
· Host A与远端服务器Server通过Device相连;
· 在Device的GigabitEthernet1/0/1上使能MAC Information功能,Device将MAC变化信息利用Syslog方式通过GigabitEthernet1/0/3发送给Host B,Host B对接收到的Syslog信息进行分析并显示。
图2-1 MAC Information典型配置组网图
(1) 配置Device可以将Syslog发送到Host B
详细内容请参见“网络管理和监控配置指导”中的“信息中心”。
(2) 使能MAC Information功能
# 全局使能MAC Information。
<Device> system-view
[Device] mac-address information enable
# 配置MAC Information工作模式为Syslog方式。
[Device] mac-address information mode syslog
# 配置接口GigabitEthernet1/0/1使能MAC Information功能。
[Device] interface gigabitethernet 1/0/1
[Device-GigabitEthernet1/0/1] mac-address information enable added
[Device-GigabitEthernet1/0/1] mac-address information enable deleted
[Device-GigabitEthernet1/0/1] quit
# 配置MAC Information缓存队列长度为100。
[Device] mac-address information queue-length 100
# 配置MAC Information发送时间间隔为20秒。
[Device] mac-address information interval 20
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!