DHCP原理-中继-DHCP Snooping
DHCP:动态主机配置协议,基于UDP的67 68端口进行工作。
Discover:用来发现和寻址DHCP服务器的。 (广播)
Offer:用于请求和续租IP地址。 (单播)
Request:用于请求和续租IP地址。 (广播/单播)
1.当客户端正常请求IP地址的时候是广播的Request
2.50%发送单播的Request报文,请求对IP地址进行续租
3.87.5%发送广播Request报文,请求重绑定IP地址。
ACK:服务器用于确认客户端的请求报文。 (单播)
正常情况,只交互上述4种报文,客户端即可获得IP地址。
华为DHCP地址分配顺序:
1.静态固定分配;
2.pc使用Option55指定请求某个IP地址;
3.曾经分配给该客户端的;
4.选择idle状态的地址,即空闲地址(从打到小开始分配);
5.选择已经回收的地址,和处于冲突状态的IP地址。
DHCP报文分为两大类:
Request:只要客户端发送的报文消息类型都是请求。
Reply:只要是服务发送的报文消息类型都是相应的报文。
中继
ip relay address cycle命令用来使能DHCP中继的轮询功能
[Huawei]dhcp snooping enable //代表支持了功能但是没有启用,具体需要在接口或者Vlan下开启
[Huawei-vlan1]dhcp snooping enable
如何防止饿死攻击
开启了DHCP Snooping的交换机,收到DHCP Request消息之后,将会对比这个DHCP报文中的CHADDR和数据链路层中的源MAC地址是否相同,如果不通,则判断为非法报文,直接被交换机丢弃。
接口或系统视图下针对vlan开启: dhcp snooping check dhcp-chaddr enable 开启二层源mac和chaddr一致性检查。
变异:
攻击者产生的DHCP报文,把数据链路层的源mac地址和DHCP报文中的CHADDR同时修改,那么将会躲掉DHCP SNooping一致性检查。
dhcp snooping max-user-number //设置接口可以形成的绑定表数量
dhcp snooping sticky-mac //根据DHCP snooping表项形成静态Mac地址表,同时关闭接口的mac地址学习功能。
同时接口自动启用如果不能进行源mac学习,就会把报文丢弃。
mac-address learning disable action discard //如果接口不能进行源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 id 、端口),来针对收到了IP报文进行匹配检查。(基于IP封装的数据报文)如果报文不符合绑定表,则报文被丢弃。
两种绑定表项:
1.静态绑定表:需要人为手动配置的绑定表项
[huawei]user-bind static ip-address 192.168.1.1 mac-address 5489-9423-87be interface g0/0/2 vlan 1 //创建静态绑定表
2.动态绑定表:基于DHCP snooping 功能产生的snooping表项来进行实现保护,(说白了就是DHCP Snooping的表项,而我们是通过这个snooping绑定表项来实现IPSG的功能。)
配置:
端口或者VLan下:ip source check user-bind enable //开启dhcp snooping 与IPSG的联动功能,即基于snooping表项实现IPSG的功能。
