对于DHCP来说,可能有些朋友已经了若指掌了。那么那些新手朋友可能对 DHCP Snooping这部分内容还有所疑惑。这里我们就来讲解一下 DHCP Snooping的知识。希望对大家有用。首先让我们看看DHCP服务器的客户端和服务端的相关工作流程是什么样的。
DHCP Client 发出 DHCP DISCOVER广播报文给 DHCP Server,若 Client 在一定时间内没有收到服务器的响应,则重发 DHCP DISCOVER 报文。DHCP Server收到 DHCP DISCOVER报文后,根据一定的策略来给 Client 分配资源(如 IP 地址),然后发出 DHCP OFFER报文。DHCP Client 收到 DHCP OFFER报文后,发出 DHCP REQUEST请求,请求获取服务器租约,并通告其他服务器已接受此服务器分配地址。
服务器收到 DHCP REQUEST报文,验证资源是否可以分配,如果可以分配,则发送 DHCP ACK 报文;如果不可分配,则发送 DHCP NAK 报文。DHCP Client收到 DHCP ACK 报文,就开始使用服务器分配的资源。如果收到 DHCP NAK,则重新发送 DHCP DISCOVER报文。
理解DHCP Snooping
DHCP Snooping 就是 DHCP 窥探,通过对 Client 和服务器之间的 DHCP 交互报文进行窥探,实现对用户的监控,同时 DHCP Snooping起到一个 DHCP 报文过滤的功能,通过合理的配置实现对非法服务器的过滤。下边对 DHCP Snooping内使用到的一些术语及功能进行一些解释:
DHCP Snooping TRUST 口:由于 DHCP 获取 IP的交互报文是使用广播的形式,从而存在着非法服务器影响用户正常 IP 的获取,更有甚者通过非法服务器欺骗窃取用户信息的现象,为了防止非法服务器的问题,DHCP nooping 把端口分为两种类型, TRUST口和UNTRUST口,设备只转发TRUST口收到的DHCP Reply报文,而丢弃所有来自UNTRUST口DHCP Reply报文,这样我们把合法的DHCP Server 连接的端口设置为 TURST 口,其他口设置为 UNTRUST 口,就可以实现对非法 DHCP Server 的屏蔽。
DHCP Snooping 绑定数据库:在 DHCP 环境的网络里经常会出现用户私自设置IP 地址的问题,用户私设 IP 地址不但使网络难以维护,并且会导致一些合法的使用 DHCP 获取 IP 的用户因为冲突而无法正常使用网络, DHCP Snooping通过窥探 Client 和 Server 之间交互的报文,把用户获取到的 IP信息以及用户 MAC、VID、PORT、租约时间等信息组成一个用户记录表项,从而形成一个 DHCP Snooping 的用户数据库,配合 ARP检测功能的使用,从而达到控制用户上网的目的。
DHCP Snooping 就是通过对经过设备的 DHCP 报文进行合法性检查,丢弃不合法的 DHCP 报文,并记录用户信息生成 DHCP Snooping 绑定数据库供 ARP 检测查询使用。以下几种类型的报文被认为是非法的 DHCP 报文:
1. UNTRUST 口收到的 DHCP reply 报文,包括 DHCPACK、DHCPNACK、DHCPOFFER 等。
2. 打开 mac 校验时,源 MAC 与 DHCP 报文携带的 DHCP Client 字段值分别为不同的报文。
3. 用户的信息存在于 DHCP Snooping 绑定数据库中,但是端口信息与设备保存在DHCP绑定数据库中的信息中的端口信息不一致的DHCPRELEASE报文。