HCIE-Routing&Switching-LAN-MAC地址表

 

 

一、MAC地址的基础


1、作用:

数据的封装和解封装
定义网络设备的位置

组成:总共48Bit,前24bit是通过向IETF等机构申请用来标识厂商的代码,后24bit由是厂商分配给产品的唯一数值
例如:华为00-e0-fc

2、分类:

(1)物理MAC地址:MAC地址的第8bit为0,唯一标识以太网上的一个终端,是全球唯一的硬件地址
(2)广播地址:全为1的MAC地址,用来标识LAN上面的所有终端
(3)组播MAC地址:MAC地址的第8bit为1,标识LAN上面的一组终端

补充:
(1)如果是终端设备,那么一个网卡就会有一个MAC地址
(2)如果是路由器,那么路由器的接口都是三层接口,所以每一个接口(以太网接口)都会存在一个MAC地址,如果是串行接口,接口是没有MAC地址的。 

  • 扩展问题:常见的组播MAC地址有哪些?

01-80-C2-00-00-14  ISIS L1的hello报文
01-80-C2-00-00-15  ISIS L2的hello报文
01-80-C2-00-00-00  BPDU发送的目的MAC地址
01-00-5e-0x-xx-xx  用于IPv4组播MAC地址(根据组播IP地址映射)
33-33-xx-xx-xx-xx  用于IPv6

  • 扩展问题:交换机收到一个数据帧,如何判断是二层转发还是三层转发?

如果收到的数据帧是交换机本身,进行三层转发;
如果收到的数据帧不是交换机本身,进行二层转发

二层交换:
设备通过解析和学习以太网帧的源MAC来维护MAC地址与接口的对应关系(保存MAC与接口对应关系的表称为MAC表),通过其目的MAC来查找MAC表决定向哪个接口转发

三层交换:
在完成对收到的第一个新数据流进行路由后,产生一个MAC地址与IP地址的映射表,当具有相同地址信息的数据流再次通过时,即根据此表直接在二层完成转发,即“一次路由,多次交换”,有效提高了数据包转发的效率。

3、交换机对数据帧的处理行为:

(1)泛洪:从交换机的一个接口收到数据帧,从所有的接口发出(广播帧,组播帧,未知单播帧)

(2)转发:从交换机的一个接口收到数据帧,从其他的特定的接口发出(已知单播帧)

(3)丢弃:从交换机的一个接口收到数据帧又从改接口发出;数据帧的大小小于64B(重复帧)

  • 扩展问题:交换机收到组播MAC数据帧一定会进行泛洪?

当交换机开启igmp snooping侦听机制就不会执行泛洪。

 

二、MAC地址表的形成


1、组成内容:[Huawei]dis mac-address

MAC地址--VLAN--接口--MAC地址表形成的类型

2、MAC地址表的分类

作用:指导交换机转发数据

分类:

(1)动态表项:通过接口学习源MAC地址,生成MAC地址表项,表项自动老化。

作用:

a、通过查看动态表项,可以判断俩台设备之间是否有数据交互

b、通过查看动态表项,可以获取接口下的通信用户


(2)静态表项:由用户手工配置,表项不老化

作用:通过静态表项可以保证合法用户的使用,防止其他用户使用该MAC进行攻击

[Huawei]mac-address static 5489-9850-50CC g0/0/01 vlan 1

(3)黑洞表项:用于丢弃含有特定源MAC和目的MAC的数据帧,由用户手工配置,表项不老化

作用:可以过滤非法用户

备注:在系统复位、接口板热插拔或接口板复位后,动态表项会丢失,而保存的静态表项和黑洞表项不会丢失。

配置:[Huawei]mac-address blackhole 5489-9870-286B vlan 1

 

三、端口安全

 

1、背景:

MAC地址表项是有规模的,当攻击者修改自身的MAC地址发包,原先的表项就会存在溢出的情况,当有PC访问被溢出的地址时,由于MAC地址表不存在,所有会进行泛洪的动作,消耗设备的开销。

2、作用:

(1)通过限制接口学习MAC地址的数量,提高安全性
(2)通过接口学习到的MAC地址转化为安全MAC地址,阻止非法用户通过本接口和交换机通信,提供设备的安全性

3、分类:

(1)安全动态MAC地址:开启端口安全并且不使能sticky MAC地址功能后转换为的MAC地址

特点:设备重启会丢失表项,需要重新学习;缺省情况下不会被老化,只有在配置老化时间后才会

(2)安全静态MAC地址:开启端口安全时手工配置的的静态MAC地址

特点:不会被老化,重启后不会表项不会丢失

(3)sticky MAC地址:开启端口安全并且使能sticky MAC地址功能后转换为的MAC地址

特点:不会被老化,重启后不会表项不会丢失

4、端口安全保护动作:

restrict:丢弃源MAC地址不存在的报文并且上报告警

protect:丢弃源MAC地址不存在的报文

shutdown:接口状态被置为error-down,并上报告警

5、端口安全经常使用在以下两种场景:

