前言
MAC(Media Access Control)地址用来定义网络设备的位置。MAC地址由48比特长、12位的16进制数字组成,其中从左到右开始,0到23bit是厂商向IETF等机构申请用来标识厂商的代码,24到47bit由厂商自行分派,是各个厂商制造的所有网卡的一个唯一编号。
MAC地址可以分为3种类型:
01 认识MAC地址
交换机上面的MAC地址分为系统MAC和接口MAC两种。
公众号 网络民工 专注于IT技术领域,结合实战经验,为您分享网络技术、系统集成、网络工程等一线技术解析和实践案例等深度干货文章,愿我们一起悦享技术,成就梦想!70篇原创内容
其中接口MAC又包括管理网口MAC、VLANIF接口MAC、二层物理接口MAC、三层路由主接口MAC、子接口MAC、二层Eth-Trunk接口MAC、三层Eth-Trunk接口MAC。
系统MAC也就是我们所说的设备MAC,可以通过命令display bridge mac-address查看。管理网口MAC、子接口MAC、二层物理接口MAC和二层Eth-Trunk接口MAC是相同的,使用的就是系统MAC。其他接口MAC与系统MAC不一致,具体MAC地址可以通过display interface查看。
1.1 MAC原理
MAC地址的定义和分类
MAC地址表的定义
MAC地址表记录了交换机学习到的其他设备的MAC地址与接口的对应关系,以及接口所属VLAN等信息。设备在转发报文时,根据报文的目的MAC地址查询MAC地址表,如果MAC地址表中包含与报文目的MAC地址对应的表项,则直接通过该表项中的出接口转发该报文;如果MAC地址表中没有包含报文目的MAC地址对应的表项时,设备将采取广播方式在所属VLAN内除接收接口外的所有接口转发该报文。
MAC地址表的分类
MAC地址表中的表项分为:动态表项、静态表项和黑洞表项。另外交换机的MAC地址表中还存在一种业务类型的MAC地址表项,譬如:安全MAC、MUX MAC、Authen MAC、Guest MAC等。该类MAC地址表项是由对应业务维护的,一般是通过动态表项转换来的。
表2-1 不同MAC地址表的特点和作用
MAC地址表的组成和作用
MAC地址表的组成
MAC地址表是以MAC地址和VLAN ID或VSI为索引来唯一标识。当一台目的主机属于多个VLAN或VSI时,在MAC地址表中就会存在相同MAC地址拥有多个不同VLAN ID或VSI的情况。表2-2中是四条不同的MAC地址表项。如第一条MAC地址表项的作用是:从设备任意接口进入的目的MAC为0011-0022-0034,VLAN ID为10的报文,都会从GE3/0/1接口转发出去。
表2-2 MAC地址表项
MAC地址表的作用
MAC地址表用于指导报文进行单播转发。如图2-1中,PC1发往PC3的报文,在到达交换机Switch时,根据报文中的目的MAC地址MAC3和VLAN10查询交换机的MAC地址表,获取出接口Port3,然后报文直接从接口Port3转发到PC3,完成数据的转发。
图2-1 基于MAC地址表的转发流程图
MAC地址学习和老化
MAC地址学习过程
一般情况下,MAC地址表是设备根据收到的数据帧里的源MAC地址自动学习而建立的。
图2-2 MAC地址学习示意图
如图2-2,HostA向SwitchA发送数据时,SwitchA从数据帧中解析出源MAC地址(即HostA的MAC地址)和VLAN ID。
所以设备在收到数据帧时,才会触发MAC地址的学习和刷新。当设备有多块接口板时,为了避免不必要的广播报文以及提高报文转发的速度,每个接口板学习到的MAC地址表项,都会自动同步到其他单板。
MAC地址老化过程
为适应网络的变化,MAC表需要不断更新。MAC表中自动生成的表项(即动态表项)并非永远有效,每一条表项都有一个生存周期,到达生存周期仍得不到更新的表项将被删除,这个生存周期被称作老化时间。如果在到达生存周期前记录被更新,则该表项的老化时间重新计算。
图2-3 MAC地址老化过程示意图
如图2-3所示,设备MAC地址老化时间设置为T。在t1时刻有源MAC地址为00e0-fc00-0001、VLAN为1的报文从某接口进入。假定该接口已加入VLAN 1。如果之前MAC地址表不存在关于(MAC: 00e0-fc00-0001,VLAN: 1)的任何种类表项,那么这个地址就会作为动态MAC地址表项学习到地址表里,同时该表项的命中标志位被置1。
设备周期性(每经过T时间)地对所有学习到的动态MAC地址表项进行检查。
如上所述,通过自动老化,一条动态表项在MAC地址表存在的最短时间是设备所配置的老化时间T到2T之间。
设备MAC地址老化时间可手动设置。通过设置此时间,可以灵活控制动态学习到的MAC表项在MAC地址表存在的时间。
MAC地址学习控制
由于MAC地址表的容量是有限的,当黑客伪造大量源MAC地址不同的报文发送到设备后,设备上的MAC地址表项资源可能会被耗尽。当MAC表被填满后,即使它再收到正常的报文,也无法学习到报文中的源MAC地址,导致报文广播转发,浪费带宽资源。
为了解决以上问题,设备提供了两种方式对MAC地址学习进行控制:
表2-3 MAC地址学习控制方式说明
MAC地址漂移
什么是MAC地址漂移
MAC地址漂移是指设备上一个VLAN内有两个端口学习到同一个MAC地址,后学习到的MAC地址表项覆盖原MAC地址表项的现象。图2-4所示,MAC地址为0011-0022-0034,VLAN ID为2的表项,出接口由GE1/0/1刷新为GE1/0/2,这就是MAC地址漂移。设备出现MAC地址漂移时,设备CPU占用率会有不同程度的升高。
正常情况下,网络中不会在短时间内出现大量MAC地址漂移的情况。出现这种现象一般都意味着网络中存在环路,可以通过查看告警信息和漂移记录,快速定位和排除环路。
图2-4 MAC地址漂移示意图
如何进行MAC地址漂移检测
MAC地址漂移检测是利用MAC地址出接口跳变的现象,检测MAC地址是否发生漂移的功能。
配置MAC地址漂移检测功能后,在发生MAC地址漂移时,可以上报包括MAC地址、VLAN,以及跳变的接口等信息的告警。其中跳变的接口即为可能出现环路的接口。网络管理员可以根据告警信息,手工排查网络中环路的源头,也可以使用MAC漂移检测提供的后续动作,使跳变的端口down或者VLAN从端口中退出,实现自动破环。
图2-5 MAC地址漂移检测组网图
如图2-5网络中,若SwitchC和SwitchD之间误接网线,则SwitchB、SwitchC、SwitchD之间形成环路。当SwitchA上Port1接口从网络中收到一个广播报文后转发给SwitchB,该报文经过环路,会被SwitchA上Port2接口收到。配置MAC地址漂移检测功能,SwitchA就会感知到MAC地址出接口跳变的现象。若连续出现此现象,SwitchA就会上报MAC漂移告警,提醒管理员进行维护。
如何防止MAC地址漂移
网络中产生环路或非法用户进行网络攻击都会造成MAC地址发生漂移,导致MAC地址不稳定。
在规划网络时,可以通过下面两种方式来避免这种情况:
如图2-6所示,为防止非法用户伪造服务器MAC地址入侵Switch,可以提高服务器侧接口Port1的MAC地址学习优先级。
图2-6 MAC防漂移应用组网图
MAC刷新ARP
在以太网中,主机设备是根据MAC地址来发送、接收以太网数据帧。ARP用于提供IP地址到MAC地址的映射。当不同网段间通信时,需要使用ARP表项来将IP地址映射到正确的MAC地址及相应的出接口上。
一般来说设备上的MAC表项和ARP表项的出接口是一致的。如图2-7所示,在T1时间点,MAC地址表项和ARP表项的出接口是一致的,都是GE1/0/1。当端口切换后,在T2时间点,MAC地址表项的出接口在收到报文时立即刷新为GE1/0/2,但是ARP表项的出接口还是GE1/0/1,需要等待T3时间点即ARP表项的老化时间到达后,通过ARP老化探测,才会刷新为GE1/0/2。这样就在T2时间点和T3时间点之间,ARP表项的出接口是不可用的,会导致不同网段间设备的通信中断。
图2-7 配置MAC刷新ARP功能之前
MAC刷新ARP可以实现在MAC出接口更新时,直接刷新ARP表项的出接口的功能。如图2-8所示,在配置MAC刷新ARP功能后,在T2时间点,MAC地址表项出接口刷新为GE1/0/2后,直接把ARP表项的出接口刷新为GE1/0/2。解决了T2时间点和T3时间点之间,ARP表项出接口不可用的问题,避免了业务通信的中断。
图2-8 配置MAC刷新ARP功能之后
MAC刷新ARP功能多用在VRRP主备环境下挂服务器的组网中(通过MAC刷新ARP加快VRRP流量切换),也可以用在二层破环协议STP、SmartLink等进行三层流量切换的场景。
02 MAC应用场景
2.1 通过MAC防漂移防止用户攻击
在部署二层网络时,可以使用MAC地址防漂移的功能,防止非法用户的攻击。
如图2-9所示,某企业网络中,用户需要访问企业的服务器。如果某些非法用户从其他接口假冒服务器的MAC地址发送报文,则服务器的MAC地址将在其他接口学习到。这样用户发往服务器的报文就会发往非法用户,不仅会导致用户与服务器不能正常通信,还会导致一些重要用户信息被窃取。为防止非法用户伪造服务器MAC地址入侵Switch,在Switch上可配置MAC防漂移功能,设置合法用户的MAC学习优先级高于非法用户的MAC学习优先级,在非法用户攻击时就不会触发MAC地址出接口漂移。
图2-9 MAC地址防漂移组网图
2.2 通过MAC漂移检测快速发现环路
在组网发生环路时,环路上的故障点一定存在MAC地址漂移现象。利用这一现象,可以快速的判断网络中是否存在环路。
当设备出现如下现象时,可以开启MAC漂移检测功能,判断是否是环路导致的。
MAC漂移检测功能相比其他环路检测功能的优点是配置简单。各类环路检测特性对比如表2-4所示。
表2-4 环路检测特性比较
2.3 通过MAC刷新ARP加快VRRP流量切换
VRRP备份组下挂的设备是服务器时,使用MAC刷新ARP的功能,可以加快VRRP主备切换的性能,减少业务中断时间。
虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)通过把几台路由设备联合组成一台虚拟的路由设备,将虚拟网关设备的IP地址作为用户的默认网关实现与外部网络通信。当网关设备发生故障时,VRRP机制能够选举新的网关设备承担数据流量,从而保障网络的可靠通信。
一般情况下,如图2-10所示用户HostA通过Switch双归属到SwitchA和SwitchB。在SwitchA和SwitchB上配置VRRP备份组,实现链路冗余备份。当SwitchA和Switch之间的连线坏掉时,MAC和ARP表项可以及时切换到Switch和SwitchB的连线上。
图2-10 VRRP典型组网图
而在有些情况下如图2-11,VRRP备份组下挂的设备,不是交换机而是服务器Server。Server发送报文时,一般情况下只会选择一个网口发包,当检测到网络故障或者流量异常时,切换到另外一个网口发包。
这种情况下就可以在Switch上配置MAC刷新ARP功能,当MAC表项的出接口变化时,会即时更新ARP表项的出接口,从而保证MAC表项和ARP表项的一致性。
图2-11 VRRP下挂服务器组网图
网络民工网络民工专注于IT技术领域,结合实战经验,为您分享网络技术、系统集成、网络工程等一线技术解析和实践案例等深度干货文章,愿我们一起悦享技术,成就梦想!70篇原创内容
公众号
关于MAC地址配置示例,请期待下期内容: