Linux DHCP原理

2019-10-11 05:46 来源:未知
Step3

DHCP客户可能收到多个 DHCP提供报文,它从几个DHCP服务器中选择其中的一个,通常是收到的第一个 ,并向所选择的DHCP服务器发送请求报文,请求使用对方提供的IP地址和其他配置数据。

2:在IP地址租约期限达到50%时,DHCP客户端会自动向DHCP服务器发送DHCPREQUEST包,以完成IP租约的更新。如果此IP地址有效,则DHCP服务器回应DHCPACK包,确认租约更新。

DHCP作用

  DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址、子网掩码、网关以及DNS、(网络批量安装)等tcp/ip信息,给用户或者内部网络管理员作为对所有计算机作中央管理的方法。

2. DHCP的租期和计时器

DHCP分配给DHCP客户的IP地址是临时 的,DHCP客户只能在一段时间内使用这个分配的IP地址。DHCP协议称这段时间为租期(Lease Time),这个时间可以在DHCP服务器上设置。RFC2132对Lease Time的要求如下 :

The time is in units of seconds, and is specified as a 32-bitunsigned integer.

时间以秒为单位,并指定为32位无符号整数 。可以设置的时间范围从1秒到136年,DHCP客户也可以在自己发送的报文中提出对租期的要求。

因此,DHCP客户现在要根据服务器提供的租期T设置两个计时器T1和T2,它们的超时时间分别0.5T和0.875T,来提醒自己更新租期

当超时时间到达T1时,DHCP客户发送请求报文DHCPREQUEST要求更新租期。

  • DHCP服务器若同意,则发回确认报文DHCPACK。DHCP客户得到了新的租用期,重新设置计时器。
  • DHCP服务器若不同意,则发回否认报文DHCPNAK。这时DHCP客户必须立即停止使用原来的IP地址,回到发现阶段重新申请IP地址。
  • DHCP服务器若不响应,则在超时时间到达T2时,重新发送请求报文DHCPREQUEST要求更新租期,然后重复前面的步骤。

DHCP客户可以随时提前终止服务器提供的租期,这时只需向DHCP服务器发送释放报文DHCPRELEASE即可。

1:租约没有到期,如果客户端重启,则会向DHCP服务器发送DHCPREQUEST,请求使用原来的ip地址。

DHCP原理

图片 1

说明

1:DHCP客户端寻找DHCP服务器的阶段。客户端以广播方式发送DHCPDISCOVER包,只有DHCP服务器才会响应。

DHCP续租

 

 

图片 2

  DHCP客户机会在租期过去50%的时候,直接向为其提供IP地址的DHCP服务器发送DHCPREQUEST消息包。如果客户机接收到该服务器回应的DHCPACK消息包,客户机就根据包中所提供的新的租期以及其它已经更新的TCP/IP参数,更新自己的配置,IP租用更新完成。如果没有收到该服务器的回复,则客户机继续使用现有的IP地址,因为当前租期还有50%。

  如果在租期过去50%的时候没有更新,则DHCP客户机将在租期过去75%的时候再次向为其提供IP地址的DHCP服务器联系。如果还不成功,到租约的100%时候,DHCP客户机必须放弃这个IP地址,重新申请。如果此时无DHCP服务器可用,DHCP客户机会使用169.254.0.0/16中随机的一个地址,并且每隔5分钟再进行尝试。

 

  

 

工作过程

DHCP使用客户服务器方式。根据客户与服务器之间的报文交互情况,我们可以把整个DHCP协议工作过程简单地分成以下4 个步骤:

图片 3DHCP协议的交互过程

一:DHCP简介:

DHCP租约四部曲

A:客户端进行IP请求

  当一个DHCP客户机启动时,会自动将自己的IP地址配置成0.0.0.0,由于使用0.0.0.0不能进行正常通信,所以客户机就必须通过DHCP服务器来获取一个合法的地址。由于客户机不知道DHCP服务器的IP地址,所以它使用0.0.0.0的地址作为源地址,使用UDP68端口作为源端口,使用255.255.255.255作为目标地址,使用UDP67端口作为目的端口来广播请求IP地址信息广播信息中包含了DHCP客户机的MAC地址和计算机名,以便使DHCP服务器能确定是哪个客户机发送的请求。

