什么是DHCP?关于其交互过程和数据包结构?

2022-4-25

随着网络规模的扩大和网络复杂度的增加,配置变得更加复杂。此外,计算机和移动设备(如移动笔记本电脑或无线终端)的数量急剧增加,导致IP地址频繁更换,IP资源不足。动态主机配置协议 (DHCP) 用于为主机动态分配 IP 地址。

一、什么是 DHCP?

动态主机配置协议(DHCP)是一种为互联网终端动态提供配置参数的协议。当终端提交申请时,DHCP服务器可以为终端提供IP地址、网关、DNS服务器地址等参数。基本的 DHCP 协议由 3 个角色组成:DHCP 服务器、DHCP 客户端和 DHCP Snooping/relay(可选)。

在 TCP/IP 网络上,每个工作站必须在访问网络及其资源之前执行基本的网络配置。需要配置的关键参数包括 IP 地址、子网掩码、默认网关和 DNS。

在大型网络中,确保所有主机都具有正确的配置可能是一项艰巨的管理任务,尤其是对于包含漫游用户和笔记本电脑的动态网络。计算机经常从一个子网移动到另一个子网并从网络中删除。大量计算机的手动配置或重新配置可能需要很长时间,并且IP主机配置错误可能导致网络通信失败。

因此,需要简化IP地址配置,实现IP地址集中管理。动态主机配置协议 (DHCP) 就是为此目的而设计的。

1. DHCP可以减少配置错误。

DHCP 将手动 IP 地址配置导致的错误数量降至最低。例如,将正在使用的 IP 地址分配给另一台设备的可能性大大降低。

2. DHCP减少网络管理工作量。

TCP/IP 配置集中自动完成,无需网络管理员手动干预。网络管理员可以集中定义全局网络和特定子网的 TCP/IP 配置。DHCP 选项可以自动将所有附加的 TCP/IP 值分配给客户端。客户地址必须经常更新。例如,远程访问客户端可能随处移动,需要在新位置重新启动时进行高效自动配置。此外,大多数路由器都可以转发 DHCP 配置请求,减少了在每个子网上设置 DHCP 服务器的需要除非其他原因有必要。

二、DHCP 是如何工作的?

● DHCP 服务器

DHCP 服务器处理来自客户端或侦听/中继的地址分配、租约更新和释放请求,并将 IP 地址和其他网络配置分配给客户端。

● DHCP 客户端

DHCP 客户端与 DHCP 服务器交换数据包以获取 IP 地址和其他网络配置。DHCP协议用于从DHCP服务器动态获取IP地址等参数,方便客户端配置和集中管理。

● DHCP 地址申请流程

1. DHCP 进程 – 发现

客户端通过广播本地网段的DHCP Discover报文来发现网络中的DHCP服务器。

发现阶段:

DHCP 客户端搜索 DHCP 服务器。

在发现阶段,DHCP 客户端通过发送 DHCP Discover 报文来搜索 DHCP 服务器。由于客户端不知道 DHCP 服务器的 IP 地址,所以 DHCP 客户端在网络上广播 DHCP Discover 报文。所有收到 DHCP Discover 报文的 DHCP 服务器都会发送响应报文。然后 DHCP 客户端可以知道 DHCP 服务器在网络上的位置。

2. DHCP 流程 – 提供

服务器使用可用的 IP 地址响应客户端。此地址并未真正分配,而是在分配前使用 ICMP 回显请求(或 ARP)数据包进行检查。

Offer phase:

DHCP 服务器为 DHCP 客户端提供 IP 地址。

DHCP 服务器从 DCHP 客户端接收到 DHCP Discover 报文,从其地址池中选择一个合适的 IP 地址,并发送一个 DHCP Offer 报文,该报文中包含 IP 地址、IP 地址租期和其他配置参数(如网关地址和域名称服务器地址)到 DHCP 客户端。

3. DHCP 进程 – 请求

