网络服务-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包 「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」 赞赏 × 几人行 (๑>ڡ<)☆谢谢老板~ 2元 5元 10元 50元 100元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 服务 2018-06-22 评论 2477 次浏览