DHCP Snooping和MAC地址漂移

前言:

  1. DHCP Snooping是DHCP(Dynamic Host Configuration Protocol)的一种安全特性,用于保证DHCP客户端从合法的DHCP服务器获取IP地址,并记录DHCP客户端IP地址与MAC地址等参数的对应关系,防止网络上针对DHCP攻击
  2. MAC地址漂移是指交换机上一个VLAN内有两个端口学习到同一个MAC地址,后学习到的MAC地址表项覆盖原 MAC地址表项的现象

DHCP Snooping

DHCP Snooping是DHCP的一种安全特性,用于保证DHCP客户端从合法DHCP服务器获取IP地址

DHCPSnooping主要是通过DHCPSnooping信任功能和DHCPSnooping绑定表实现DHCP网络安全


信任功能

 DHCP Snooping信任功能将接口分为信任接口和非信任接口

  • 信任端口:标记为信任的端口允许转发所有 DHCP 报文(包括客户端请求和服务端响应),通常用于连接合法的 DHCP 服务器或中继设备

  • 非信任端口:未标记的端口默认是非信任的,仅允许转发 DHCP 客户端请求(如 Discover、Request),拦截非法 DHCP 服务器的响应报文(如 Offer、ACK)

  • 设备只将DHCP客户端的DHCP请求报文通过信任接口发送给合 法的DHCP服务器,不会向非信任接口转发

DHCP Snooping绑定表

  • 当客户端通过 DHCP 获取 IP 时,交换机会监听 DHCP Ack 报文,并自动提取信息写入绑定表
  • 通过对报文与DHCP Snooping绑定表进行匹配检查,若匹配成功则转发该报文,匹配不成功则丢弃,这样可以过滤依据,防止 IP 欺骗

DHCP防饿死攻击原理

  1. 攻击方式
    攻击者利用工具(如 Kali Linux 中的 yersinia)伪造大量 DHCP Discover/Request 报文,每个报文使用不同的源 MAC 地址,快速请求 IP 地址,耗尽 DHCP 服务器的地址池资源。

  2. 分析
    DHCP服务器无法区分正常的申请者与恶意的申请者,合法用户无法获取 IP 地址,导致网络服务中断

  3. 解决方法 
    使用DHCP Snooping的绑定表工作模式,若攻击者使用随机MAC地址可以通过DHCP Snooping的MAC地址限制功能来防止,若攻击者使用固定MAC地址发送请求,绑定表中同一MAC的多次请求会被检测为异常

DHCP防止中间人攻击

  1. 攻击方式

    • 伪造DHCP服务器:攻击者部署恶意DHCP服务器,响应客户端的请求,分配错误的网关或DNS服务器地址(如将网关指向攻击者主机)

    • 流量劫持:客户端流量被引导至攻击者控制的设备,攻击者可窃取敏感数据(如密码)或篡改通信内容

    • 冒充DHCP客户端:中间人向服务器发送带有自己MAC 和客户端IP的报文,让服务器学到中间人的MAC,达到仿冒DHCP Client的目的

  2. 分析

    • 从本质上讲,中间人攻击是一种Spoofing IP/MAC攻击,中间人利用了虚假的IP地址与MAC地址之间的映射关系 来同时欺骗DHCP的客户端和服务器

  3. 解决办法

    • 信任端口与非信任端口隔离

    • 使用DHCP Snooping的绑定表工作模式

    • 配置端口安全限制MAC地址的数量

命令配置:

开启DHCP服务(必需前提)
[Huawei] dhcp enable

 全局启用DHCP Snooping功能
[Huawei] dhcp snooping enable

 进入VLAN视图(以VLAN 10为例)
[Huawei] vlan 10

 在该VLAN内启用DHCP Snooping
[Huawei-vlan10] dhcp snooping enable

进入连接DHCP服务器的接口
[Huawei] interface GigabitEthernet0/0/24

 标记该端口为信任端口(允许接收DHCP响应)
[Huawei-GigabitEthernet0/0/24] dhcp snooping trusted

 查看全局和VLAN状态
[Huawei] display dhcp snooping configuration

 查看接口信任状态
[Huawei] display dhcp snooping interface GigabitEthernet0/0/24

MAC地址漂移

   当一个MAC地址在两个端口之间频繁发生迁移时,即会产生MAC地址漂移现象

   产生的原因:

  1. 网络环路
    • 原因:网络中存在物理或逻辑环路(如未启用生成树协议STP,或STP配置错误),导致同一数据帧通过不同路径到达交换机,触发MAC表反复更新

    • 表现:同一MAC地址在多个端口被检测到,伴随广播风暴和高CPU占用率

  2. 攻击或欺骗
    • 原因:攻击者伪造源MAC地址发起泛洪攻击(如MAC Flooding),或通过ARP欺骗诱导交换机错误学习MAC地址

    • 表现:短时间内大量未知MAC地址涌入,导致合法MAC地址表项被覆盖

MAC地址漂移检测:

MAC地址漂移检测是对MAC地址漂移现象进行检测的功能。MAC地址漂移检测是利用MAC地址学习时接口跳变实现的,因此能提供的信息与MAC地址学习相关,包括MAC地址、VLAN,以及跳变的接口等诊断信息。其中跳变的接口即为可能出现环路的接口。网络管理员根据网络中每台设备上出现的跳变接口,以及网络拓扑,判断环路的源头

基于VLAN的MAC地址漂移检测

  • 该功能可以检测指定VLAN下的所有的MAC地址是否发生漂移
  • 当MAC地址发生漂移后,可以配置指定的动作,例如告警、阻断接口或阻断MAC地址
mac-address flapping detection vlan <vlan-id>  
 例如VLAN 10

动作1:仅记录日志(默认)
mac-address flapping trigger alarm vlan <vlan-id>
动作2:自动关闭端口(Error-Down)
mac-address flapping trigger error-down vlan <vlan-id>

全局MAC地址漂移检测

  • 该功能可以检测设备上的所有的MAC地址是否发生了漂移
  • 若发生漂移,设备会上报告警到网管系统
  • 用户也可以指定发生漂移后的处理动作,例如将接口关闭或退出VLAN
mac-address flapping detection   
 全局启用MAC漂移检测

mac-address flapping trigger alarm
 动作1:仅记录日志(默认)
mac-address flapping trigger error-down 
 动作2:自动关闭端口(Error-Down)并设置恢复时间
error-down auto-recovery cause mac-address-flapping interval 300  
 300秒后自动恢复
禁止同优先级端口漂移
undo mac-learning priority allow-flapping
 配置端口优先级 数越大优先级越高
interface GigabitEthernet0/0/1
 mac-learning priority <0-3> vlan <vlan-id>
添加MAC地址白名单
mac-address flapping detection vlan <vlan-id> exclude-mac <MAC地址>

配置MAC地址漂移检测功能
loop-detect eth-loop { [ block-mac ] block-time block-time retry-times retry-times |(或者) alarm-only }
 block-mac 启用MAC地址阻断功能 block-time 设置MAC地址被阻塞的持续时间
 retry-times 在解除阻塞后,重新检测环路的次数 alarm-only 仅触发告警

防止MAC地址的漂移

 根本措施:

  • 消除网络环路: 如启用生成树协议(STP/RSTP/MSTP)
  • 检查冗余链路

直接防御:

  •  配置端口安全 :如 限制端口学习MAC数量
  • 静态绑定关键设备的MAC地址

防御网络攻击(安全加固)

如启用:DHCP Snooping


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值