5.3.1 过滤非法的DHCP服务器

5.3.1 过滤非法的DHCP服务器

每个网络通常部署不超过一台DHCP服务器,过多的DHCP服务器会影响正常的DHCP服务,使用户从错误的服务器获得无效IP或造成IP地址冲突。私设DHCP服务器可能是有意的,如恶意用户设置非法的DHCP服务器窃取用户信息或者干扰网络;也可能是无意的,如网络中个别用户使用Windows Server 2008之类的服务器操作系统忘了关闭DHCP服务,或者是一些接入层的端口连接有TPLINK,DLINK这样的无线路由器,开启了DHCP分配IP的服务。

DHCP Snooping 把端口分为两种类型:TRUST口和UNTRUST口,设备只转发TRUST口收到的DHCP 应答报文,而丢弃所有来自UNTRUST口的DHCP应答报文。这样,我们把合法的DHCP Server连接的端口设置为TRUST口,其他口设置为UNTRUST口,就可以实现对非法DHCP Server 的屏蔽。

图5-11中在三层交换机上配置DHCP Server,在二层交换机上开启DHCP Snooping功能。三层交换机可由二层交换机或服务器代替,只要能提供DHCP服务即可。

按照图5-11的拓扑连接网络,暂时不连接交换机之间的f0/24端口的线路,计算机配置为DHCP动态获得IP,首先在三层交换机上配置DHCP服务,配置指令如下。

图5-11 DHCP Snooping功能演示拓扑

在二层交换机上开启DHCP Snooping,配置指令如下。

全局开启DHCP Snooping功能后,只有配置为TRUST端口连接的服务器发出的DHCP响应报文才能够被转发,而默认情况下所有端口都为UNTRUST口,即此时二层交换机不转发任何一个端口收到的DHCP响应报文。

连接交换机之间f0/24端口的线路,虽然在物理上已经连通了,但因为二层交换机的所有端口全部为UNTRUST口,所以此时3台计算机都无法获取IP地址。端口上启用DHCP Snooping的DHCP请求报文抑制子功能后,这个端口将不会转发收到的DHCP请求报文,当不想对某个端口下的用户提供DHCP服务时,可以配置此功能。

在二层交换机上将端口f0/24配置为TRUST口,配置指令如下。

在3台计算机的命令提示符窗口中使用“ipconfig”查看IP地址,只有PC1获得地址:1.1.123.1。原因是f0/2和f0/3端口被抑制转发DHCP请求报文,在二层交换机上配置端口f0/2取消抑制,配置指令如下。

现在PC2可以从DHCP服务器获取IP了,获得的IP是1.1.123.2。在端口上设置DHCP请求报文抑制功能后,仅仅不转发此端口接收到的DHCP请求报文,对于其他报文并不过滤,因此在PC3上手动配置IP地址1.1.123.2/24,网关1.1.123.254,仍然能够接入网络,并且能够与PC1、PC2和网关通信。在三层交换机上查看IP分配情况如下。