应用在接入层设备,通过配置端口安全可以防止仿冒用户从其他端口攻击。

应用在汇聚层设备,通过配置端口安全可以控制接入用户的数量。

接入层使用时注意:

如果接入用户变动比较频繁,可以通过端口安全把动态MAC地址转换为安全动态MAC地址。这样可以在用户变动时,及时清除绑定的MAC地址表项。
如果接入用户变动较少,可以通过端口安全把动态MAC地址转换为Sticky MAC地址。这样在保存配置重启后,绑定的MAC地址表项不会丢失。

配置:
interface GigabitEthernet0/0/1
port-security enable
port-security max-mac-num 1 限制接口学习数量
port-security protect-action shutdown 保护行为
port-security mac-address sticky
port-security aging-time X 配置老化时间

查看方式:
[Huawei]dis mac-address sticky 查看sticky MAC地址
[Huawei]dis mac-address security 查看安全动态MAC地址

 

四、MAC地址漂移


1、定义:设备上一个VLAN内的俩个端口学习到同一个MAC地址,后学习到的MAC地址表现覆盖前面学习的表项

2、出现场景:
(1)环路
(2)攻击者接入

造成的影响:MAC地址表的动荡,数据包无法正常到达目的地的,消耗设备的性能

3、如何避免MAC地址漂移

(1)提高接口MAC地址学习的优先级--默认为0,越大越优先,低优先级不能覆盖高优先级

[Huawei-GigabitEthernet0/0/2]mac-learning priority 3

(2)不允许相同优先级的接口发生MAC地址表项覆盖--主机频繁移动的场景不适用

[Huawei]undo mac-learning priority 0 allow-flapping

(3)IPSG:基于绑定表对IP报文和MAC地址进行匹配检查
(4)STP等二层破环协议
(5)配置MAC-spoofing-defend功能

应用场景
由于用户侧的行为无法控制,可能发生用户侧仿冒网络侧服务器MAC地址发送报文,造成其他用户无法访问网络侧服务器。使用该命令将网络侧接口配置为信任接口后,该接口学习到的MAC地址在其他接口将不会再学习到,可以防止用户侧仿冒网络侧服务器MAC地址发送报文。
如果需要将接口配置为信任接口,需要先使用使能全局MAC-spoofing-defend功能。

 

【扩展问题】关闭接口MAC地址学习功能:
可以在出现攻击的接口配置: mac-address learning disable

场景:网络管理人员为提高设备的安全性,可以指定某些接口只允许某些MAC地址的报文通过。如某接口固定与某台服务器相连,可以在该接口上配置该服务器的静态MAC地址,且关闭该接口的MAC地址学习功能,指定动作为丢弃。这样其他服务器或终端将无法通过该接口通信,增强了网络的稳定性和安全性 

 

4、MAC地址漂移检测
(1)基于全局检测(检测设备上所有的MAC地址是否发生了漂移)
默认是开启的,默认安全级别是middle:MAC地址发生10次迁移后,系统认为MAC地址漂移

MAC地址漂移的处理动作:触发接口error-down或者退出VLAN操作(缺省情况下没有开启处理动作)

配置:接口下
mac-address flapping trigger quit-vlan (发生漂移退出vlan到Vlan1)
或者mac-address flapping trigger error-down(发生漂移将接口down)

全局视图:
error-down auto-recovery cause mac-address-flapping interval 50(接口发生漂移被down后恢复的时间)
mac-address flapping quit-vlan recover-time 20(退出vlan恢复时间,默认为10S)
mac-address flapping aging-time 60 (配置MAC地址漂移表项的老化时间,默认为300S)


(2)基于VLAN检测

MAC地址漂移的处理动作:触发接口error-down或者发送告警

配置: VLAN视图

loop-detect eth-loop alarm-only ///一旦交换机检测到该VLAN内发生了MAC地址漂移,交换机仅仅产生相应的告警信息(不会阻塞发生MAC地址漂移的接口)


loop-detect eth-loop block-mac block-time 10 retry-times 2 //如果检测到漂移则将接口堵塞,接口将被阻塞10s,10s之后接口会被放开并重新进行检测,此时该接口可以正常收发数据;如果20s内没有再检测到MAC地址漂移,则接口的阻塞将被彻底解除;但是如果20s内再次检测到MAC地址漂移,则再次将该接口阻塞,最大重复次数为2次(用retry-times关键字指定),如果交换机依然能检测到该接口发生MAC地址漂移,则永久阻塞该接口。

 

【扩展问题】特殊场景:mac-address flapping detection exclude vlan X
•关闭特定的VLAN的MAC地址漂移检测,可以针对VRRP的场景。
•Server在这两张网卡上部署了负载分担模式的网卡绑定,即将Eth1及Eth2捆绑成一个逻辑接口,并且将外出的流量在Eth1及Eth2这两个物理接口上进行负载分担。

posted @ 2021-08-31 11:44  精舞门2020  阅读(293)  评论(0编辑  收藏  举报