B:服务器响应

 

  当DHCP服务器接收到客户机请求IP地址的信息时,它就在自己的IP地址池中查找是否有合法的IP地址提供给客户机。如果有,DHCP服务器就将此IP地址做上标记,加入到DHCPOFFER的消息中,然后DHCP服务器就广播一则包括下列信息的DHCPOFFER消息:DHCP客户机的MAC地址;DHCP服务器提供的合法IP地址;子网掩码;默认网关(路由);租约的期限;DHCP服务器的IP地址。因为DHCP客户机还没有IP地址,所以DHCP服务器使用自己的IP地址作为源地址,使用UDP67端口作为源端口,使用255.255.255.255作为目标地址,使用UDP68端口作为目的端口来广播DHCPOFFER信息。

C:客户机选择IP  

  DHCP客户机从接收到的第一个DHCPOFFER消息中选择IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能提供给另一个DHCP客户机。当客户机从第一个DHCP服务器接收DHCPOFFER并选择IP地址后,DHCP租约的第三过程发生。客户机将DHCPREQUEST消息广播到所有的DHCP服务器,表明它接受提供的内容。DHCPREQUEST消息包括为该客户机提供IP配置的服务器的服务标识符(IP地址)。DHCP服务器查看服务器标识符字段,以确定它自己是否被选择为指定的客户机提供IP地址,如果那些DHCPOFFER被拒绝,则DHCP服务器会取消提供并保留其IP地址以用于下一个IP租约请求。

  在客户机选择IP的过程中,虽然客户机选择了IP地址,但是还没有配置IP地址,而在一个网络中可能有几个DHCP服务器,所以客户机仍然使用0.0.0.0的地址作为源地址,使用UDP68端口作为源端口,使用255.255.255.255作为目标地址,使用UDP67端口作为目的端口来广播DHCPREQUEST信息。

D:服务器确认租约

 

  DHCP服务器接收到DHCPREQUEST消息后,以DHCPACK消息的形式向客户机广播成功的确认,该消息包含有IP地址的有效租约和其他可能配置的信息。虽然服务器确认了客户机的租约请求,但是客户机还没有收到服务器的DHCPACK消息,所以服务器仍然使用自己的IP地址作为源地址,使用UDP67端口作为源端口,使用255.255.255.255作为目标地址,使用UDP68端口作为目的端口来广播DHCPACK信息。当客户机收到DHCPACK消息时,它就配置了IP地址,完成了TCP/IP的初始化。

 

服务器确认租约:DHCPNACK(DHCPNAK)

 

  如果DHCPREQUEST不成功,例如客户机试图租约先前的IP地址,但该IP地址不再可用,或者因为客户机移到其他子网,该IP无效时,DHCP服务器将广播否定确认消息DHCPNACK。当客户机接收到不成功的确认时,它将重新开始DHCP租约过程。

Step1

DHCP客户以广播(broadcast)的形式发送DHCP发现报文DHCPDISCOVER到本地网络。为什么是以广播的方式呢?因为现在并不知道DHCP服务器在什么地方,所以要发现它的IP地址。此时的DHCP客户还没有自己的IP地址,因此它将自己IP数据报的源 IP地址 设为全 0 。而将目的 IP地址 设为全 1 ,也就是我们说的广播地址255.255.255.255。这样,本地网络上所有安装了TCP/IP协议的主机都可以收到这个报文,但只有DHCP服务器才对这个报文进行应答。

4:如果在步骤3中DHCP服务器无响应,客户端会发送广播包DHCPDISCOVER,重新向网络中的DHCP服务器发出ip地址请求;或者等到租约达到100%时,终止租约。

Step2

