客户机向dhcp服务器请求获得IP地址的详细封包问题

客户机向dhcp服务器请求获得IP地址的详细封包问题,第1张

DHCP报文是封装在UDP报文中的。
UDP报文封装在IP报文里,IP报文封装在以太网报文里。
典型的DHCP过程是这样的:
1:客户机向服务器发送DHCP_DISCOVER报文,申请IP。
2:服务器向客户机返会DHCP_OFFER报文,指定一个将要分配的IP。
3:客户机向服务器发送DHCP_REQUEST报文,请求这个IP。
4:服务器PING几次(一般是3次)这个IP,如果没得到响应的话,就说明这个IP现在空闲,可以分配给客户机,所以向客户机发送DHCP_ACK报文,确认可以分配。如果得到相应,则发送DHCP_NAK报文,拒绝分配。
5:如果客户端收到DHCP_ACK,责发送一次免费ARP,判断这个IP是否已经被用。没有被用的话则绑定这个服务器分配来的IP,否则向服务器发送DHCP_DECLINE报文,拒绝这次分配。并重新执行第一步。
如果收到的是DHCP_NAK,则直接重新执行第一步。
大概过程是这样的,还有不明白的话再补充一下问题~
-----------------------------------------------------------
DHCP是应用层协议,UDP是传输层协议,IP是网络层协议,以太网是链路层协议。
数据在网络上传输的时候要自顶向下逐层封装的,关于这部份知识你可以参考一下TCP/IP分层模型。
客户机申请IP之前确实没有IP,DHCP_DISCOVER报文都是以广播形式发送的,IP头里的目的地址是255255255255,源地址是0000。
链路层目的地址是FF-FF-FF-FF-FF-FF,源地址是自己的mac地址。
这样服务器收到客户端发来的DISCOVER报文之后,会根据源mac地址向客户机发送单播的DHCP_OFFER报文。

整个过程:
1 DHCP请求IP地址的过程
l 发现阶段,即DHCP客户端寻找DHCP服务器的阶段。客户端以广播方式发送DHCPDISCOVER包,只有DHCP服务器才会响应。
l 提供阶段,即DHCP服务器提供IP地址的阶段。DHCP服务器接收到客户端的DHCPDISCOVER报文后,从IP地址池中选择一个尚未分配的IP地址分配给客户端,向该客户端发送包含租借的IP地址和其他配置信息的DHCPOFFER包。
l 选择阶段,即DHCP客户端选择IP地址的阶段。如果有多台DHCP服务器向该客户端发送DHCPOFFER包,客户端从中随机挑选,然后以广播形式向各DHCP服务器回应DHCPREQUEST包,宣告使用它挑中的DHCP服务器提供的地址,并正式请求该DHCP服务器分配地址。其它所有发送DHCPOFFER包的DHCP服务器接收到该数据包后,将释放已经OFFER(预分配)给客户端的IP地址。
如果发送给DHCP客户端的DHCPOFFER包中包含无效的配置参数,客户端会向服务器发送DHCPCLINE包拒绝接受已经分配的配置信息。
l 确认阶段,即DHCP服务器确认所提供IP地址的阶段。当DHCP服务器收到DHCP客户端回答的DHCPREQUEST包后,便向客户端发送包含它所提供的IP地址及其他配置信息的DHCPACK确认包。然后,DHCP客户端将接收并使用IP地址及其他TCP/IP配置参数。
2 DHCP客户端续租IP地址的过程
l DHCP服务器分配给客户端的动态IP地址通常有一定的租借期限,期满后服务器会收回该IP地址。如果DHCP客户端希望继续使用该地址,需要更新IP租约。实际使用中,在IP地址租约期限达到一半时,DHCP客户端会自动向DHCP服务器发送DHCPREQUEST包,以完成IP租约的更新。如果此IP地址有效,则DHCP服务器回应DHCPACK包,通知DHCP客户端已经获得新IP租约。
如果DHCP客户端续租地址时发送的DHCPREQUEST包中的IP地址与DHCP服务器当前分配给它的IP地址(仍在租期内)不一致,DHCP服务器将发送DHCPNAK消息给DHCP客户端。
3 DHCP客户端释放IP地址的过程
l DHCP客户端已从DHCP服务器获得地址,并在租期内正常使用,如果该DHCP客户端不想再使用该地址,则需主动向DHCP服务器发送DHCPRELEASE包,以释放该地址,同时将其IP地址设为0000。

