DHCP (动态主机配置协议) 是一种网络协议,它使 DHCP 服务器/网络服务器能够为请求设备动态分配 IP 地址、子网掩码、默认网关和其他网络配置参数。它通过有效地自动分配 IP 并最大限度地减少 IP 浪费和 IP 冲突,自动执行网络管理员的普通 IP 配置任务。DHCP 服务器可以从其地址池中为网络设备动态分配 IP 地址,并回收它们。
为了帮助您入门,这里列出了您需要了解的术语列表,以便更好地了解 DHCP。
虽然网络管理员可以为网络中的每个设备手动配置 IP 地址和其他网络参数,但随着网络的扩展,它变得越来越乏味和困难。通过实施诸如自带设备 (BYOD) 等策略来提高生产力,IT 网络管理员分配 IP 地址并手动跟踪它们是一种负担。引入 DHCP 是为了简化流程。DHCP 通过自动为网络设备分配 IP 地址和其他相关参数来自动执行这个普通的 IP 配置任务。
当网络设备请求 IP 地址以在网络中进行通信时,DHCP 服务器会从其 IP 地址池中为客户端提供一个 IP 地址。当设备接受此 IP 地址时,DHCP 服务器会使用 IP 地址和分配的客户端更新其数据存储。
由于 DHCP 启用动态 IP 地址分配,分配给 DHCP 客户端设备的地址不是固定的。DHCP 服务器不会为设备永久分配 IP 地址,而是在特定时间段内提供 IP 地址。
当客户端向 DHCP 服务器请求 IP 地址时,DHCP 服务器会提供 IP 地址和网络配置参数,例如子网掩码和特定时间段的默认网关——称为租约。为客户端分配 IP 地址的期间称为租用期。客户端可以在这段时间内使用所有分配的网络参数,并使用分配的IP地址在网络中唯一标识。
在租期期间或结束时,如果客户端希望继续使用相同的网络参数,包括 IP 地址,则可以通过 DHCP 服务器请求续租。DHCP 服务器收到此消息后,会更新客户端的租用期,客户端可以继续使用该 IP 地址延长一段时间。
在租期结束时,如果客户端没有请求续订,或者如果服务器没有收到续订请求,则分配的 IP 的租约到期。这会导致 DHCP 回收 IP 和相关网络配置,并将其添加回其 IP 地址池。
如前所述,每个 DHCP 服务器都有一个 IP 地址池。此池中的任何 IP 地址都可以动态分配给请求客户端,并回收回池中。
为什么 DHCP 租用 IP 地址而不是永久分配它?永久分配IP地址,或长时间分配IP地址,可能会导致地址短缺。DHCP 服务器在其 IP 池中只有一组有限的 IP 地址。如果我们长期为特定的设备分配一个IP地址,那么当想要连接网络的设备数量超过可用IP地址的数量时,就会出现服务中断,因为DHCP服务器无法提供服务给新客户。
例如:
假设您有一个 DHCP 服务器,它的 IP 池中有 3 个 IP(196.128.12.1、196.128.12.2、196.128.12.3)。DHCP 服务器用于为进入本地网络的设备动态分配 IP 地址。
设备A、B、C同时入网。DHCP 服务器分配 A - 196.128.12.1、B - 196.128.12.2 和 C -196.128.12.3。
DHCP 服务器的 IP 池现在已经分配了所有的 IP。
每台设备在网络中停留两个小时,然后断开连接。
DHCP 服务器为网络设备分配 IP 地址和其他网络配置参数的过程分为四个步骤:
为了使设备在网络中进行通信,它需要一个 IP 地址。DHCP 客户端设备通过在网络内广播称为DHCPDISCOVER的UDP 数据包来获取 IP 地址和网络参数。
在收到 DHCPDISCOVER 广播后,所有非权威服务器都会丢弃或忽略该消息。网络中的 DHCP 服务器接收并处理广播数据包。
DHCP Discover 消息包含以下详细信息:
UDP 源端口 | 68 |
---|---|
UDP 目标端口 | 67 |
源 IP | 0.0.0.0 |
目标 IP | 255.255.255.255 |
DHCPDISCOVER 数据包内容 |
此处,广播数据包的源 IP 为 0.0.0,因为尚未为客户端设备分配 IP 地址。目标 IP 为 255.255.255.255,通过一个称为有限广播的过程将广播数据包发送到所有网络设备。可以将目标 IP 设置为特定的子网 ID 以启用定向广播。
当有效的 DHCP 服务器收到 DHCPDISCOVER 广播消息时,它会在其 IP 池中保留一个 IP,并将该 IP 租用给请求的客户端。它通过DHCPOFFER消息将其 IP 租用提议、子网掩码和默认网关传送给请求客户端。
UDP 源端口 | 68 |
---|---|
UDP 目标端口 | 67 |
源 IP | 192.168.31.9 |
目标 IP | 255.255.255.255 |
DHCPDISCOVER 数据包内容 |
这里 192.168.31.9 是从其池中提供 IP 地址的 DHCP 服务器。传统上,此报价消息通过指定客户端硬件或 MAC 地址发送到客户端。
在收到 DHCPOFFER 消息后,客户端通过向服务器发送DHCPREQUEST消息来请求分配通过 DHCPOFFER 消息提供的 IP 地址。此消息通知 DHCP 服务器将提供的 IP 地址租用分配给客户端。
在从网络中的服务器接收到多个 DHCPOFFER 消息时,客户端仅向客户端首先收到其消息的 DHCP 服务器发送 DHCPREQ(DHCP 请求)消息。其他报价被丢弃或忽略。
UDP 源端口 | 68 |
---|---|
UDP 目标端口 | 67 |
源 IP | 0.0.0.0 |
目标 IP | 255.255.255.255 |
DHCPREQ 数据包内容 |
收到 DHCPREQUEST 消息后,DHCP 服务器将 IP 地址分配给客户端,并将其记录在其数据存储中。服务器通过发送 DHCPACK(DHCP 确认)消息来确认分配的 IP 地址、子网掩码和默认网关详细信息。
客户端现在可以开始使用分配 IP 和网络参数。
UDP 源端口 | 68 |
---|---|
UDP 目标端口 | 67 |
源 IP | 192.168.31.9 |
目标 IP | 255.255.255.255 |
DHCPACK 数据包内容 |
设备只能在它们所属的网络内发送广播消息。他们不能跨网络或子网广播消息。当网络中没有有效的 DHCP 服务器时,该网络中的设备无法获取 IP 地址,因为它无法将 DHCPDISCOVER 消息广播到其网络外的服务器。
这是通过使用 DHCP 中继代理解决的问题。
假设有两个网络,网络 A 和网络 B,由路由器连接。网络 A 中有一个有效的 DHCP 服务器。网络 A 中的每个设备都可以通过该服务器获取 IP 租约。假设网络 B 中没有 DHCP 服务器。由于设备无法在网络之间广播,因此网络 B 中的设备无法获得 IP 租约。
解决此问题的两种方法:
我们通过将 DHCP 中继服务配置到网络 B 中的一台设备中来使用 DHCP 中继代理。该设备然后接收来自网络 B 中的客户端的 DHCPDISCOVER 广播消息,并将其转发到网络 A 中的 DHCP 服务器。网络 A 的 DHCP服务器将 DHCPOFFER 发送到网络 B 中的中继代理,该代理在其网络内广播消息。类似地,DHCPREQ 和 DHCPACK 消息在网络 B 中的 DHCP 客户端和网络 A 中的 DHCP 服务器之间交换,通过可以充当中间人的 DHCP 代理进行中继。
与使用中继代理相比,在网络 B 中使用单独的 DHCP 服务器会带来两个困难:
配置单独的中继代理使该过程更加容易。中继代理可以是网络内的设备,也可以配置网络路由器本身提供DHCP中继服务。
基本 DHCP 没有标准的身份验证或验证机制。这可以打开网络:
一种常见的 DHCP 攻击是DHCP 欺骗。
攻击者或恶意代理可以通过使用中间人技术伪装成有效的 DHCP 服务器。该攻击者可能是带有内置 DHCP 服务器的恶意路由器或无线路由器。当有效的 DHCP 客户端发送 DHCPDISCOVER 时,网络中的攻击者会发送 DHCPOFFER。当客户端请求并开始使用攻击者服务器提供的 IP 地址时,攻击者提供的默认网关使攻击者能够通过默认网关获得客户端与网络之间的所有流量的可见性。因此,攻击者可以窃听客户端的流量。
为了避免这种攻击,网络管理员在网络中配置 DHCP 监听。
DHCP 侦听使交换机仅在通过受信任端口发送 DHCPOFFER 消息时才对其进行处理。
DHCP 侦听的过程涉及最初将所有端口标记为不受信任。然后,网络管理员仅将网络中的有效 DHCP 端口标记为有效。发送 DHCPDISCOVER 广播时,客户端丢弃从不受信任端口接收到的所有 DHCPOFFERS,并仅向已通过有效端口发送的提议发送 DHCPREQUEST。因此,可能已被攻击者发送的数据包被丢弃。
DHCP 侦听加强了网络中的 DHCP 基础设施。
网络管理员可以手动配置 DHCP 服务器和客户端,并使用本机命令查看 DHCP 客户端的 IP 租用和配置。
命令 | DHCP 配置 |
---|---|
ipconfig /全部 | 显示 Internet 协议详细信息,例如设备的 IP 地址、子网掩码和默认网关 |
ipconfig /发布 | 它释放分配给设备的当前 IP 配置(租约终止) |
ipconfig /更新 | 更新或延长分配给设备的 IP 配置的租用期 |
ip dhcp 监听 | 将网络中的所有端口标记为不受信任 |
ip dhcp snooping vlan number [number] | 在 [number] 字段中指定 VLAN 编号可启用特定 VLAN 上的 DHCP 侦听 |
interface [interface id]IP dhcp snooping trust | 将指定的接口标记为可信,将通过该接口接收到的所有 DHCPOFFER 消息验证为有效消息 |
显示 ip dhcp snooping | 显示有关 DHCP 侦听的一般信息 |
显示运行配置 dhcp | 显示当前正在运行的 DHCP 侦听配置 |
虽然本机命令启用设备中的 DHCP 配置,但随着网络规模的扩大,使用这些命令配置 DHCP 服务器和客户端非常耗时且乏味。要管理大型组织中的 DHCP 服务器,建议使用网络资源管理软件,例如 ManageEngine OpUtils。
DHCP 服务器是网络基础设施的构建块。由于其易于操作和使用,DHCP 服务器被用于从家庭网络到企业级网络的大小操作。
使用 DHCP 的复杂网络基础设施可以通过 OpUtils(一个综合网络 IP 和交换机端口管理器)轻松管理。OpUtils 与流行的 DHCP 服务器集成: