MAC简介

MAC基本概念

MAC(Media Access Control)地址用来定义网络设备的位置。MAC地址由48比特长、12位的16进制数字组成,其中从左到右开始,0到23bit是厂商向IETF等机构申请用来标识厂商的代码,24到47bit由厂商自行分派,是各个厂商制造的所有网卡的一个唯一编号。

MAC地址可以分为3种类型:

  • 物理MAC地址:这种类型的MAC地址唯一的标识了以太网上的一个终端,该地址为全球唯一的硬件地址;
  • 广播MAC地址:全1的MAC地址为广播地址(FF-FF-FF-FF-FF-FF),用来表示LAN上的所有终端设备;
  • 组播MAC地址:除广播地址外,第8bit为1的MAC地址为组播MAC地址(例如01-00-00-00-00-00),用来代表LAN上的一组终端。其中以01-80-c2开头的组播MAC地址叫BPDU MAC,一般作为协议报文的目的MAC地址标示某种协议报文。

交换机支持的MAC地址

交换机上面的MAC地址分为系统MAC和接口MAC两种。其中接口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查看。

MAC地址表的定义和分类

MAC地址表的定义

MAC地址表记录了交换机学习到的其他设备的MAC地址与接口的对应关系,以及接口所属VLAN等信息。

MAC地址表的分类

MAC地址表中的表项分为:动态表项、静态表项和黑洞表项。另外交换机的MAC地址表中还存在一种业务类型的MAC地址表项,譬如:安全MAC、MUX MAC、Authen MAC、Guest MAC等。该类MAC地址表项是由对应业务维护的,一般是通过动态表项转换来的。

MAC地址表的组成和作用

MAC地址表的组成

MAC地址表是以MAC地址和VLAN ID或VSI为索引来唯一标识。

MAC地址表的作用

MAC地址表用于指导报文进行单播转发。如图1中,PC1发往PC3的报文,在到达交换机Switch时,根据报文中的目的MAC地址MAC3和VLAN10查询交换机的MAC地址表,获取出接口Port3,然后报文直接从接口Port3转发到PC3,完成数据的转发。

图1 基于MAC地址表的转发流程图

MAC地址学习和老化

MAC地址学习过程

一般情况下,MAC地址表是设备根据收到的数据帧里的源MAC地址自动学习而建立的。

图1 MAC地址学习示意图

如图1,HostA向SwitchA发送数据时,SwitchA从数据帧中解析出源MAC地址(即HostA的MAC地址)和VLAN ID。

  • 如果MAC地址表中不存在该MAC地址表项,设备则将这个新MAC地址以及该MAC地址对应的PortA和VLAN ID作为一个新的表项加入到MAC地址表中。
  • 如果MAC地址表中已经存在该MAC地址表项,设备将通过重置该表项的老化时间,对该表项进行更新。

  • 如果PortA加入了Eth-TrunkA,则MAC地址表项的出接口就是Eth-TrunkA。
  • 交换机设备所有接口默认加入VLAN 1,如果不做修改所有MAC地址表项的VLAN ID都是VLAN 1。
  • 交换机设备对于BPDU MAC(形如:0180-c200-xxxx)不会进行MAC地址学习。但对于VXLAN透传和VPLS透传BPDU报文时,会学习源MAC地址。

所以设备在收到数据帧时,才会触发MAC地址的学习和刷新。

MAC地址老化过程

链路故障与之相连设备的MAC地址立即清空

为适应网络的变化,MAC表需要不断更新。MAC表中自动生成的表项(即动态表项)并非永远有效,每一条表项都有一个生存周期,到达生存周期仍得不到更新的表项将被删除,这个生存周期被称作老化时间。如果在到达生存周期前记录被更新,则该表项的老化时间重新计算。

图2 MAC地址老化过程示意图

如图2所示,设备MAC地址老化时间设置为T。在t1时刻有源MAC地址为00e0-fc00-0001、VLAN为1的报文从某接口进入。假定该接口已加入VLAN 1。如果之前MAC地址表不存在关于(MAC: 00e0-fc00-0001,VLAN: 1)的任何种类表项,那么这个地址就会作为动态MAC地址表项学习到地址表里,同时该表项的命中标志位被置1。

