分享

从big bang到万物互联专题七:DHCP协议介绍

 方小米 2024-05-09 发布于浙江

前言

本期话题,我们继续和小伙伴们一起学习网络基础协议,今天我们要介绍的是一款非常常用的以太网协议,它广泛的应用在地址分配领域-DHCP协议。

如果小伙伴们对通信技术感兴趣,欢迎关注公众号:通信行业搬砖工














1. 什么是DHCP协议



DHCP(Dynamic Host Configuration Protocol)协议,全称动态主机配置协议,是一种基于客户端/服务器模式的网络协议。发明给协议的目的旨在简化网络管理过程中的IP地址分配和配置。RFC 2131 是 DHCP 协议的正式规范,由互联网工程任务组(IETF)发布,详细描述了 DHCP 协议的操作流程、消息格式、选项和扩展机制。

DHCP 协议允许网络设备(如计算机、打印机、路由器等)在加入网络时自动从 DHCP 服务器获取网络配置参数,如 IP 地址、子网掩码、默认网关、DNS 服务器地址等。通过这种方式,网络管理员可以集中管理 IP 地址资源,而不需要手动配置每台设备的网络参数,从而大大提高了网络管理的效率和灵活性。









2. 为什么需要DHCP协议

为什么需要DHCP协议呢?我们从网络拓扑的自动化配置、IP地址管理、提高网络效率、增强网络安全性、简化网络组网以及适应复杂网络环境等方面进行分析,解答为什么需要DHCP协议。

1、自动化配置IP地址方面。如上图所示,组网比较简单的校园网为例,如果是手动配置IP,网管同志需要给每个接口手动配置IP地址、子网掩码、DNS信息、默认网关等等参数,人工配置存在着配置复杂,任务量大的痛点。

遇到问题,那么我们请教协议规范怎么描述吧,看看业界大佬们是如何解决这个问题的。

RFC 2131协议规范中,DHCP被设计为自动分配IP地址和其他网络参数的协议。在传统的网络环境中,每个新接入网络的设备都需要手动配置IP地址、子网掩码、默认网关等参数,这不仅耗时且容易出错。DHCP协议允许这些设备自动从DHCP服务器获取所需的配置参数,从而极大地减少了手动配置的工作量,并降低了配置错误的风险。

2、IP地址管理方面。解决人工管理IP存在地址登记不能及时更新,可能存在分配冲突等失误场景。当终端离开当前网络,不能及时回收IP资源等缺陷。

而采用DHCP协议能够集中管理IP地址资源,确保每个设备都能获得一个唯一的IP地址。在大型网络中,IP地址的管理和分配是一个复杂而繁琐的任务。DHCP服务器可以维护一个IP地址池,并根据客户端的请求动态地分配IP地址。这不仅提高了IP地址的利用率,还避免了IP地址冲突的问题。

3、提高网络效率:DHCP协议可以自动为新接入的设备分配IP地址和其他网络参数,无需人工干预。这大大加快了设备接入网络的速度,提高了网络的整体效率。同时,DHCP还支持地址租约和地址重用机制,进一步提高了IP地址的利用效率。

4、增强网络安全性:通过DHCP协议,网络管理员可以设置安全策略,限制某些设备只能获取特定的IP地址或网络配置参数。这有助于防止未授权设备接入网络,增强了网络的安全性。

5、简化网络组网:在全光融合组网方案中,DHCP协议的功能尤为重要。全光网络具有高速、高带宽的特点,对网络管理的要求也更高。DHCP协议能够自动为接入的设备分配IP地址和其他网络参数,无需手动配置,大大简化了网络组网的过程。同时,DHCP服务器的高度可靠性和稳定性能够应对大规模用户并发请求,确保网络的稳定运行。

6、适应复杂网络环境:在复杂的网络环境中,可能存在多个子网和VLAN(虚拟局域网)。DHCP协议能够跨越子网和VLAN为设备分配IP地址和其他网络参数,实现了网络资源的共享和统一管理。这有助于简化网络结构,提高网络的可管理性和可扩展性。







3. DHCP协议工作原理介绍



DHCP(动态主机配置协议)的工作原理在RFC 2131文档规范中得到了详尽的描述。DHCP协议主要用于简化网络管理过程中的IP地址分配和配置。它允许网络设备(如计算机、打印机、路由器等)在加入网络时自动从DHCP服务器获取网络配置参数,如IP地址、子网掩码、默认网关、DNS服务器地址等。

DHCP协议的工作流程通常包括以下四个步骤:

  1. DHCP DISCOVER(发现阶段)当一个新的客户端设备首次连接到网络或需要重新获取IP地址时,它会向本地网络广播一个DHCP DISCOVER消息。这个消息是一个UDP数据包,源端口通常为68,目标端口为67,以广播地址(255.255.255.255)作为目标地址。DHCP DISCOVER消息中包含了客户端的MAC地址和需要请求的参数列表。

  2. DHCP OFFER(提供阶段):当DHCP服务器接收到DHCP DISCOVER消息后,它会从自己的IP地址池中检查是否有可用的IP地址。如果有,服务器会选择一个IP地址,并连同其他网络配置参数(如子网掩码、默认网关、DNS服务器地址等)一起,通过DHCP OFFER消息发送给客户端。DHCP OFFER消息也是一个UDP数据包源端口为67,目标端口为68,目标地址是客户端的MAC地址。

  3. DHCP REQUEST(请求阶段):客户端可能会收到来自多个DHCP服务器的OFFER消息。在这种情况下,客户端通常只会选择其中一个服务器(通常是第一个响应的服务器)的IP地址,并向该服务器发送一个DHCP REQUEST消息进行确认。这个消息中包含了客户端选择的IP地址和其他配置参数。

  4. DHCP ACK(确认阶段):被选中的DHCP服务器收到DHCP REQUEST消息后,会发送一个DHCP ACK消息给客户端,确认IP地址和其他网络参数的分配。此时,客户端就可以使用这些配置参数进行网络通信了。如果服务器发现请求的IP地址无法分配(例如已被其他设备占用)则会发送一个DHCP NAK(否认)消息给客户端,拒绝分配IP地址。

