织梦CMS - 轻松建站从此开始!

技术无忧网 - 技术从此无忧 -- 一站式中文IT技术网站 - www.tech51.net

当前位置: 主页>网络频道>

Windows 2003 Server DHCP服务器详解(2)

时间:2008-08-04 16:39来源: 作者: 点击:
DHCP工作方式 DHCP客户端通过和DHCP服务器的交互通讯以获得IP地址租约。为了从DHCP服 务器获得一个IP地址,在标准情况下DHCP客户端和DHCP服务器之间会进行四

DHCP工作方式

DHCP客户端通过和DHCP服务器的交互通讯以获得IP地址租约。为了从DHCP服 务器获得一个IP地址,在标准情况下DHCP客户端和DHCP服务器之间会进行四次通讯。DHCP协议通讯使用端口UDP 67(服务器端)和UDP 68(客户端)进行通讯,并且大部分DHCP协议通讯使用广播进行。如果在DHCP客户端和DHCP服务器不属于相同的网络,那么必须具备 以下两个条件之一,才能让DHCP客户端和路由器正常进行通讯:

  • DHCP客户端网络上部署有DHCP中继代理,并且配置为 转发DHCP消息到DHCP服务器;

  • 两个网络间的路由器兼容RFC 1542( 支持BOOTP/DHCP转发)

无论上述哪种方式,DHCP中继代理或兼容RFC 1542的路由器在转发DHCP客户 端的租约请求时,都会修改转发的DHCP请求数据包中的Gateway字段,将其设置为自己接收到DHCP客户端租约请求的网络接口的IP地址 ,而DHCP服务器则使用此Gateway字段来决定分配IP地址租约的DHCP作用域。  

DHCP客户端和DHCP服务器的这四次通讯分别代表不同的阶段,分别为:

1、DHCP DISCOVER

当DHCP客户端计算机处于以下三种情况之一时,触发DHCPDISCOVER广播消息 :

  • 当TCP/IP协议作为DHCP客户端(自动获取IP地址)进行初始化(DHCP客 户端启动计算机、启用网络适配器或者连接到网络时);

  • DHCP客户端请求某个IP地址被DHCP服务器拒绝,通常发生在已获得租约 的DHCP客户端连接到不同的网络中;

  • DHCP客户端释放已有租约并请求新的租约。

此时,DHCP客户端发起DHCPDISCOVER广播消息,向所有DHCP服务器获取IP地 址租约。此时由于DHCP客户端没有IP地址,因此在数据包中,使用0.0.0.0作为源IP地址,然后广播地址 255.255.255.255作为目的地址。在此请求数据包中同样会包含客户端的MAC地址和计算机名,以便DHCP服务器进行 区分。

如果没有DHCP服务器答复DHCP客户端的请求,DHCP客户端在等待1秒后会再次 发送DHCPDISCOVER广播消息。除了第一个DHCPDISCOVER广播消息外,DHCP客户端还会发出三个DHCPDISCOVER广播消息,等待时延分别 为9秒、13秒和16秒加上一个长度为0~1000毫秒之间的随机时延。如果仍然无法联系DHCP服务器,则认为自动获取IP地址失败,默认 情况下将随机使用APIPA(自动专有IP地址,169.254.0.0/16)中定义的未被其他客户使用的IP地址,子网掩码为 255.255.0.0,但是不会配置默认网关和其他TCP/IP选项,因此只能和同子网的使用APIPA地址的客户端计算机进行通讯。你可以通过 注册表中的DWORD键值IPAutoconfigurationEnabled来禁止客户端计算机使用APIPA地址进行自动配置,此键值位于 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

当其值设置为0时,则不使用APIPA地址进行自动配置。

在Windows XP和Windows Server 2003中,针对客户端计算机的TCP/IP选项中 有一个备用配置选项,只有当客户端计算机配置为DHCP客户端(自动获取IP地址)时才有此备用配置。你可以通过 备用配置来为DHCP客户端在无法联系DHCP服务器时为DHCP客户端指定静态IP地址,如下图所示:

 

如果没有配置APIPA地址和备用IP地址,则DHCP客户端会每隔5分钟再发送 DHCPDISCOVER广播消息,直到从DHCP服务器获取IP地址为止。

2、DHCP OFFER

所有接收到DHCP客户端发送的DHCPDISCOVER广播消息的DHCP服务器会检查自 己的配置,如果具有有效的DHCP作用域和富余的IP地址,则DHCP服务器发起DHCPOFFER广播消息来应答发起DHCPDISCOVER广播的DHCP客 户端,此消息包含以下内容:

  • 客户端MAC地址;

  • DHCP服务器提供的客户端IP地址;

  • DHCP服务器的IP地址;

  • DHCP服务器提供的客户端子网掩码;

  • 其他作用域选项,例如DNS服务器、网关、WINS服务器等;

  • 租约期限等。

因此DHCP客户端没有IP地址,所以DHCP服务器同样使用广播进行通讯:源IP 地址为DHCP服务器的IP地址,而目的IP地址为255.255.255.255。同时,DHCP服务器为此客户保留它提供的IP地址 ,从而不会为其他DHCP客户分配此IP地址。如果有多个DHCP服务器给予此DHCP客户端回复DHCPOFFER消息,则DHCP客户端接受它接收到 的第一个DHCPOFFER消息中的IP地址。 

3、DHCP REQUEST

当DHCP客户端接受DHCP服务器的租约时,它将发起DHCPREQUEST广播消息,告 诉所有DHCP服务器自己已经做出选择,接受了某个DHCP服务器的租约。

在此DHCPREQUEST广播消息中包含了DHCP客户端的MAC地址、接受的租约中的 IP地址、提供此租约的DHCP服务器地址等,所有其他的DHCP服务器将收回它们为此DHCP客户端所保留的IP地址租约,以给其他DHCP客 户端使用。

此时由于没有得到DHCP服务器最后确认,DHCP客户端仍然不能使用租约中提 供的IP地址,所以在数据包中仍然使用0.0.0.0作为源IP地址,广播地址255.255.255.255作为 目的地址。

 4、DHCP ACK

提供的租约被接受的DHCP服务器在接收到DHCP客户端发起的DHCPREQUEST广播 消息后,会发送DHCPACK广播消息进行最后的确认,在这个消息中同样包含了租约期限及其他TCP/IP选项信息。

如果DHCP客户端的操作系统为Windows 2000及其后版本,当DHCP客户端接收 到DHCPACK广播消息后,会向网络发出三个针对此IP地址的ARP解析请求以执行冲突检测,确认网络上没有其他主机使用DHCP服务器提 供的IP地址,从而避免IP地址冲突。如果发现该IP已经被其他主机所使用(有其他主机应答此ARP解析请求),则DHCP客户端则会广播 发送(因为它仍然没有有效的IP地址)DHCPDECLINE消息给DHCP服务器拒绝此IP地址租约,然后重新发起DHCP DISCOVER进程。此时,在DHCP服务器管理控制台中,会显示此IP地址为BAD_ADDRESS。

如果没有其他主机使用此IP地址,则DHCP客户端的TCP/IP使用租约中提供的 IP地址完成初始化,从而可以和其他网络中的主机进行通讯。至于其他TCP/IP选项,如DNS服务器和WINS服务器等,本地手动配置将覆 盖从DHCP服务器获得的值。

(责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容