网络服务-DHCP原理

本文共有3303个字,关键词:

DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)
是一个局域网的网络协议,使用UDP工作,用途:

  1. 给内部的网络或者网络服务供应商自动分配IP地址、子网掩码,网关以及DNS等TCP/IP信息。
  2. 给用户或者内部网络管理员作为对所有计算机作中央管理的方法。
    优点:
    减少了管理员的工作量
    避免输入错误的可能
    提高了IP地址的利用率
    方便客户端的配置
    避免IP的冲突
    缺点:当局域网中有两台DHCP服务器,从谁获取IP是不确定的。

DHCP服务器需要有固定的IP,才能给其他主机分配IP、子网、掩码、DNS

XP在局域网中如果开启自动获取IP,且局域网中没有DHCP服务器的话,XP会一直进行广播。

Win7及以上,开启自动获取IP,没有DHCP服务器时,在请求一段时间之后,停止请求,随机分配一个169网段的IP地址,为了停止广播。

DHCP的请求过程:
前提:局域网中存在DHCP服务器
A:客户机进行IP的请求(DHCP DISCOVER)
当一个DHCP客户机启动时,客户机会将自己的IP地址设置成0.0.0.0,由于这并不是一个能够通信的IP,所以客户机就必须通过DHCP服务器来获取一个合法的IP地址,但是客户机不知道DHCP服务器的地址,因此DHCP客户机使用0.0.0.0作为源地址,使用UDP68端口作为源端口,使用255.255.255.255作为目标地址,使用UDP67端口作为目的端口来广播请求IP地址信息广播信息中包含了DHCP客户机的MAC地址和计算机名,以便DHCP服务器能够确定是哪个主机发送的请求。
B:服务器响应(DHCP OFFER)
当DHCP服务器接收到客户机请求IP地址的信息时,DHCP服务器就在自己的地址池中查找是否有合法的IP地址提供给客户机,如果有合法的IP,DHCP服务器就将此IP做上标记,加入到DHCPOFFER的消息中,并将DHCPOFFER信息广播:
DHCP客户机的MAC地址;DHCP服务器提供的合法的IP地址;子网掩码;默认网关(路由);租约期限;DHCP服务器的IP地址。
由于DHCP客户机还没有合法的IP,因此DHCP服务器使用自己的IP作为源IP,UDP67端口作为源端口;使用255.255.255.255作为目标地址,使用UDP68端口作为目的端口来广播DHCPOFFER信息
C: 客户机选择IP(DHCPREQUEST)
DHCP客户机收到的第一个DHCPOFFER消息中选择IP地址,DHCP服务器会将分配出去的IP保留,这样该地址就不会提供给其他客户机,在DHCP客户机从第一个DHCP服务器接收DHCPOFFER并选择IP后,DHCP租约的第三个过程发生。客户机广播DHCPREQUEST消息广播到所有的DHCP服务器,因为在客户机接收到DHCPOFFER包的时候已经获取到了DHCP服务器的IP地址,客户机给所有DHCP服务器发送DHCPREQUEST包,目的有两个:

  1. 告诉响应客户机DHCPOFFER包最快的的DHCP服务器,接受分配的IP。
  2. 告诉其他DHCP服务器,自己已经获取到了合法IP。这样其他DHCP服务器就不会将IP一直标记到发送DHCPDISCOVER消息的客户机的MAC,就会将为其保留的IP取消,用于下一个IP租约请求。
    客户机在选择IP的时候,依然是没有配置IP地址的,因此客户机任然使用0.0.0.0的地址作为源地址,使用UDP68端口作为源端口,使用255.255.255.255作为目标地址,UDP67端口作为目标端口来广播DHCPREQUEST信息。
    D:服务器确认租约(DHCPACK)
    DHCP服务器接收到DHCPREQUEST消息后,以DHCPACK的形式向客户机广播租约成功的确认,该消息包含IP地址的有效租约信息和其他可能配置的信息,虽然在这一步服务器已经确认了客户机的请求,但是客户机还没有收到,因此DHCP服务器还是以广播的形式发送DHCPACK包。
    服务器使用自己的IP地址作为源地址,使用UDP67端口作为源端口,使用255.255.255.255作为目标地址,UDP68端口作为目标端口广播DHCPACK消息。如果客户机收到服务器的确认,那么客户机就能够配置IP,完成TCP/IP的初始化。
    D(1):服务器确认租约(DHCPNACK|DHCPNCK)
    如果DHCPREQUEST不成功,例如客户机尝试租约之前分配的IP地址,但是该IP地址不再可用,或者因为客户机移到其他子网,该IP无效时,DHCP服务器将广播否定确认消息DHCPNACK,客户机接收不到成功的确认时将会重新开始DHCP租约的过程。

客户机将DHCP服务器分配的IP进行配置,并针对获得的IP发送ARP REQUEST,进行IP冲突的检测,如果有人使用该IP,等待一段时间(一般为10s),再次尝试请求该地址,如果还是无法使用该地址,则向服务器发送DHCP RELEASE报文,放弃该IP地址。

如果在局域网内没有DHCP服务器,或者DHCP主机找不到DHCP服务器,DHCP主机将会从TCP/IP的B类网段169.254.0.0/16中随机挑选一个IP地址作为自己的IP地址,继续每间隔5分钟尝试与DHCP服务器进行通信,一旦与DHCP服务器取得联系,则客户机放弃自动配置的IP地址,使用DHCP服务器分配的的IP地址。
DHCP客户机的续租:
DHCP客户机会在租约过去50%的时候,直接向为其提供IP地址的DHCP服务器发送DHCP REQUEST消息包,客户机就会根据包中所提供的新的租期以及其他已经更新的TCP/IP参数,更新自己的配置,IP租用更新完成。如果没有接收到DHCP服务器的回复,则客户机继续使用现在的IP地址,直到租约的87.5%。
如果在租约已使用50%的情况下没有更新,则客户机到租约过去87.5%的时候再次向为其提供IP地址的DHCP服务器取得联系,度过依旧没有获取到更新确认,则继续使用该IP地址直到租约的100%,放弃该IP重新广播DHCPDISCOVER报文。

DHCP租约的过程:简化
客户机请求IP
客户端发送DHCP Discover
DHCP客户端广播请求IP地址
源地址0.0.0.0
目标地址255.255.255.255

服务器响应
服务器向客户端响应DHCP服务
源地址:192.168.10.10
目标地址:255.255.255.255
DHCP服务器提供的IP地址:192.168.10.120
此处只是提供一个IP地址

客户机选择IP
客户机选择IP地址,尝试连接192.168.10.120,如果连接不上则占用该地址。
客户端广播
选择DHCP服务器(192.168.10.10)
源地址:0.0.0.0
目标地址:255.255.255.0
租约期限为8天(默认)

服务器确定租约
DHCP服务器确认
源地址:0.0.0.0
目标IP:255.255.255.255

DHCP动态主机配置协议
DHCP有避免和固定IP冲突的机制
当客户机重启时可能有三种可能:

  1. 客户机重启后直接访问DHCP服务器是否能续约,如果能就继续续租。
  2. 客户机重启后DHCP服务器挂掉了,客户机无法得到响应,则继续使用该IP地址,直到租约的50%,。
  3. 当客户机在租约过半没有连接到DHCP服务器时,则使用IP至租约时间的87.5%,再次向DHCP服务器请求续租,如果还是连接不上,则继续使用IP地址直至租约结束。重新发送Discover包

「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」

几人行

(๑>ڡ<)☆谢谢老板~

使用微信扫描二维码完成支付

版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。
添加新评论
暂无评论