MAC地址
简介
MAC: Media Access Control
作用
定义网络设备的位置
组成
- 48比特长、12位的16进制数组成
- 0-23bit是厂商向IETF等机构申请用来标识厂商的代码
- 24-47bit由厂商自行分派,某张网卡的一个唯一编号
地址类型
1、单播MAC地址
- 特征:第8bit为0
- 作用:唯一的标识了以太网上的一个终端,全球唯一的硬件地址
2、广播MAC地址
- 特征:全为 1 的MAC地址(FF-FF-FF-FF-FF-FF)
- 作用:LAN上所有的终端设备
3、组播MAC地址
- 特征:除了广播地址外,第8bit为 1 的MAC地址为组播MAC地址(01-00-00-00-00-00)
- 作用:LAN上的一组终端
转发行为
1、泛洪
- 事件:当交换机收到未知单播帧(不能从MAC地址表中查找到相应的出接口的单播帧)、广播帧或组播帧时
- 处理:将该帧从接收端口以外的其他端口发送出去
2、转发
- 事件:当交换机收到已知单播帧
- 处理:从MAC地址表对应的出接口转发
3、丢弃
- 事件:接收到的单播帧的发送端口与接受端口一致(自己发送给自己)
- 处理:丢弃
MAC表建立过程
自动学习
- 从数据帧中解析出源MAC地址和VLAN ID
- 表项中不存在,新增表项,包含:
- MAC地址
- MAC地址对应的端口号
- VLAN ID
- 表项中已存在,则
- 重置该表项的老化时间(300s)
- 更新
定义和分类
定义
1、地址表的条目
- MAC地址
- 对应的接口
- VLAN ID
2、转发过程
- 通过目的MAC地址查找表
- 存在,在出接口进行转发
- 不存在,广播
- 除接收接口
- VLAN ID相同的接口
分类
1、动态表项
- 特点
- 学习获得。源MAC地址以及进入的接口
- 可老化。默认时间为300s
- 存在丢失。1)系统复位;2)接口板热插拔;3)接口板复位
- 作用
- 数据转发。查看动态表项,可以判断两台设备之间是否有数据转发
- 接口下通信的用户数。查看指定动态MAC地址表项的个数,可以获取接口下通信的用户数
2、静态表项
-
特点
- 用户手工配置,并下发到各接口板,表项不可老化
- 表项不会丢失。1)系统复位;2)接口板热插拔;3)接口板复位
- 报文丢弃的情况。接口和MAC地址静态绑定后,其他接口收到源MAC是该MAC地址的报文将会被丢弃
- 唯一绑定。一个静态MAC地址表项,只能绑定一个出接口
- 不影响动态表项的学习。不会影响该接口动态MAC地址表项的学习
-
作用
- 可以保证合法用户的使用
- 防止其他用户使用该MAC地址进行攻击
3、黑洞表项
-
特点
- 用户手工配置,并下发到各接口板,表项不可老化
- 表项不会丢失。1)系统复位;2)接口板热插拔;3)接口板复位
- 对应的源,目的MAC地址报文被丢弃
-
作用
- 过滤非法用户
学习与老化
1、假设MAC地址的老化时间设置为T
2、考虑下一个新增条目的生命周期
- 检查报文的源MAC地址
- 存在则更新表项,将标志位置为 1
- 不存在则新增表项,标志位为 1
- 在设备周期到达,对所有学习到的动态MAC地址表项进行检查
- 将标志位为 1 的置为 0
- 将标志位为 0 的删除
学习控制
1、问题
- MAC地址表的容量有限
- 当黑客伪造大量源MAC地址不同的报文发送到设备后,设备上的MAC地址表项资源可能会被耗尽
2、影响
- 当MAC表被填满后,即使它再收到正常的报文,也无法学习到报文中的源MAC地址,导致报文广播转发,浪费带宽资源
3、解决方法
- 关闭某个VLAN或接口的学习MAC能力
- 无法学习到新的动态MAC地址表项
- 之前学习到的动态表项在老化时间到达后自动删除,也可以手动删除
- 限制基于VLAN或接口的MAC地址数
- 最多只能学习到指定限制的MAC地址表项
- 达到限制数时,设备会上报告警信息通知网络管理员进行维护
- 达到限制数后,不在学习新的MAC地址表项,同时源MAC地址不包含在MAC地址表中的报文将被丢弃
- 典型应用场景
- 多数情况下,一个黑客发送的攻击报文是从同一个接口进入设备,在进行学习控制后,可避免攻击报文将整个设备的MAC地址表填满
- 基于VLAN和接口进行MAC地址数限制,也可以应用在限制终端用户数的场景中
MAC地址漂移
指设备上一个VLAN内有两个端口学习到同一个MAC地址,后学习到的MAC地址表项覆盖原MAC地址表项的现象
1、出现的原因
- 存在环路
2、相关现象
- CPU占用率会有不同程度的升高
3、漂移检测
- 利用MAC地址出接口跳变的现象
- 跳变的接口可能为出现环路的接口
4、处理
- 如果告警仅出现一次,可以不用关注。
- 如果告警间隔连续出现,请根据告警中提示漂移前接口名和漂移后接口名,通过shutdown漂移后接口的方法,先排查环路出现的位置,然后再根据组网进行破环。
- 根据告警信息,手工排查网络的源头
- 漂移检测提供的后续动作,使跳变的端口down或VLAN从端口中退出,实现自动破坏
5、如何防止
- 提高接口MAC地址学习优先级。当不同接口学到相同的MAC地址表项时,高优先级接口学到的MAC地址表项可以覆盖低优先级接口学到的MAC地址表项
- 不允许相同优先级的接口发生MAC地址表项覆盖
- 当伪造网络设备所连接口的优先级与安全的网络设备相同时,后学习到的伪造网络设备的MAC地址表项不会覆盖之前正确的表项
- 但如果网络设备下电,仍会学习到伪造网络设备的MAC地址,当网络设备再次上电时将无法学习到正确的MAC地址
6、命令
- 进入系统视图
- system-view
- 开启/关闭漂移检查
- mac-address flapping detection
- undo mac-address flapping detection
- 查看漂移信息
- display trapbuffer
- display mac-address flapping record
MAC刷新ARP表
-
一般来说设备上的MAC表项和ARP表项的出接口是一致的。但是当端口切换后,ARP表项需要等到老化时间到达收,在通过ARP老化探测,才会刷新。在这个时间段内,ARP表项的出接口是不可用的,会导致不同网段间设配的通信中断
-
MAC 刷新 ARP 可以实现在 MAC 出接口更新时, 直接刷新 ARP 表项的出接口的功能。解决了 T2 时间点和 T3 时间点之间, ARP 表项出接口不可用的问题, 避免了业务通信的中断。
-
在数据中心虚拟化场景中,当 VM 位置发生迁移时,会出现上面讨论的情况。配置 MAC 刷新 ARP 之后, VM 位置发生迁移, 当用户的二层流量刷新网关设备的 MAC 表项时
- ARP 表项存在, MAC 表项和 ARP 表项的出接口不一致, 则通过 MAC 表项刷新 ARP 表项,更新出接口信息, 加速三层流量的收敛。
- ARP 表项不存在, 根据 MAC 查找广播抑制表, 重新发起一次 ARP 探测, 刷新 ARP 表项,更新出接口信息, 加速三层流量的收敛。
-
命令
- system-view
- mac-address update arp
端口安全
1、通过将接口学习到的动态 MAC 地址转换为安全 MAC 地址(包括安全动态 MAC、 安全静态 MAC 和 Sticky MAC) , 阻止非法用户通过本接口和交换机通信,从而增强设备的安全性。
2、安全MAC地址分类
- 安全动态MAC地址。开启端口安全而未开启 Sticky MAC 功能时转换的 MAC 地址
- 安全静态MAC地址。开启端口安全而未开启 Sticky MAC 功能时转换的 MAC 地址
- Sticky MAC地址。开启端口安全后又同时开启 Sticky MAC 功能后转换到的 MAC 地址
3、接口开启端口安全功能时, 接口上之前学习到的动态 MAC 地址表项将被删除, 之后学习到的 MAC 地址将变为安全动态 MAC 地址。
4、接口开启 Sticky MAC 功能时, 接口上的安全动态 MAC 地址表项将转化为 Sticky MAC 地址, 之后学习到的 MAC 地址也变为 Sticky MAC 地址。
5、接口去开启端口安全功能时, 接口上的安全动态 MAC 地址将被删除, 重新学习动态 MAC地址。
6、接口去开启 Sticky MAC 功能时, 接口上的 Sticky MAC 地址, 会转换为安全动态 MAC 地址。
问答
1、交换机收到一个未知单播帧如何处理?
答: 首先查看本地 MAC 地址表中有没有该单播数据帧的源 MAC 对应的表项, 如果有,则刷新, 如果没有, 则创建一个。 然后将该未知单播帧泛洪。
2、交换机怎么识别数据帧是单播、 组播、 广播, 并且怎么处理的?
答: 根据数据帧中的目的 MAC 地址识别, 如果 MAC 地址第 8 个 bit 为 1 , 则为组播或广播 MAC 地址, 泛洪处理; 如果第 8 个 bit 为 0 , 则为单播 MAC 地址, 根据 MAC地址表信息进行转发、 泛洪或丢弃, 具体机制见本章交换机转发行为。 此时需要看题目有没有 IGMP Snooping 对组播数据帧的处理
3、未知单播帧的泛洪和广播帧泛洪的区别?
答: 如果数据帧的目的 MAC 地址不在本地的 MAC 地址表中, 则进行泛洪处理; 如果数据帧的目的 MAC 地址为全 F ( 48 个 bit 的 1 ) , 则泛洪处理。
4、二层广播和三层广播的区别?
答: 从产生原因来说, 二层广播是由于不知道目的 MAC 而产生的, 而三层的广播是由于应用层协议的需求产生的, 比如 DHCP 的 Discover 报文或 RIPv1 的 Request 报文等; 从处理角度来说, 交换机对于二层广播和三层广播处理都是广播域内泛洪, 而路由器对于三层广播目的地址 255.255.255.255 的数据包上送 CPU 处理, 对于二层 ARP 广播数据帧可以开启 ARP 代理处理。 所以可以说二层的交换机隔离了冲突域, 但是没有隔离广播域, 而三层的路由器可以终结广播, 但是仍然可以处理广播。
5、什么是 MAC 地址表漂移? 如何进行 MAC 地址漂移检测?
答:(1) MAC 地址漂移是指设备上一个 VLAN 内有两个端口学习到同一个 MAC 地址, 后学习到的 MAC 地址表项覆盖原 MAC 地址表项的现象。
(2) MAC 地址漂移检测是利用 MAC 地址出接口跳变的现象, 检测 MAC 地址是否发生漂移的功能。

浙公网安备 33010602011771号