DHCP是动态主机设置协议,是一个局域网的网络协议,使用UDP协议工作。主要有两个用途:用于内部网或网络服务供应商自动分配IP地址;给用户用于内部网管理员作为对所有计算机作中央管理的手段。

DHCP具有以下功能:

1、保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。

2、DHCP应当可以给用户分配永久固定的IP地址。

3、DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。

4、DHCP服务器应当向现有的BOOTP客户端提供服务。

扩展资料

DHCP在工作过程中涉及到的报文种类及其作用如下:

1、DHCPDISCOVER:客户端开始DHCP过程的第一个报文,是请求IP地址和其它配置参数的广播报文。

2、DHCPOFFER:服务器对DHCPDISCOVER报文的响应,是包含有效IP地址及配置的单播(或广播)报文。

3、DHCPREQUEST:客户端对DHCPOFFER报文的响应,表示接受相关配置。客户端续延IP地址租期时也会发出该报文。

4、DHCPDECLINE:当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止使用该IP地址。

5、DHCPACK:服务器对客户端的DHCPREQUEST报文的确认响应报文。客户端收到此报文后,才真正获得了IP地址和相关的配置信息。

6、DHCPNAK:服务器对客户端的DHCPREQUEST报文的拒绝响应报文。客户端收到此报文后,会重新开始新的DHCP过程。

7、DHCPRELEASE:客户端主动释放服务器分配的IP地址。当服务器收到此报文后,则回收该IP地址,并可以将其分配给其它的客户端。

8、DHCPINFORM:客户端获得IP地址后,发送此报文请求获取服务器的其它一些网络配置信息,如DNS等。

参考资料来源:百度百科-DHCP

NAK in request就是你发出的请求未得到相应,是一个出错标识,一般是在用户认证的时候可能是宽带账号与密码不对,也可能是外网不通等因素造成的。
ACK in request是一种肯定应答,就是你发出的请求对方已经收到,是一种正常的应答信息。
在本例中是对DHCP客户端的应答,对于NAK应答是没有给该客户分配IP参数,而ACK是给三个客户分配了IP参数192168156-58。

dhcp服务器指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码,以下是由我整理关于什么是dhcp服务器的内容,希望大家喜欢!

dhcp服务器的功能

两台连接到互联网上的电脑相互之间通信,必须有各自的IP地址,由于IP地址资源有限,宽带接入运营商不能做到给每个报装宽带的用户都能分配一个固定的IP地址(所谓固定IP就是即使在你不上网的时候,别人也不能用这个IP地址,这个资源一直被你所独占),所以要采用DHCP方式对上网的用户进行临时的地址分配。也就是你的电脑连上网,DHCP服务器才从地址池里临时分配一个IP地址给你,每次上网分配的IP地址可能会不一样,这跟当时IP地址资源有关。当下线的时候,DHCP服务器可能就会把这个地址分配给之后上线的其他电脑。这样就可以有效节约IP地址,既保证了网络通信,又提高IP地址的使用率。

在一个使用TCP/IP协议的网络中,每一台计算机都必须至少有一个IP地址,才能与其他计算机连接通信。为了便于统一规划和管理网络中的IP地址,DHCP(Dynamic Host Configure Protocol,动态主机配置协议)应运而生了。这种网络服务有利于对校园网络中的客户机IP地址进行有效管理,而不需要一个一个手动指定IP地址。

DHCP用一台或一组DHCP服务器来管理网络参数的分配,这种方案具有容错性。即使在一个仅拥有少量机器的网络中,DHCP仍然是有用的,因为一台机器可以几乎不造成任何影响地被增加到本地网络中。