在整个过程中,DHCP协议使用了一系列的消息类型(如DHCP DISCOVER、DHCP OFFER、DHCP REQUEST、DHCP ACK和DHCP NAK)和字段(如translateId、硬件地址、请求参数列表等)来确保客户端和服务器之间的通信和协商能够顺利进行。此外,DHCP协议还支持租约管理、地址冲突处理等机制,以确保IP地址的有效利用和网络的稳定性。

带中继的DHCP接入网络原理

在有DHCP中继的场景中,DHCP客户端首次接入网络的工作原理与无中继场景类似,但DHCP中继在其中起到了关键的作用。以下是DHCP中继参与下DHCP工作的主要步骤:

  1. 发现阶段DHCP客户端广播发送DHCP DISCOVER报文。DHCP中继接收到报文后,会检查hops字段和giaddr字段,然后修改相关字段,并将报文转发给DHCP服务器或下一跳中继。

  2. 提供阶段DHCP服务器收到DISCOVER报文后,从与giaddr字段同一网段的地址池中选择IP地址等参数,并通过DHCP OFFER报文发送给DHCP中继。DHCP中继接收到OFFER报文后,根据广播标志位决定是广播还是单播方式将报文发送给DHCP客户端。

  3. 选择阶段客户端收到OFFER报文后,选择一个并发送DHCP REQUEST报文。DHCP中继再次起到转发作用,将REQUEST报文传递给DHCP服务器。

  4. 确认阶段DHCP服务器回应DHCP ACK报文,确认IP地址的分配。DHCP中继将ACK报文转发给DHCP客户端,完成整个配置过程。

在DHCP客户端重用曾经使用过的IP地址的场景中,工作过程简化为两步交互:

  1. 选择阶段DHCP客户端直接广播发送DHCP REQUEST报文,其中Option50字段包含之前使用过的IP地址。

  2. 确认阶段DHCP服务器根据REQUEST报文中的MAC地址查找租约记录。如果找到匹配的租约,服务器回应DHCP ACK报文,确认客户端可以继续使用该IP地址。如果没有找到匹配的租约,服务器则不回应,客户端需要重新开始DHCP过程请求新的IP地址。








4. DHCP租期更新原理介绍



从RFC 2131协议规范上描述,DHCP租期更新原理主要涉及DHCP客户端和DHCP服务器之间如何管理和更新IP地址租期,以确保IP地址的有效利用和网络资源的合理分配。

DHCP租期是DHCP服务器分配给客户端的IP地址的有效使用时间。当客户端从DHCP服务器获取到一个IP地址时,这个地址会有一个租期限制,即客户端可以在一段时间内使用该地址。租期的长度可以在DHCP服务器上配置,通常为几个小时到几天不等。

DHCP租期更新原理如下:

  1. 租期过半时,客户端开始准备更新当客户端使用IP地址的时间达到租期的一半时,它会开始准备更新租期。这是因为客户端需要确保在租期到期之前与DHCP服务器进行通信,以延长租期或释放IP地址。

  2. 客户端发送DHCP REQUEST消息客户端会向DHCP服务器发送一个DHCP REQUEST消息,请求更新IP地址的租期。这个消息中包含了客户端的MAC地址、当前使用的IP地址以及请求更新的租期等信息。

  3. DHCP服务器处理请求DHCP服务器在收到客户端的DHCP REQUEST消息后,会检查请求的IP地址是否在其管理的IP地址池中,以及客户端是否具有更新租期的权限如果一切正常,服务器会同意更新租期,并向客户端发送一个DHCP ACK消息

  4. DHCP ACK消息确认更新DHCP ACK消息中包含了更新后的租期信息。当客户端收到这个消息后,它会更新本地的租期计时器,并继续使用IP地址进行网络通信。

  5. 租期到期前的再次更新如果在更新后的租期内,客户端需要继续使用IP地址,它可以在租期到期前的任何时间再次发送DHCP REQUEST消息进行租期更新。这个过程可以反复进行,以确保客户端可以持续地使用IP地址。

  6. 租期到期且未更新,客户端释放IP地址如果客户端在租期到期前没有发送DHCP REQUEST消息进行更新,那么当租期到期时,客户端将不再具有使用该IP地址的权限。此时,客户端会停止使用该地址,并发送一个DHCP RELEASE消息给DHCP服务器,通知服务器释放该地址。服务器在收到RELEASE消息后,会将该地址重新放回IP地址池中,以供其他客户端使用。










作者简介




作者:通信行业搬砖工 

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多