凡收到DHCP发现报文的DHCP服务器都发出DHCP提供报文。DHCP服务器先在其数据库中 查找该计算机的配置信息。若找到,则返回找到的信息;若找不到,则从服务器的地址池(address pool)中取一个地址分配给该计算机。这里存在的疑问是,为什么要先在数据库里查找?这是因为数据库中可能存在与客户端MAC地址静态绑定的IP地址,而这个地址优先分配。这个阶段DHCP服务器发出的应答报文叫做DHCPOFFER,表示“提供”了IP地址等信息。

图片 4

主要报文

  • 发现报文 DHCPDISCOVER
  • 提供报文 DHCPOFFER
  • 请求报文 DHCPREQUEST
  • 确认报文 DHCPACK
  • 否认报文 DHCPNAK
  • 释放报文 DHCPRELEASE

2:Automatic Allocation:即自动分配,其情形是:一旦 DHCP 客户端第一次成功的从 DHCP 服务器端租用到 IP 地址之后,就永远使用这个地址。优点 是动态分配,缺点是地址利用率低

1. DHCP使用的协议和端口

DHCP数据报采用UDP协议进行封装,DHCP客户使用的UDP端口是68,而DHCP服务器使用的UDP端口是67。

3:客户端从中随机挑选,然后以广播形式向DHCP服务器回应DHCPREQUEST包,宣告使用DHCP服务器提供的地址。其它所有发送DHCPOFFER包的DHCP服务器接收到该数据包后,将释放已经OFFER(预分配)给客户端的IP地址

引言

DHCP是网络体系结构中应用层的一个重要协议,它可以帮助我们对要连接到互联网的计算机进行IP地址等信息的配置。本文从DHCP的原理出发,就DHCP的工作过程 进行详细的探讨。

3:Dynamic Allocation:即动态分配,当 DHCP客户端 第一次从 DHCP 服务器端租用到 IP 地址之后,并非永久的使用该地址,只要租约到期,客户端就

结束语

以上介绍了DHCP协议的详细工作过程,对DHCP使用的端口、协议、租期和计时器等重要概念进行了说明。

图片 5

Step4

被选择的DHCP服务器发送确认报文DHCPACK给DHCP客户。DHCP客户收到报文后,就可以使用刚才提供的IP地址了。这种状态称为“已绑定 ”。

2:DHCP服务器接收到客户端的DHCPDISCOVER报文后,从IP地址池中选择一个尚未分配的IP地址分配给客户端,向该客户端发送包含租借的ip地址的DHCPOFFER包。

动态主机设置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配ip地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。DHCP服务器采用UDP协议的67端口,客户端采用UDP的68端口。

DHCP服务器分配给客户端的动态IP地址通常有一定的租借期限,期满后服务器会收回该IP地址。如果DHCP客户端希望继续使用该地址,需要更新IP租约。

4:当DHCP服务器收到DHCP客户端回答的DHCPREQUEST包后,便向客户端发送包含它所提供的IP地址及其他配置信息的DHCPACK确认包。然后,

二:dhcp地址分配方式:(现在主要使用Manual Allocation和Dynamic Allocation)

四:dhcp client 地址更新过程:

三:dhcp  client获得地址过程:

3:如果在步骤2中DHCP服务器无响应,则在租约期限达到87.5%时,DHCP客户端会向DHCP服务器发送DHCPREQUEST包,再次请求租约的更新,如果此IP地址有效,则DHCP服务器回应DHCPACK,确认租约更新

得释放(release)这个 IP 地址,以给其它主机使用。当然,客户端可以比其它主机更优先的更新(renew)租约,或是租用其它的 IP 地址

DHCP客户端将接收并使用IP地址及其他TCP/IP配置参数。

1:Manual Allocation:即人工分配,获得的IP也叫静态地址,网络管理员为某些少数特定的在网计算机或者网络设备绑定固定ip地址,且地址不会过期。这 种分配方式优点是动态分配,缺点是地址利用率低

TAG标签: 工作原理 dhcp
版权声明:本文由彩民之家高手论坛发布于编程技术,转载请注明出处:Linux DHCP原理