DHCP协议讲解

时间:2022-07-19 19:54:34

一、DHCP服务介绍:
  DHCP为动态主机配置协议,该协议能自动配置主机的IP地址、子网掩码、网关及DNS服务器等TCP/IP信息。DHCP可以降低客户机IP地址配置的复杂度和网络管理成本。
  DHCP协议在BOOTP基础上改进,提供了良好的动态IP地址配置功能,DHCP采用C/S结构,服务器集中式管理所有IP信息,并处理客户端发送的DHCP请求,动态分配地址;客户端从服务器获取指定IP地址及其他网络配置。且与BOOTP相比,DHCP引入IP地址使用期限的概念,分配给客户机的IP并非永久使用,在必要的情况下,服务器收回该地址,高效完成IP地址的分配。
  二、DHCP前身BOOTP操作原理:
  1、BOOTP服务器使用UDP端口67等待用户。
  2、用户发送BOOTP请求报文给服务器,报文封装为UDP用户数据报,使用UDP口68,UDP数据报再封装为IP数据报,在封装中用户用全0的源地址和全1的目标地址。
  3、服务器用广播或者单播响应用户,使用目的端口UDP68,单播回答优先使用,当服务器使用单播回答,则不能用ARP协议服务。
  三、DHCP工作原理:
  (1)当DHCP客户端第一次登录网络时,假定客户机上没有任何IP信息设置,它会使用UDP67端口向网络发出DHCP DISCOVER数据包。由于客户机还不知道DHCP服务器位置,为保证服务器可以接受到请求,数据包源地址设定为0.0.0.0,而目的地址为255.255.255.255,以广播形式发送DHCP DISCOVER的信息。
  (2)当DHCP服务器监听到客户端发送的DHCP DISCOVER广播后,它从那些还未租出的地址范围内,选择可用IP,连同其他TCP/IP设定,以DHCP OFFER数据包形式发送给客户机。且发送DHCP OFFER的服务器将已提供的IP地址上锁,使其对其他任何主机不可用,若用户没有收到DHCPOFFER报文,服务器重发4次,间隔2秒,若没有对这些DHCPOFFER提供任何回复,客户需要休眠5分钟后再发。
  (3)如果客户端收到网络上多台DHCP服务器的响应,会挑选响应嘴快的一个DHCP OFFER,并且会向网络发送一个DHCP REQUEST广播封包,告诉所有DHCP服务器它将选择使用哪台服务器提供的IP地址。同时,客户端还会向网络发送ARP广播数据包,查询网络上是否有其他机器使用该IP地址,如果发现IP地址被占用,客户端发送一个DHCP DECLINE数据包给DHCP服务器,拒绝接受DHCP OFFER,并重新发送DHCP REQUEST信息。
  (4)将地址分配给客户机,DHCP服务器发送一个DHCP ACK消息,以确认IP租约正式生效,以结束DHCP工作过程。
  (5)DHCP CLIENT成功从服务器获取IP后,一般不需要再发送DHCP DISCOVER信息,除非其租约失效或IP地址重新设定为0.0.0.0,而会直接用已经租约到的IP向发此IP的DHCP服务器发出DHCP REQUEST信息,DHCP服务器会尽量让客户端使用原IP,一般会直接响应DHCP ACK,允许客户端继续用该IP。若该地址失效了或者被其他机器获得,服务器则响应一个DHCP NACK数据包给客户端,要求其重新执行DHCP DISCOVER。
  (6)当达到50%的租约期之前,客户发送另一个DHCP REQUEST,请求更新。
  (7)若服务器响应DHCP ACK,则客户将得到新的租约协定,并将计时器复位,若服务器响应DHCP NACK,则客户必须停止使用该IP,并寻找一台服务器。
  (8)若服务器不响应,当达到87.5%租约期时发送另一个DHCP REQUEST,若在租约期结束前收到响应,则采取相应动作。若没有收到,则等待直到租约期结束重新开始第一步。
  当然也可以提前结束租约,命令IPCONFIG /RELEASE就可以了。
  (注:客户机执行DHCP DISCOVER后,若没有DHCP服务器响应客户机的请求,客户机会使用169.254.0.0/16网段中的一个IP地址配置本机。)
  四、DHCP地址租用角色:
  1、时间范围1~3周的租约通常用在机器基本不移动、员工总数也是稳定的网络上。
  2、租用周期平均在1~3天的情况用于大量临时用户有规律的进进出出网络的状况。
  3、租用周期在4~8小时常常用在ISP网络,它的客户端在不断的进进出出。
  五、DHCP租用的更多信息:
  即使客户端通常无限期的保持其地址,它们也能够随时取消其地址租用,从而将地址返回给DHCP服务器管理空闲的IP地址池。在WINDOWS计算机上,IPCONFIG /RELEASE和RENEW可任意释放它们之前的DHCP租用。
  DHCP与DNS集成:
  (1)服务器地址使用DNS公布,它将域名解析为IP地址或反解析。
  (2)DNS不是一个动态环境,因此所有地址更新都必须手工输入。
  (3)只有当user@domain.com的电子邮件地址必须被解析时,客户端地址通常才会发挥作用。
  六、DHCP协议分组格式:
  1、操作码:8BIT定义DHCP协议分组类型:请求为1,回答为2。
  2、硬件类型:8BIT定义物理网络类型,对于以太网为1。
  3、硬件长度:8BIT定义物理地址以字节为单位的长度。
  4、跳数:8BIT定义分组可以经过的最大跳数。
  5、事务标示符:是一个携带整数的4字节字段,由客户设置,用来匹配对请求的回答,服务器在回答时返回同样的值。
  6、秒数:16BIT表示客户从开始请求起共经历多长时间。
  7、标志:1BIT(还有1BIT未用)用来让客户指明一个从服务器的强制广播回答。若回答是单播的,则IP分组的目的IP地址就是指派给用户的地址,由于客户不知道地址,所以丢弃报文,但若数据报广播发送,则每个主机都接收/处理报文。
  8、客户IP地址:4字节,包含客户IP地址,若客户没有这个信息,该字段为0。
  9、你的IP地址:4字节,包含客户IP地址,这是服务器在客户请求下提供的。
  10、服务器IP地址:4字节,包含服务器IP地址,是服务器在回答报文中提供的。
  11、网关地址:4字节,包含一个路由器IP地址,是服务器回答时提供的。
  12、客户硬件地址:客户的硬件地址,一般由客户在请求报文中显示提供的这个地址。
  13、服务器名;可选64字节字段。由服务器在回答分组中提供,包含服务器的域名。
  14、引导文件名:可选128字节字段。由服务器在回答报文中提供,包含引导文件全路径名,客户可以根据路径读取其他引导信息。
  15、选项:在选项清单中增加了几个选项,其中标记为53的值定义客户与服务器之间的交互类型,其他选项定义租约时间。选项字段多达312字节。