如果客户端收到多个 HCP Offer 报文,DHCP 客户端会根据内容选择其中一个进行响应。如果客户端之前已经获得了IP地址,则将地址写入DHCP请求报文中Options字段的Requested IP Address字段并发送给服务器。

选择阶段:

DHCP 客户端选择一个 IP 地址。

如果多个 DHCP 服务器向一个 DHCP 客户端发送 DHCP Offer 报文,则 DHCP 客户端只会收到最先到达的 DHCP Offer 报文。然后,DHCP客户端广播一个DHCP请求报文,携带服务器标识(Option54),即客户端选择的DHCP服务器的IP地址。

DHCP Request 报文以广播方式发送,通知所有 DHCP 服务器客户端选择了 Option54 中指示的 DHCP 服务器提供的 IP 地址。因此,其他 DHCP 服务器可以回收其预先分配的 IP 地址  

4. DHCP 进程 – ACK

服务器收到DHCP Request报文后,将客户端的网络地址(网络地址和硬件地址)与分配的IP地址绑定,然后将IP地址发送给客户端。

DHCP 服务器确认 IP 地址已分配给 DHCP 客户端。

DHCP服务器收到DHCP客户端发来的DHCP Request报文后,根据DHCP Request报文中携带的MAC地址查找对应的租用记录,如果找到记录,则DHCP服务器发送包含IP地址的DHCP ACK报文,客户端的其他设置。DHCP客户端收到DHCP ACK报文后,会广播一个免费的ARP报文,检测是否有其他主机在使用服务器分配的IP地址。如果在指定时间内没有收到响应,则客户端使用 IP 地址。

5. DHCP 进程 – NAK

服务器收到DHCP Request报文后,如果发现请求的地址不可用,则返回DHCP NAK。

如果DHCP服务器收到DHCP Request报文后没有找到租约记录,或者由于特定原因分配IP地址失败,DHCP服务器会发送DHCP NAK报文通知DHCP客户端没有可用的IP地址。DHCP 客户端需要重新发送 DHCP Discover 报文申请新的 IP 地址 获取 IP 地址后,DHCP 客户端在上线前检查网关的使用状态。如果网关地址不正确或网关故障,DHCP 客户端以四步方式请求新的 IP 地址。

6. DHCP 过程 – 地址更新

当客户端地址达到租约期限(T1)的 50% 时,客户端发送 DHCP 请求单播数据包以更新租约。当客户端地址达到租约期限(T2)的 97.5% 时,客户端会发送一个 DHCP 请求广播包来更新租约。

当 IP 地址达到租期的 50%(T1)时,DHCP 客户端会自动向 DHCP 服务器发送 DHCP 请求报文以更新租期。如果接收到DHCP ACK报文,如果接收到DHCP NAK报文,则续租成功,并重新启动申请流程。当IP地址达到租期的87.5%(T2)时,如果DHCP客户端没有收到DHCP服务器的任何响应,DHCP客户端会自动向DHCP服务器发送广播报文,更新IP地址租期。如果收到 DHCP ACK 报文,则租约续订成功。如果收到 DHCP NAK 数据包,则再次启动应用程序进程。如果客户端在其 IP 地址租期到期之前没有收到任何服务器的任何响应,

● DHCP 网络应用

在实时网络上,IP 地址通常是从本地地址池和远程地址池中分配的。OLT将IPv4地址组织成一个IPv4地址池进行管理,有以下两种方式:

1、本地地址池由OLT管理。OLT在本地地址池中分配、更新和回收IP地址。

2、远程地址池是外部DHCP服务器的镜像。它不包含实际的IP地址,而是指定地址池对应的DHCP服务器。使用远程地址池时,OLT可以代表用户发起请求或中继用户向DHCP服务器申请、更新或释放IP地址的请求。例如,DHCP 侦听或中继。

与我们的专家取得联系

告诉我们您的业务需求,我们会找到完美的解决方案

联系我们
Clicky