设备周期性(每经过T时间)地对所有学习到的动态MAC地址表项进行检查。

在t2时刻,检查到动态表项(MAC: 00e0-fc00-0001,VLAN: 1)的命中标志位为1,则将该表项的命中标志位置为0,但不删除这条表项。

在t2时刻和t3时刻之间没有这种报文进入设备,那么该表项的命中标志位会一直保持为0。

在t3时刻,设备检查到该表项的命中标志位为0,认为该表项的老化时间到达,将删除此条表项。

如上所述,通过自动老化,一条动态表项在MAC地址表存在的最短时间是设备所配置的老化时间T到2T之间。

设备MAC地址老化时间可手动设置。通过设置此时间,可以灵活控制动态学习到的MAC表项在MAC地址表存在的时间。

设备上端口频繁UP/DOWN会导致MAC地址表项可能不会在两个老化周期内正常老化掉, 此时建议检查链路质量或者通过命令port link-flap protection enable配置链路振荡保护功能进行抑制。

MAC地址学习控制

由于MAC地址表的容量是有限的,当黑客伪造大量源MAC地址不同的报文发送到设备后,设备上的MAC地址表项资源可能会被耗尽。当MAC表被填满后,即使它再收到正常的报文,也无法学习到报文中的源MAC地址,导致报文广播转发,浪费带宽资源。

为了解决以上问题,设备提供了两种方式对MAC地址学习进行控制:

  • 基于VLAN或接口关闭学习MAC能力
  • 基于VLAN或接口限制MAC地址数

MAC地址学习控制方式

原理描述

典型应用场景

基于VLAN或接口关闭学习MAC能力

某个VLAN或接口关闭学习MAC能力后,将不再自动学习到新的动态MAC地址表项。之前学习到的动态表项在老化时间到达后自动删除,也可以手工执行删除MAC命令,将这些表项删除。

  • 多数情况下,一个黑客发送的攻击报文是从同一个接口进入设备,在这个接口上配置关闭学习MAC能力或配置MAC地址学习限制,可避免攻击报文将整个设备的MAC地址表填满。
  • 基于VLAN或接口进行MAC地址数限制,也可以应用在限制终端用户数的场景中。

基于VLAN或接口进行MAC地址数限制

基于VLAN或接口限制MAC地址数后,该VLAN或接口最多只能学习到指定限制数的MAC地址表项。

MAC地址表项达到限制数时,设备会上报告警信息通知网络管理员进行维护。

MAC地址表项达到限制数后,该VLAN或接口将不能再学习新的MAC地址表项,同时源MAC地址不包含在MAC地址表中的报文将被丢弃。

MAC地址漂移

什么是MAC地址漂移

MAC地址漂移是指设备上一个VLAN内有两个端口学习到同一个MAC地址,后学习到的MAC地址表项覆盖原MAC地址表项的现象。图1所示,MAC地址为0011-0022-0034,VLAN ID为2的表项,出接口由GE0/0/1刷新为GE0/0/2,这就是MAC地址漂移。设备出现MAC地址漂移时,设备CPU占用率会有不同程度的升高。

正常情况下,网络中不会在短时间内出现大量MAC地址漂移的情况。出现这种现象一般都意味着网络中存在环路,可以通过查看告警信息和漂移记录,快速定位和排除环路。

图1 MAC地址漂移示意图

如何进行MAC地址漂移检测

MAC地址漂移检测是利用MAC地址出接口跳变的现象,检测MAC地址是否发生漂移的功能。

配置MAC地址漂移检测功能后,在发生MAC地址漂移时,可以上报包括MAC地址、VLAN,以及跳变的接口等信息的告警。其中跳变的接口即为可能出现环路的接口。网络管理员可以根据告警信息,手工排查网络中环路的源头,也可以使用MAC漂移检测提供的后续动作,使跳变的端口down或者VLAN从端口中退出,实现自动破环。

