|
[摘要] 本文先介绍了DHCP及DHCP欺骗的工作原理,然后给出了防范DHCP欺骗的原理、实现的方法和实现的例子。
[关键词] DHCP 欺骗 DHCP SNOOPING 防范
在TCP/IP网络中,每台计算机要与其他计算机通信,都必须进行基本的网络配置(IP地址、子网掩码、缺省网关、DNS等)。对于小型网络,为每台计算机一一配置这样的属性也许还可以承受,由于网络应用的发展,特别是电子商务、电子政务、办公自动化等新的网络应用的出现,网络的规模也逐渐扩大,这样对于一个有几百、上千台的网络,基本的网络配置工作虽然简单,但配置的工作量相当大,而且对以后的维护带来不便。为了便于统一规划和管理网络中的IP地址,DHCP(Dynamic Host Configure Protocol,动态主机配置协议)应运而生了。这种网络服务有利于网络中的客户机自动进行网络配置,而不需要一个一个手动指定,但DHCP服务在设计时,没有过多的考虑安全问题,因此,这种服务在为网络配置提供方便的时候,又带来了问题。
一、DHCP工作原理
DHCP服务分为两个部分:服务器端和客户端。所有的IP网络配置资料都由服务器集中管理,并负责处理客户端的DHCP要求;而客户端则会使用从服务器分配下来的网络配置数据进行网络配置。这种网络配置数据的分配是动态的,是会变化的,称为“租约”分配。
“租约”的形成有4个阶段:
发现阶段:客户端寻找服务器的阶段。客户端开始时并不知道服务器的IP地址,因此,它会向本地网络广播发送DISCOVER发现信息来寻找服务器,本地网络中的所有计算机都会接收到这种广播,但只有DHCP服务器才会做出响应。
提供阶段:服务器向客户端提供网络配置参数的阶段。在网络中接收到客户端DISCOVER发现信息的DHCP服务器都会做出响应,它们会从尚未出租的IP地址中挑选一个,向客户端发送包含预备出租的IP地址和其他设置的OFFER提供信息。
选择阶段:客户端选择某台服务器提供的网络配置参数的阶段。如果网络中存在多台DHCP服务器,它们都会向客户端发送OFFER信息,客户端可能会收到多台DHCP服务器发送的OFFER信息,但它只选择接收到的第一个OFFER信息,然后它就以广播形式发送一个REQUEST请求信息,该信息中包含向它所选定的第一个OFFER信息中的网络配置参数和它选择的DHCP服务器的信息。
确认阶段:DHCP服务器确认所提供的网络配置参数。在网络中接收到客户端REQUEST请求信息的对应DHCP服务器会做出响应,如果服务器能满足客户端的请求,它便会向客户端发送一个包含网络配置参数的ACK确认信息,告诉客户端可以使用它所提供的服务,客户端根据该NAK信息来配置其网络参数,否则,它便会向客户端发送一个不能满足请求的NAK信息,并且收回OFFER信息中欲分配给客户端的地址,客户端会回到第一步,重新发起DISCOVER信息。而其他DHCP服务器不会对请求做出应答,一定时间后,那些发送了OFFER信息的DHCP服务器,如果没有收到响应的REQUEST信息,则会收回OFFER信息中欲分配给客户端的地址。
“租约”形成后,DHCP服务发挥作用,在不同的“租用期限”将会经历以下几个阶段:
重新登录:它将尝试更新上次关机时拥有的IP租用,即客户端直接发REQUEST请求信息,该REQUEST信息和第一次的REQUEST信息不同之处在于没有DHCP服务器的信息,所有的DHCP服务器都会收到该信息。如果先收到ACK信息,则继续使用现有IP地址,并更新其租期;如果先收到NAK信息,则发送DISCOVER信息,开始新一轮的IP租用过程;如果未收到任何服务器的ACK或NAK信息,客户机将尝试联系现有IP租用中列出的缺省网关,如果联系成功且租用尚未到期,客户机则认为自己仍然位于与它得现有IP租用时相同的子网上(没有被移走)继续使用现有IP地址。 如果未能与缺省网关联系成功,客户机则认为自己已经被移到不同的子网上,将会开始新一轮的IP租用过程。
更新租约阶段:任何租约都有一个租借期限,期满后,DHCP服务器便会收回出租的网络配置参数。如果要延长其IP租约,则必须更新其租约。系统约定,客户端IP租约过半时,客户端会自动发送更新租约的REQUEST信息(该信息是一个单播信息,即直接向租用网络参数的服务器发送)。如果服务器是可用的,通常回送一个ACK信息,同意客户端的请求,客户端继续使用现有IP地址,并更新其租期;如果服务器是不可用的,通常回送一个NAK信息,客户端可以继续使用现有IP地址,但不更新其租期。
重新捆绑阶段:如果客户端在租用期达到出租时间的50%时,更新租约不成功,当租用期达到出租时间的近87.5%以上时,客户端会再次试图更新租用期。如果服务器是可用的,通常回送一个ACK信息,同意客户端的请求,客户端继续使用现有IP地址,并更新其租期;如果服务器是不可用的,通常回送一个NAK信息,客户端可以继续使用现有IP地址,但不更新其租期,直到客户端租约已满,然后一切从头开始。 |
|