DHCP协议
2010-09-27 12:01:55 来源:WEB开发网
接受IP租约如果客户端收到网路上多台DHCP伺服器的回应只理会最先收到的Dhcpoffer并且会向网路发送一个Dhcprequest广播封包告诉所有DHCP伺服器它将指定接受哪一台伺服器提供的IP地址。
同时客户端还会向网路发送一个ARP(AddressResolutionProtocol我们将会在下面碰到)封包查询网路上面有没有其它机器使用该IP地址如果发现该IP已经被占用客户端则会送出一个Dhcpdeclient封包给DHCP伺服器拒绝接受其Dhcpoffer并重新发送Dhcpdiscover信息。
事实上并不是所有DHCP客户端都会无条件接受DHCP伺服器的offer尤其这些主机安装有其它TCP/IP相关的客户软体。客户端也可以用Dhcprequest向伺服器提出DHCP选择而这些选择会以不同的号码填写在DHCPOptionField里面
号码代表意思
01Sub-netMask
03RouterAddress
06DNSServerAddress
0FDomainName
2CWINS/NBNSServerAddress
2EWINS/NBTNodeType
2FNetBIOSScopeID
换一句话说在DHCP伺服器上面的设定未必和所有客户端都一致客户端可以保留自己的一些TCP/IP设定。
IP租约确认当DHCP伺服器接收到客户端的Dhcprequest之後会向客户端发出一个Dhcpack回应以确认IP租约的正式生效也就结束了一个完整的DHCP工作过程。
第一次登录之後
一旦DHCP客户端成功地从伺服器哪里取得DHCP租约之後除非其租约已经失效并且IP地址也重新设定回0.0.0.0否则就无需再发送Dhcpdiscover信息了而会直接使用已经租用到的IP地址向DHCP伺服器发出Dhcprequest信息DHCP伺服器会量让客户端使用原来的IP地址如果没问题的话直接回应Dhcpack来确认则可。如果该地址已经失效或已经被其它机器使用了伺服器则会回应一个Dhcpnack封包给客户端要求其从新执行Dhcpdiscover。
至於IP的租约期限却是非常考究的并非如我们租房子那样简单以NT为例子DHCP工作站除了在开机的时候发出dhcprequest请求之外在租约期限一半的时候也会发出dhcprequest如果此时得不到DHCP伺服器的确认的话工作站还可以继续使用该IP然後在剩下的租约期限的再一半的时候(即租约的75%)还得不到确认的话那麽工作站就不能拥有这个IP了。至於为什麽不是到租约期限完全结束才放弃IP呢对不起小弟也是不学无术之人没有去深究了只知道要回答MCSE问题的时候您一定要记得NT是这麽工作的就是了。
当然您也可以随时使用命令将DHCP租约release掉啦就算您的租约在前一秒钟才获得的。
跨网路的DHCP运作
以上的情形是在同一网路之内进行的但如果DHCP伺服器安设在其它的网路上面呢由DHCP客户端还没有IP环境设定所以也不知道Router地址而且有些Router也不一定会将DHCP广播封包传递出去这时候我们可以用DHCPAgent(或DHCPProxy)主机来接管客户的DHCP请求然後将此请求传递给真正的DHCP伺服器然後将伺服器的回覆传给客户。这里Proxy主机必须自己具有routing能力。
当然您也可以在每一个网路之中安装DHCP伺服器但这样的话一来设备成本会增加而且管理上面也比较分散。当然如果在一个十分大型的网路中这样的均衡式架构还是可取的。
编缉推荐阅读以下文章
- Windows 网络服务架构系列课程详解(五) ---DHCP服务器群集的部署方案
- Windows 网络服务架构系列课程详解(一) ----DHCP服务器的搭建与配置
- 一起学DHCP系列(八)配置CLASSID、演示
- 一起学DHCP系列(七)租约、释放
- 一起学DHCP系列(六)授权、分析
- 一起学DHCP系列(五)指派、获取
- 一起学DHCP系列(四)安装、配置
- 一起学DHCP系列(三)理解、APIPA
- 一起学DHCP系列(二)三种途径
- 一起学DHCP系列(一)开篇、概述
更多精彩
赞助商链接