图2 MAC地址漂移检测组网图

如图2网络中,若SwitchC和SwitchD之间误接网线,则SwitchB、SwitchC、SwitchD之间形成环路。当SwitchA上Port1接口从网络中收到一个广播报文后转发给SwitchB,该报文经过环路,会被SwitchA上Port2接口收到。配置MAC地址漂移检测功能,SwitchA就会感知到MAC地址出接口跳变的现象。若连续出现此现象,SwitchA就会上报MAC漂移告警,提醒管理员进行维护。

MAC地址漂移检测是单台设备根据MAC学习变化感知到流量拓扑变化,是一种单点技术,无法精确感知网络拓扑。因而该技术应用有一定的场景限制,建议使用在下挂网络可能会成环的场景。

如何防止MAC地址漂移

网络中产生环路或非法用户进行网络攻击都会造成MAC地址发生漂移,导致MAC地址不稳定。

在规划网络时,可以通过下面两种方式来避免这种情况:

  • 提高接口MAC地址学习优先级。当不同接口学到相同的MAC地址表项时,高优先级接口学到的MAC地址表项可以覆盖低优先级接口学到的MAC地址表项,防止MAC地址在接口间发生漂移。
  • 不允许相同优先级的接口发生MAC地址表项覆盖。当伪造网络设备所连接口的优先级与安全的网络设备相同时,后学习到的伪造网络设备的MAC地址表项不会覆盖之前正确的表项。但如果网络设备下电,仍会学习到伪造网络设备的MAC地址,当网络设备再次上电时将无法学习到正确的MAC地址。

如图3所示,为防止非法用户伪造服务器MAC地址入侵Switch,可以提高服务器侧接口Port1的MAC地址学习优先级。

图3 MAC防漂移应用组网图

MAC刷新ARP

在以太网中,主机设备是根据MAC地址来发送、接收以太网数据帧。ARP用于提供IP地址到MAC地址的映射。当不同网段间通信时,需要使用ARP表项来将IP地址映射到正确的MAC地址及相应的出接口上。

一般来说设备上的MAC表项和ARP表项的出接口是一致的。如图1所示,在T1时间点,MAC地址表项和ARP表项的出接口是一致的,都是GE0/0/1。当端口切换后,在T2时间点,MAC地址表项的出接口在收到报文时立即刷新为GE0/0/2,但是ARP表项的出接口还是GE0/0/1,需要等待T3时间点即ARP表项的老化时间到达后,通过ARP老化探测,才会刷新为GE0/0/2。这样就在T2时间点和T3时间点之间,ARP表项的出接口是不可用的,会导致不同网段间设备的通信中断。

图1 配置MAC刷新ARP功能之前

MAC刷新ARP可以实现在MAC出接口更新时,直接刷新ARP表项的出接口的功能。如图2所示,在配置MAC刷新ARP功能后,在T2时间点,MAC地址表项出接口刷新为GE0/0/2后,直接把ARP表项的出接口刷新为GE0/0/2。解决了T2时间点和T3时间点之间,ARP表项出接口不可用的问题,避免了业务通信的中断。

图2 配置MAC刷新ARP功能之后

MAC刷新ARP功能多用在VRRP主备环境下挂服务器的组网中(通过MAC刷新ARP加快VRRP流量切换),也可以用在二层破环协议STP、SmartLink等进行三层流量切换的场景。

