DHCP
DHCP:动态主机配置协议,基于 UDP 的 67 68 端口进行工作
DHCP 报文:
discover:用来发现和寻找 DHCP 服务器(广播)
offer:用于承载服务器为客户提供的 IP 地址(单播)
request:用于请求和续租 IP 地址(广播、单播)
- 当客户端正常请求 IP 地址的时候是广播 request
- 50% 发送单播的 request 报文,请求对 IP 地址续租
- 87.5% 发送广播的 request 报文,请求重新绑定 IP 地址
ACK:服务器用于确认客户端的请求报文(单播)
NAK:服务器用于拒绝客户端的请求报文(单播)
DHCP 配置实现

DHCP 地址分配顺序:
- 静态固定分配的
- PC 使用 Option 55 指定请求某个 IP 地址
- 曾经分配给该客户的IP地址
- 选择 idle 状态的地址,即空闲地址,按从大到小的顺序分配
- 选择已经回收的地址,和处于冲突状态的地址
DHCP 中继(DHCP Relay)

使用 DHCP 可以跨越二层广播域传递,这样 DHCP server 就可以收到地址分配请求信息
配置:Huawei-Vlanif10 dhcp select relay //开启 DHCP 中继功能
Huawei-Vlanif10 dhcp relay server-ip + 指定DHCP服务器的IP地址 //指定 DHCP 服务器的IP地址
DHCP 中继会将 DHCP Request 广播请求以单播的方式转发给 DHCP Server
在 DHCP Server 上添加下一跳的静态地址
当出现多个 DHCP Server 时,可以在 DHCP 中继上配置多个下一跳,配置完成后需要在全局模式下开启负载功能:ip relay address cycle ,每发送一条就会切换下一跳
配置实现

图片中的 DHCP 中继使用的地址组,可以添加多个 DHCP-Server,配置完成之后,只需要在接口下启用这个组就可以
DHCP 中出现的攻击
1、DHCP 饿死攻击
攻击者模仿 DHCP 请求者频繁发送 DHCP 请求,以此来将 DHCP Server 中的 IP 地址消耗殆尽,导致 DHCP Server 无妨正常分配地址
2、模仿 DHCP Server 攻击
攻击者模仿 DHCP Server 向请求者发送错误的 IP 地址和 网关,导致客户端无法正常上网
3、中间者攻击
类似于 ARP 欺骗,DHCP 请求者请求 DHCP Server 的途中,中间者会将请求者和回复者的 MAC 地址转换为自己的 MAC
DHCP Snooping(DHCP 防护)
在交换机上配置,分为全局下开启和接口下开启
如何防止饿死攻击:
开启了 DHCP Snooping 的交换机,收到 DHCP Requeest 之后,将会对比这个 DHCP 报文中的 CHADDR 和数据链路层中的源 MAC 地址是否相同,如果不同,则判定为非法报文,交换机直接丢弃
配置
Huawei dhcp enable //开启 DHCP 功能
Huawei dhcp snooping enable //只支持了dhcp snooping 功能,但没有启用
Huawei-g0/0/1 dhcp snooping check dhcp-chaddr enable //该接口下开启二层源 MAC 和 CHADDR 一致性检查
Huawei-g0/0/1 dhcp snooping max-user-number 5 //修改此接口下的最大绑定数目 5
Huawei-g0/0/1 dhcp snooping sticky-mac //根据 DHCP Snooping 表项形成静态 MAC 地址表,同时关闭接口的 MAC 地址学习功能,同时将收到的报文丢弃
Huawei-g0/0/1 mac-address learning disable action discard/forward //关闭此接口的MAC 地址学习,如果不学习,将此接口的信息丢弃/转发
如何防止模仿 DHCP Server 攻击:
当在交换机上开启了 DHCP Snooping 功能之后,交换机的接口分为两类:信任接口和非信任接口
非信任接口:收到 DHCP Request 消息,只会转发给信任接口,如果没有信任接口,报文将会被丢弃
收到 DHCP Relay 消息,将会直接丢弃
信任接口:收到 DHCP Request 消息,只会转发给除了本接口以外的所有信任接口,如果没有其他信任接口,报文将会被丢弃
收到 DHCP Relay 消息,将会转发给相应的客户端
默认只要开启了 DHCP Snooping 功能的接口都是非信任接口
接口下:dhcp snooping trusted //配置接口为信任接口
如何防止 DHCP 中间者攻击:
开启 DHCP Snooping 的交换机,收到 ARP 报文之后,将会读取 ARP 报文中的源 MAC 地址和源 IP 地址,和 Snooping 绑定表做匹配检查
如果匹配检查不一致,那么将会判断此 ARP 报文不是合法报文,将丢弃此 ARP 报文
系统视图下执行配置命令:arp dhcp-snooping-detect enable //开启 ARP 报文和 Snooping 绑定表匹配检查功能
IPSG(静态源表项保护):
作用:主要用于防止源 IP 地址欺骗攻击
实现原理:通过在交换机上配置绑定表(IP MAC VLAN IP 端口)来针对收到的 IP 报文进行匹配检查(基于 IP 封装的数据报文),如果报文不符合绑定表,则报文被丢弃
两种绑定表项:
- 静态绑定表:需要人为手动配置的绑定表项
- 冬天绑定表:基于 DHCP Snooping 功能产生的 snooping 表项来进行实现保护
配置:
Huawei user-bind static ip-address 192.168.1.1 mac-address + IP对应的MAC +interface +IP对应的接口 + IP对应的vlan //创建静态表项
端口或者 VLAN 下:ip source check user-bind enable //开启 DHCP Snooping 与 IPSG 的联动功能,即基于 Snooping 实现的 IPSG 功能