什么是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(媒体访问控制)地址用于定义网络设备的位置。MAC地址由48位长、12位十六进制数字组成,其中从左到右,0到23位是厂商向IETF等机构申请的标识厂商的代码,24到47位是厂商自己分配的,是各个厂商生产的所有网卡的唯一编号。

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

  • 物理MAC地址:这种类型的MAC地址唯一地标识以太网上的终端,这是世界上唯一的硬件地址;
  • MAC地址:全1的MAC地址是广播地址(FF-FF-FF-FF-FF-FF-FF),用来表示局域网上所有的终端设备;
  • 组播地址:除广播地址外,第8位为1的MAC地址是组播MAC地址(例如01-00-00-00-00-00-00),代表局域网上的一组终端。以01-80-c2开头的组播MAC地址称为BPDU MAC,一般作为一个协议报文的目的MAC地址来标记某个协议报文。
  • 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地址可以通过显示界面查看。

    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的报文到达交换机时,根据报文中的目的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地址相对应的端口和VLAN ID作为新条目。
  • 如果MAC地址条目已经存在于MAC地址表中,设备将通过重置其老化时间来更新该条目。
  • 因此,当设备接收到数据帧时,它将触发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地址条目被学习到地址表中,并且该条目的hit标志位将被设置为1。

    设备定期(每次T通过时)检查所有学习到的动态MAC地址条目。

  • 在t2,如果动态条目(MAC: 00e0-fc00-0001,VLAN: 1)的hit标志被检查为1,则该条目的hit标志将被设置为0,但是该条目不会被删除。
  • 如果在t2和t3之间没有这样的消息进入设备,则该条目的命中标志位将总是保持为0。
  • t3时,设备检查到该条目的hit标志位为0,认为该条目的老化时间已到,将删除该条目。
  • 如上所述,通过自动老化,动态表项在MAC地址表中存在的最短时间在设备配置的老化时间T和2T之间。

    MAC地址老化时间可以手动设置。通过设置这个时间,可以灵活控制动态学习的MAC表条目在MAC地址表中存在的时间。

    MAC地址学习控制

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

    为了解决上述问题,设备提供了两种控制MAC地址学习的方法:

  • 关闭基于VLAN或界面学习MAC的功能
  • 根据VLAN或接口限制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漂移检测提供的后续动作,使跳开的端口关闭或者VLAN退出端口,从而实现自动断环。

    图2-5 MAC地址漂移检测网络图

    如图2-5所示,在网络中,如果在SwitchC和SwitchD之间错误地连接了网线,就会在SwitchB、SwitchC和SwitchD之间形成环路。当交换机a上的端口1接口从网络接收到广播消息并将其转发到交换机b时,该消息将在通过环路后被交换机a上的端口2接口接收到。配置MAC地址漂移检测功能时,SwitchA会感知到MAC地址跳出接口的现象。如果这种现象持续发生,SwitchA会上报MAC漂移告警,提醒管理员进行维护。

    如何防止MAC地址漂移

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

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

  • 提高接口MAC地址学习优先级。当不同接口学习相同的MAC地址条目时,高优先级接口学习的MAC地址条目可以覆盖低优先级接口学习的MAC地址条目,从而防止MAC地址在接口之间漂移。
  • 具有相同优先级的接口不允许MAC地址表条目覆盖。当连接到伪造网络设备的接口的优先级与安全网络设备的优先级相同时,之后学习到的伪造网络设备的MAC地址条目将不会覆盖之前的正确条目。但是,如果网络设备断电,它仍然会学习到网络设备的假MAC地址,当网络设备再次通电时,它将无法学习到正确的MAC地址。
  • 如图2-6所示,为了防止非法用户伪造服务器MAC地址入侵交换机,可以增加服务器端接口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等三层流量切换的场景。

    0Mac应用场景

    2.1通过防止MAC漂移来防止用户攻击

    在部署第二层网络时,可以使用MAC地址防漂移功能来防止非法用户的攻击。

    如图2-9所示,在企业网络中,用户需要访问企业的服务器。如果一些非法用户伪造服务器的MAC地址从其他接口发送消息,服务器的MAC地址就会从其他接口获知。这样,用户发送给服务器的消息就会被发送给非法用户,不仅会导致用户和服务器之间的通信不正常,还会导致一些重要的用户信息被窃取。为了防止非法用户伪造服务器MAC地址入侵交换机,可以在交换机上配置MAC防漂移功能,设置合法用户的MAC学习优先级高于非法用户,这样非法用户攻击时就不会触发MAC地址出接口漂移。

    图2-9 MAC地址漂移预防组网图

    2.2通过MAC漂移检测快速发现环路

    当组网存在环路时,环路上的故障点必然存在MAC地址漂移。利用这个现象,我们可以快速判断网络中是否存在环路。

    当设备出现以下现象时,可以开启MAC漂移检测功能,判断是否是环路引起的。

  • MAC地址条目有时会缺失。
  • Ping开关打开和关闭。
  • CPU利用率增加,出现超过阈值的警报。
  • 与其他环路检测功能相比,MAC漂移检测功能具有配置简单的优点。各种环路检测特性的比较如表2-4所示。

    表2-4环路检测特性比较

    2.3通过MAC刷新ARP,加速VRRP流量交换

    当VRRP备份组下的设备是服务器时,使用MAC刷新ARP的功能可以加快VRRP主备倒换的性能,减少业务中断时间。

    虚拟路由器冗余协议(virtual Router Redundancy Protocol,VRRP)将多个路由设备组合成一个虚拟路由设备,并使用虚拟网关设备的IP地址作为用户与外部网络通信的默认网关。当网关设备出现故障时,VRRP机制可以选举新的网关设备来承担数据流量,从而保证网络的可靠通信。

    通常,如图2-10所示,用户HostA通过交换机双宿到Switcha和SwitchB。在SwitchA和SwitchB上配置VRRP备份组,实现链路冗余备份。当SwitchA和Switch之间的连接断开时,MAC和ARP条目可以及时切换到SwitchB和Switch B之间的连接上。

    图2-10 VRRP典型网络图

    在某些情况下,如图2-11所示,VRRP备份组下的设备不是交换机,而是服务器。当服务器发送消息时,一般情况下,只会选择一个网络端口来发送数据包。当检测到网络故障或异常流量时,它将切换到另一个网络端口发送数据包。

  • SwitchA是VRRP的主要设备。首先,服务器使用端口2发送消息。此时,SwitchA学习到的服务器ARP条目和MAC条目在Port2接口,SwitchB学习到的服务器MAC在Port1接口。
  • 当服务器检测到端口2出现故障时,它会切换到端口1继续发送业务消息。此时SwitchA学习到的服务器的MAC地址会刷新到Port1。但是,如果服务器在切换转发接口后没有主动发送ARP请求报文,ARP条目仍然在Port2接口上。这样SwitchA发送给服务器的报文就会从Port2接口发出去,直到ARP条目老化后才能正确转发。
  • 在这种情况下,可以在交换机上配置MAC刷新ARP功能。当MAC条目的出口发生变化时,ARP条目的出口会立即更新,从而保证MAC条目和ARP条目的一致性。

    图2-11 VRRP下行服务器网络图

    网络民工网络民工专注于IT技术领域,结合实践经验,与您分享网络技术、系统集成、网络工程等一线技术分析和实践案例等深度干货文章。希望我们能一起享受科技,实现梦想!70篇原创文章

    微信官方账号

    MAC地址配置示例,敬请期待下期:

  • 1.配置静态MAC地址的示例
  • 2.配置黑洞MAC地址的示例
  • 3.基于接口配置MAC地址学习限制的示例
  • 4.配置基于VLAN的MAC地址学习限制的示例
  • 5.配置基于VSI的MAC地址学习限制示例
  • 6.配置MAC抗漂移示例
  • 7.配置MAC地址漂移检测示例