甚至对于那些很少改变地址的服务器来说,DHCP仍然被建议用来设置它们的地址。如果服务器需要被重新分配地址(RFC2071)的时候,就可以在尽可能少的地方去做这些改动。对于一些设备,如路由器和防火墙,则不应使用DHCP。把TFTP或SSH服务器放在同一台运行DHCP的机器上也是有用的,目的是为了集中管理。

DHCP也可用于直接为服务器和桌面计算机分配地址,并且通过一个PPP代理,也可为拨号及宽带主机,以及住宅NAT网关和路由器分配地址。DHCP一般不适用于使用在无边际路由器和DNS服务器上。

dhcp服务器的范围

它是TCP/IP协议簇中的一种,主要是用来给局域网客户机分配动态的IP地址。缺点:DHCP存在较多的广播开销,对于用户量较多的城域网会造成网络运行效率下降和配置困难;另一方面,仍然无法解决用户自行配置IP地址的问题。

公有ip地址的动态分配主要通过PPPoE。

dhcp服务器的工作原理

分配方式

在DHCP的工作原理中,DHCP服务器提供了三种IP分配方式:自动分配(Automatic allocation)、手动分配和动态分配(Dynamic Allocation)。

自动分配是当DHCP客户端第一次成功的从DHCP服务器获取一个IP地址后,就永久的使用这个IP地址。

手动分配是由DHCP服务器管理员专门指定的IP地址

动态分配是当客户端第一次从DHCP服务器获取到IP地址后,并非永久使用该地址,每次使用完后,DHCP客户端就需要释放这个IP,供其他客户端使用。

第三种是最常见的使用形式。

租约过程

客户端从DHCP服务器获得IP地址的过程叫做DHCP的租约过程。

IP地址的有效使用时间段称为租用期,租用期满之前,客户端必须向DHCP服务器请求继续租用。服务器接受请求后才能继续使用,否则无条件放弃。

默认情况下,路由器隔离广播包,不会将收到的广播包从一个子网发送到另一个子网。当DHCP服务器和客户端不在同一个子网时,充当客户端默认网关的路由器将广播包发送到DHCP服务器所在的子网,这一功能就称为DHCP中继(DHCP Relay)。

DHCP在工作过程中涉及到的报文种类及其作用如下:

1、DHCP DISCOVER:客户端开始DHCP过程的第一个报文,是请求IP地址和其它配置参数的广播报文。

2、DHCP OFFER:服务器对DHCP DISCOVER报文的响应,是包含有效IP地址及配置的单播(或广播)报文。

3、DHCP REQUEST:客户端对DHCP OFFER报文的响应,表示接受相关配置。客户端续延IP地址租期时也会发出该报文。

4、DHCP DECLINE:当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止使用该IP地址。

5、DHCP ACK :服务器对客户端的DHCP REQUEST报文的确认响应报文。客户端收到此报文后,才真正获得了IP地址和相关的配置信息。

6、DHCP NAK:服务器对客户端的DHCP REQUEST报文的拒绝响应报文。客户端收到此报文后,会重新开始新的DHCP过程。

7、DHCP RELEASE:客户端主动释放服务器分配的IP地址。当服务器收到此报文后,则回收该IP地址,并可以将其分配给其它的客户端。

8、DHCP INFORM:客户端获得IP地址后,发送此报文请求获取服务器的其它一些网络配置信息,如DNS等。

DHCP服务器向DHCP客户端出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。为了能继续使用原先的IP地址,DHCP客户端会向DHCP服务器发送续租的请求。

续租的工作流程描述如下:

1、在使用租期过去50%时刻处, 客户端向服务器发送单播DHCP REQUEST报文续延租期。

2、如果收到服务器的DHCP ACK报文,则租期相应向前延长,续租成功。如果没有收到DHCP ACK报文,则客户端继续使用这个IP地址。在使用租期过去875%时刻处,向服务器发送广播DHCP REQUEST报文续延租期。

