DHCP(动态主机配置协议)能使计算机自动获取IP地址,源自BOOTP(引导协议),BOOTP可以让无盘工作站从一个中心服务器上获得IP地址。DHCP服务器有一个IP地址池,可以把池中的IP地址动态地分配给各计算机。
1.DHCP体系结构
DHCP是基于客户/服务器模式的一种协议。网络上至少运行有一台DHCP服务器,负责监听客户端的DHCP请求,并与客户端协商IP地址的设定。DHCP服务器本质上就是一个软件,通常放在路由器上运行。
DHCP采用动态分配的方法为客户端提供(出租)IP地址。当DHCP客户端第一次从DHCP服务器租用到IP地址后,并非永久地使用该地址,只要租约到期,客户端就得释放这个IP地址。动态分配比较适合实际IP地址不足的时候,例如,某一个ISP只能提供200个IP地址用来分配给用户,但并不意味着它的客户最多只能有200个,因为所有的客户不可能全部同一时间上网,同一个IP地址可以分时地被很多用户共享,对网络运营商来说,无疑降低了运营成本。DHCP服务器除了为客户主机分配IP地址外,还可为客户端指定默认网关IP地址、子网掩码、DNS服务器IP地址等网络配置参数。
2.DHCP工作过程
DHCP客户端与服务器之间通过请求/响应报文来传送信息。DHCP定义了8种报文,如DHCP discover(查找DHCP服务器)、DHCP decline(分配的IP地址有冲突)、DHCP release(释放所分配的IP地址)等。下面描述DHCP的工作过程。
1)发送DHCP请求。当DHCP客户端第一次登录网络的时候,也就是客户发现本机上没有任何IP地址设定时,它会向网络发出一个DHCP discover报文,查找DHCP服务器。因为客户端对网络参数一无所知,所以报文的源IP地址设为0.0.0.0,目的IP地址则为广播地址255.255.255.255,向网络进行广播。在Windows系统下,DHCP discover报文的等待时间默认为1s,在1s之内没有得到响应的话,就会进行第二次DHCP discover报文的广播。客户端共有4次DHCP discover广播,等待时间分别是1、9、13、16s。如果都没有得到DHCP服务器的响应,客户端则会显示错误信息,宣告DHCP discover的失败。
2)服务端响应请求。当DHCP服务器监听到客户端发出的DHCP discover广播后,它会从那些还没有租出的地址范围内,选择最前面的空置IP地址,连同其他TCP/IP设定,回送给客户端一个DHCP offer报文。由于客户端在开始的时候还没有IP地址,所以在其DHCP discover报文内会带有其MAC地址信息,并且有一个XID编号来辨别该报文。DHCP服务器响应的DHCP offer报文则会根据这些信息传递给要求租约的客户。根据服务器端的设定,DHCP offer报文会包含一个租约期限的信息。
图9-4是Wireshark抓包软件捕获的一个DHCP offer报文实例,图上部是DHCP交互过程的5个DHCP报文,图下部是DHCP offer报文字段的内容。注意,这个报文仍是以广播方式发送的,并且可以看出DHCP为客户端分配的IP地址是192.168.0.100,DHCP服务器的IP地址为192.168.0.1,图中的时间是IP地址的释放期限(租期)。(www.daowen.com)
图9-4 DHCP offer报文字段内容实例
3)客户端接受返回的IP地址。如果客户端收到网络上多台DHCP服务器的响应,只会挑选其中一个DHCP offer(通常是最先抵达的那个),并且会向网络发送一个DHCP request广播报文,告诉所有DHCP服务器它将指定接受哪一台服务器提供的IP地址。同时,客户端还会向网络发送一个ARP报文,查询网络上有没有其他计算机使用该IP地址。如果发现该IP已经被占用,客户端会送出一个DHCP decline报文给DHCP服务器,拒绝接受其分配的IP地址,并重新发送DHCP discover广播。
4)租约确认。当DHCP服务器接收到客户端的DHCP request之后,会向客户端发出一个DHCPACK响应,以确认IP租约的正式生效,至此结束了一个完整的DHCP过程。
3.跨网络DHCP的实现
DHCP discover报文是以广播方式发送的,只能在同一网络之内进行,因为路由器不会将广播传送出去。如果DHCP服务器安设在其他的网络上,则路由器不会将DHCP广播报文传递出去。为解决这个问题,可以用DHCP代理或DHCP中继主机来接管客户的DHCP请求,然后将此请求传递给真正的DHCP服务器,并将服务器的回复传给客户。
跨网段的DHCP在网络规模较大时是很常见的做法,通常在交换机上配置DHCP中继,将整个网络的DHCP服务器的分配信息进行中继转发。这样就可以实现全网的IP地址的统一分配和管理。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。