网络知识 娱乐 DHCP详细解析

DHCP详细解析

定义

DHCP动态主机配置协议):是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。

通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

DHCP客户端

通常为网络中的PC、打印机等终端设备,使用从DHCP服务器分配下来的IP信息,包括IP地址、DNS、子网掩码、默认网关等。

DHCP服务器

所有的IP网络设定信息都由DHCP服务器集中管理,并处理客户端的DHCP请求。
DHCP服务器为客户端分配IP地址有三种形式

  1. 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
  2. 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
  3. 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。

1、管理员将一个IP地址固定分配给一个客户端。
2、随机地将地址永久性分配给客户端。
3、随机地将地址分配给客户端使用一段时间。

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

端口

DHCP采用UDP作为传输协议,客户端发送消息到DHCP服务器的的 67号 端口,服务器返回消息给客户端的 68号 端口。

DHCP中继

默认情况下,路由器隔离广播包,不会将收到的广播包从一个子网发送到另一个子网。当DHCP服务器和客户端不在同一个子网时,充当客户端默认网关的路由器将广播包发送到DHCP服务器所在的子网,这一功能就称为DHCP中继
DHCP中继代理,就是在DHCP服务器和客户端之间转发DHCP数据包。当DHCP客户端与服务器不在同一个子网上,就必须有DHCP中继代理来转发DHCP请求和应答消息。DHCP中继代理的数据转发,与通常路由转发是不同的,通常的路由转发相对来说是透明传输的,设备一般不会修改IP包内容。而DHCP中继代理接收到DHCP消息后,重新生成一个DHCP消息,然后转发出去
DHCP中继主机必须自己具有路由能力,且能将双方的数据报互传对方。如果不使用中继,也可以在每一个网络中安装DHCP服务器,但这样的话,一来设备成本会增加,而且管理上面也比较分散。当然,如果在大型的网络中,这样的均衡式架构还是可取的。
在这里插入图片描述

报文

1DHCP DISCOVER客户端开始DHCP过程的第一个报文,是请求IP地址和其它配置参数的广播报文。
2DHCP OFFER服务器对DHCP DISCOVER报文的响应,是包含有效IP地址及配置的单播(或广播)报文。
3DHCP REQUEST客户端对DHCP OFFER报文的响应,表示接受相关配置。客户端续延IP地址租期时也会发出该报文。
4DHCP DECLINE:当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止使用该IP地址。
5DHCP ACK服务器对客户端的DHCP REQUEST报文的确认响应报文。客户端收到此报文后,才真正获得了IP地址和相关的配置信息。
6DHCP NAK服务器对客户端的DHCP REQUEST报文的拒绝响应报文。客户端收到此报文后,会重新开始新的DHCP过程。
7DHCP RELEASE客户端主动释放服务器分配的IP地址。当服务器收到此报文后,则回收该IP地址,并可以将其分配给其它的客户端。
8DHCP INFORM客户端获得IP地址后,发送此报文请求获取服务器的其它一些网络配置信息,如DNS等。
在这里插入图片描述

DHCP消息的格式是基于BOOTP(Bootstrap Protocol)消息格式的,这就要求设备具有BOOTP中继代理的功能,并能够与BOOTP客户端和DHCP服务器实现交互。BOOTP中继代理的功能,使得没有必要在每个物理网络都部署一个DHCP服务器。RFC 951和RFC 1542对BOOTP协议进行了详细描述。

DHCP交互过程

  1. DHCP Client广播的方式发出DHCP Discover报文
  2. 所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文,所有的DHCP Server会给出响应,向DHCP Client发送一个DHCP Offer报文

DHCP Offer报文中“Your(Client) IP Address”字段就是DHCP Server能够提供给DHCP
Client使用的IP地址,且DHCP Server会将自己的IP地址放在“option”字段中以便DHCP Client区分不同的DHCP
Server。DHCP Server在发出此报文后会存在一个已分配IP地址的纪录。

  1. DHCP Client只能处理其中的一个DHCP Offer报文,一般的原则是DHCP Client处理最先收到的DHCP Offer报文。
    DHCP Client会发出一个广播DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址。
  2. DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果不相同,DHCP Server不做任何处理只清除相应IP地址分配记录;如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息
  3. DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。如果可以使用,则DHCP Client成功获得IP地址并根据IP地址使用租期自动启动续延过程;如果DHCP Client发现分配的IP地址已经被使用,则DHCP Client向DHCPServer发出DHCP Decline报文,通知DHCP Server禁用这个IP地址,然后DHCP Client开始新的地址申请过程。
  4. DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址,DHCP Server收到DHCP Release报文后,会回收相应的IP地址并重新分配。

DHCP客户端可以接收到多个DHCP服务器的DHCPOFFER数据包,然后可能接受任何一个DHCPOFFER数据包,但客户端通常只接受收到的第一个DHCPOFFER数据包。另外,DHCP服务器DHCPOFFER中指定的地址不一定为最终分配的地址,通常情况下,DHCP服务器会保留该地址直到客户端发出正式请求。
正式请求DHCP服务器分配地址DHCPREQUEST采用广播包,是为了让其它所有发送DHCPOFFER数据包的DHCP服务器也能够接收到该数据包,然后释放已经OFFER(预分配)给客户端的IP地址

在这里插入图片描述

DHCP续租

1、在使用租期过去50%时刻处, 客户端向服务器发送单播DHCP REQUEST报文续延租期。
2、如果收到服务器的DHCP ACK报文,则租期相应向前延长,续租成功。如果没有收到DHCP ACK报文,则客户端继续使用这个IP地址。在使用租期过去**87.5%**时刻处,向服务器发送广播DHCP REQUEST报文续延租期。
3、如果收到服务器的DHCP ACK报文,则租期相应向前延长,续租成功。如果没有收到DHCP ACK报文,则客户端继续使用这个IP地址。在使用租期到期时,客户端自动放弃使用这个IP地址,并开始新的DHCP过程。

参考:DHCP、
动态主机配置协议