DHCP是BOOTP的扩展,是基于C/S模式的,它提供了一种动态指定IP地址和配置参数的机制。这主要用于大型网络环境和配置比较困难的地方。DHCP服务器自动为客户机指定IP地址,指定的配置参数有些和IP协议并不相关,但这必没有关系,它的配置参数使得网络上的计算机通信变得方便而容易实现了。DHCP使IP地址的可以租用,对于许多拥有许多台计算机的大型网络来说,每台计算机拥有一个IP地址有时候可能是不必要的。租期从1分钟到100年不定,当租期到了的时候,服务器可以把这个IP地址分配给别的机器使用。客户也可以请求使用自己喜欢的网络地址及相应的配置参数。
DHCP是对BOOTP的扩展,它的包格式和BOOTP也一样,这样它就可以使用BOOTP的中转发代理来发送DHCP包了,这使得BOOTP和DHCP之间可以实现互 *** 作。对于BOOTP转发代理来说,发的是DHCP包还是BOOTP包,它根本分不清楚。它们使用的服务器端口号是67和68,但是有些地方还有些不同:
DHCP定义了一种可以使IP地址使用一段有限时间的机制,在客户期限到了的时候可以重新分配这个IP地址。
DHCP为用户提供所有IP配置参数。
DHCP包长度比BOOTP包长度稍长。既然包比BOOTP的长,那也不是白带的,这多出的长度里包括了网络配置参数。
DHCP的包都比BOOTP的长,那协议也复杂了。DHCP有七种消息类型,而BOOTP只有两种。
下图中我们可以清楚地看到客户机请求获得网络地址和配置参数的最初几个步骤:
第一步的时候客户发出包的名称叫DHCPDISCOVER,而服务器返回包的名称叫DHCPOFFER。
1BOOTP转发代理接收到请求包,并负责向DHCP其它网络内的DHCP服务器转发。
2DHCP服务器以DHCPOFFER响应客户的要求,这个包内包括可用的IP地址和参数。
3BOOTP转发代理接收包,并对它进行检查。如果它觉得没有问题,就向客户转发。
4如果客户在发出DHCPOFFER包后一段时间内没有接收到回应,它有机会重新发送请求10次,否则就通知用户。客户机可以同时接收到许多个服务器的应答,它可以自己决定用哪一个。下图是客户决定了以后,向服务器发送应答时的情况。
5当客户选定了某个目标服务器后,它会广播DHCPREQUEST包,用以通知选定的服务器和未选定的服务器。
6转发工作仍然由BOOTP转发担任。
7收到DHCPREQUEST包服务器会检查收到的包,如果包内的地址和提供的地址一致,证明现在客户机选择的是这台服务器提供的地址,如果不是,自己提供的地址被拒绝了。
8被选定的服务器在接收到DHCPREQUEST包以后,因为某些原因可能不能向客户提供这个网络地址或参数,它可以向客户发送DHCPNAK包,如果可以提供则可以发送DHCPACK包。
客户在收到包后,检查内部的网络地址和租用时间,如果客户觉得这个包有问题,它可以发送DHCPDECLINE包拒绝这个地址,然后重新发送DHCPDISCOVER包。如果觉得没有问题,就可以接受这个配置参数。同样当客户接收到DHCPNAK包时,它也可以发送DHCPDISCOVER包。客户可以在租期到期之前释放网络地址,这通过发送DHCPRELEASE包来实现。
用户下一次可以再次获得相同的IP地址。在这一过程中,许多步骤就可以不用麻烦了,老客户当然要方便一点了。
1客户在发送的DHCPREQUEST包内包括自己以前使用的IP地址。
2此包由BOOTP转发代理转发。
3DHCP服务器检查DHCPREQUEST包内包括的配置参数。
4它如果是原来提供这个网络地址的参数的服务器,它会认出这些数来,并以DHCPACK包回应。
5客户接收到DHCPACK包后,它可以接收或拒绝,如果拒绝它可以申请新的网络地址。
当然了,如果服务器觉得客户的请求是无效的,服务器会以DHCPNAK包响应,客户接收到这个包后,会重新会获得网络地址而发送DHCPDISCOVER包。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10318936.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-07
下一篇2023-05-07

发表评论

登录后才能评论

评论列表(0条)

    保存