设为首页收藏本站language 语言切换
查看: 3146|回复: 10
收起左侧

[书籍] MAC地址全攻略详解

[复制链接]
 成长值: 63970
发表于 2021-8-16 15:02:07 | 显示全部楼层 |阅读模式
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上的一组终端。

MAC地址表的定义和分类MAC地址表的定义
MAC地址表记录了路由器学习到的其他设备的MAC地址与接口的对应关系,以及接口所属VLAN等信息。设备在转发报文时,根据报文的目的MAC地址查询MAC地址表,如果MAC地址表中包含与报文目的MAC地址对应的表项,则直接通过该表项中的出接口转发该报文;如果MAC地址表中没有包含报文目的MAC地址对应的表项时,设备将采取广播方式在所属VLAN内除接收接口外的所有接口转发该报文。
MAC地址表的分类
MAC地址表中的表项分为:动态表项、静态表项和黑洞表项。另外路由器的MAC地址表中还存在一种业务类型的MAC地址表项,譬如:安全MAC和MUX MAC。该类MAC地址表项是由对应业务维护的,一般是通过动态表项转换来的。
表1-1  不同MAC地址表的特点和作用[td]
MAC地址表类型
特点
作用
动态表项
  • 由接口通过报文中的源MAC地址学习获得,表项可老化。
  • 在系统复位、接口板热插拔或接口板复位后,动态表项会丢失。
  • 通过查看动态MAC地址表项,可以判断两台相连设备之间是否有数据转发。
  • 通过查看指定动态MAC地址表项的个数,可以获取接口下通信的用户数。
静态表项
  • 由用户手工配置,并下发到各接口板,表项不可老化。
  • 在系统复位、接口板热插拔或接口板复位后,保存的表项不会丢失。
  • 接口和MAC地址静态绑定后,其他接口收到源MAC是该MAC地址的报文将会被丢弃。
  • 一条静态MAC地址表项,只能绑定一个出接口。
  • 一个接口和MAC地址静态绑定后,不会影响该接口动态MAC地址表项的学习。
通过绑定静态MAC地址表项,可以保证合法用户的使用,防止其他用户使用该MAC进行攻击。
黑洞表项
  • 由用户手工配置,并下发到各接口板,表项不可老化。
  • 在系统复位、接口板热插拔或接口板复位后,保存的表项不会丢失。
  • 配置黑洞MAC地址后,源MAC地址或目的MAC地址是该MAC的报文将会被丢弃。
通过配置黑洞MAC地址表项,可以过滤掉非法用户。
MAC地址表的组成和作用MAC地址表的组成
MAC地址表是以MAC地址和VLAN ID或VSI为索引来唯一标识。当一台目的主机属于多个VLAN或VSI时,在MAC地址表中就会存在相同MAC地址拥有多个不同VLAN ID或VSI的情况。表1-2中是四条不同的MAC地址表项。如第一条MAC地址表项的作用是:从设备任意接口进入的目的MAC为0011-0022-0034,VLAN ID为10的报文,都会从GE接口转发出去。
表1-2  MAC地址表项[td]
MAC地址
VLAN ID/VSI名称
出接口
0011-0022-0034
10
GE
0011-0022-0034
20
GE
0011-0022-0035
30
Eth-Trunk20
0011-0022-0035
huawei
GE

MAC地址表的作用
MAC地址表用于指导报文进行单播转发。如图1-1中,PC1发往PC3的报文,在到达路由器Router时,根据报文中的目的MAC地址MAC3和VLAN10查询路由器的MAC地址表,获取出接口Port3,然后报文直接从接口Port3转发到PC3,完成数据的转发。
图1-1  基于MAC地址表的转发流程图

MAC地址学习和老化
MAC地址学习过程
一般情况下,MAC地址表是设备根据收到的数据帧里的源MAC地址自动学习而建立的。
图1-2  MAC地址学习示意图

图1-2,HostA向RouterA发送数据时,RouterA从数据帧中解析出源MAC地址(即HostA的MAC地址)和VLAN ID。
  • 如果MAC地址表中不存在该MAC地址表项,设备则将这个新MAC地址以及该MAC地址对应的PortA和VLAN ID作为一个新的表项加入到MAC地址表中。
  • 如果MAC地址表中已经存在该MAC地址表项,设备将通过重置该表项的老化时间,对该表项进行更新。
说明:
  • 如果PortA加入了Eth-TrunkA,则MAC地址表项的出接口就是Eth-TrunkA。
  • 路由器设备所有接口默认加入VLAN1,如果不做修改所有MAC地址表项的VLANID都是VLAN1。
  • 路由器设备对于BPDU MAC(形如:0180-c200-xxxx)不会进行MAC地址学习。


所以设备在收到数据帧时,才会触发MAC地址的学习和刷新。
MAC地址老化过程
为适应网络的变化,MAC表需要不断更新。MAC表中自动生成的表项(即动态表项)并非永远有效,每一条表项都有一个生存周期,到达生存周期仍得不到更新的表项将被删除,这个生存周期被称作老化时间。如果在到达生存周期前记录被更新,则该表项的老化时间重新计算。
图1-3  MAC地址老化过程示意图

图1-3所示,设备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地址表存在的时间。


游客,如果您要查看本帖隐藏内容请回复






















发表于 2021-8-17 09:43:23 | 显示全部楼层
感谢楼主共享
地板 2021-8-17 09:43:23 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-12-8 15:57:06 | 显示全部楼层
新手学习一下,感谢分享
8# 2021-12-8 15:57:06 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-12-9 16:03:49 | 显示全部楼层
thank you for sharing
9# 2021-12-9 16:03:49 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-12-9 16:47:03 | 显示全部楼层
thank you for sharing
10# 2021-12-9 16:47:03 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-12-9 16:47:37 | 显示全部楼层
thank you for sharing
11# 2021-12-9 16:47:37 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-3-12 14:41 , Processed in 0.094275 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表