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 封装的数据报文),如果报文不符合绑定表,则报文被丢弃 两种绑定表项: 1. 静态绑定表:需要人为手动配置的绑定表项 2. 冬天绑定表:基于 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 功能