华为数通笔记-MAC地址相关推荐

  1. 华为数通笔记-ISIS高级特性

    ISIS收敛步骤 IGP的收敛可以总体描述为如下状态D+O+F+SPT+RIB+DD RIB状态和DD状态一般与路由器的硬件有关,如主CPU.线卡CPU.内存.网络处理器有关,这两个状态人为无法对收敛 ...

  2. 华为数通笔记-Smart Link和Monitor Link

    Smart Link和Monitor Link简介 定义 Smart Link,又叫做备份链路.一个Smart Link由两个接口组成,其中一个接口作为另一个的备份.Smart Link常用于双上行组 ...

  3. 华为数通笔记-网络参考模型及数据通信过程

    OSI参考模型 7. 应用层 对应用程序提供接口. 6. 表示层 进行数据格式的转换,以确保一个系统生成的应用层数据能够被另外一个系统的应用层所识别和理解. 5. 会话层 在通信双方之间建立.管理和终 ...

  4. 华为数通笔记-NDP原理

    概述: 节点使用NDP,可以确定连接在同一链路上的邻居的链路层地址,快速清除已经变成无效的缓存值.主机也使用NDP发现能为其转发报文的路由器.最后,节点使用此协议主动跟踪哪一个邻居可达,哪一个邻居不可 ...

  5. 华为数通笔记-PPPoE

    PPPoE简介 定义 PPPoE(PPP over Ethernet)协议是一种把PPP帧封装到以太网帧中的链路层协议.PPPoE可以使以太网网络中的多台主机连接到远端的宽带接入服务器. 目的 运营商 ...

  6. 华为数通笔记-ISIS基础

    ISIS 英文全称:(Intermediate System to Intermediate System,中间系统到中间系统,一种动态路由协议) IS-IS是一种链路状态路由协议,IS-IS与OSP ...

  7. 华为数通笔记-IPV6基础

    IPv6概述 IPv4现状 2011年2月3日,IANA(Internet Assigned Numbers Authority,因特网地址分配组织)宣布将其最后的468万个IPv4地址平均分配到全球 ...

  8. 华为数通笔记--堆叠

    堆叠简介 定义:将多台支持堆叠特性的交换机通过堆叠线缆连在一起,变为逻辑上的一台设备. 堆叠好处 1.扩展了端口数量 2.简化了组网 3.提高可靠性 4.增大带宽 增加成员机的数量,与上行交换机相连的 ...

  9. 华为数通笔记-路由策略

    简介 路由策略主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括可达性)来改变网络流量所经过的路径. 路由协议在发布.接收和引入路由信息时,根据实际组网需求实施一些策略,以便对路由信息进 ...

最新文章

  1. bzoj2337: [HNOI2011]XOR和路径
  2. NOIP 2017 d2t2 70points
  3. func_num_args()
  4. (转)使用Spring配置文件实现AOP
  5. python ctp接口_Python-CTP PyCTP 接口
  6. 爱帮网“搜索+社区”就地展开
  7. 矢量图svg转png的简单方法
  8. 6款主流PDF编辑器测试,快来看看哪一款最适合你吧
  9. 6种继承的优点和缺点
  10. 实战技法 - 短线操盘 (9)
  11. HBase-11-HBase Coprocessor HBase协处理器
  12. Matlab 多维标度,详解多维标度法(MDS,Multidimensional scaling)
  13. 多多情报通:拼多多虚假发货罚款是按什么罚款的?是由什么原因造成的?
  14. 浅谈数据结构-最短路径
  15. 分享 :Google的42条军规,别说你懂职场,太有价值了
  16. 悬浮 内容滚动实现_近年来我国磁悬浮轴承市场运营情况分析
  17. PDF文件取消限制密码
  18. 怎么控制当前页面不左右滑动,可以上下滑动
  19. 使用 SAML2 登录 AWS 中国区控制台
  20. dell vostro 2420系列电脑升级bios a12之后不能使用独显驱动解决办法。

热门文章

  1. 企业费控,驶向「一体化」
  2. C#实现删除自身程序
  3. POJ 2245 Lotto G++
  4. 绿联USB对拷线MAC版使用经验踩坑分享(支持macOS11 BigSur系统及以下)
  5. 东方通文件中文乱码问题
  6. Uber AVS 自动驾驶可视化工具(一)
  7. 图解PMP项目管理马斯洛需求层次理论在公司管理中的应用!
  8. 大数据项目之电商数仓离线计算
  9. 使用Notepad++将windows格式转为linux 的unix
  10. Linux服务器之间文件同步 inotify+Unison