什么是DHCP
DHCP (动态主机配置协议) 是一种网络协议,它使 DHCP 服务器/网络服务器能够为请求设备动态分配 IP 地址、子网掩码、默认网关和其他网络配置参数。它通过有效地自动分配 IP 并最大限度地减少 IP 浪费和 IP 冲突,自动执行网络管理员的普通 IP 配置任务。DHCP 服务器可以从其地址池中为网络设备动态分配 IP 地址,并回收它们。
为了帮助您入门,这里列出了您需要了解的术语列表,以便更好地了解 DHCP。
- DHCP 服务器:配置为运行 DHCP 服务的网络服务器。DHCP 服务器负责自动为网络设备分配 IP,服务器数据存储包含可分配给请求客户端的 IP 地址池。
- DHCP 客户端:支持 DHCP 客户端服务的网络设备,例如笔记本电脑和打印机。DHCP 客户端能够向 DHCP 服务器请求动态 IP 地址和网络参数,以便通过 Internet 进行通信。
- DHCP 范围: DHCP 范围指定 DHCP 服务器可以提供给其客户端的 IP 地址范围,必须配置 DHCP 范围以确定 DHCP 服务器可以租用或续订的 IP 地址池。
- IP 池: DHCP 服务器可以分配给其请求客户端的一组连续 IP 地址。
例如:如果 DHCP 服务器 A 的 IP 池为 192.168.20.1 - 192.168.20.25,那么它可以将该范围内的任何 IP 地址分配给请求的网络设备。 - 静态 IP:静态 IP 是手动分配给网络设备的 IP 地址。这些是固定地址分配,在联网期间的任何时候都不会更改。
例如:172.217.6.164 是谷歌的静态 IP 地址。您始终可以使用其静态 IP 访问 Google。 - 动态 IP:动态 IP 是由地址提供程序(例如 DHCP 服务器)自动分配给网络设备的 IP 地址。支持动态 IP 分配的设备不需要每次连接到 Internet 时都具有相同的 IP 地址。
例如:在连接到免费 Wi-Fi 时分配给您的设备的 IP 地址可能会在您每次建立新连接时发生变化。 - 默认网关:默认网关是启用网络之间通信的设备,如路由器。
DHCP的主要功能
虽然网络管理员可以为网络中的每个设备手动配置 IP 地址和其他网络参数,但随着网络的扩展,它变得越来越乏味和困难。通过实施诸如自带设备 (BYOD) 等策略来提高生产力,IT 网络管理员分配 IP 地址并手动跟踪它们是一种负担。引入 DHCP 是为了简化流程。DHCP 通过自动为网络设备分配 IP 地址和其他相关参数来自动执行这个普通的 IP 配置任务。
当网络设备请求 IP 地址以在网络中进行通信时,DHCP 服务器会从其 IP 地址池中为客户端提供一个 IP 地址。当设备接受此 IP 地址时,DHCP 服务器会使用 IP 地址和分配的客户端更新其数据存储。
DHCP 租约、续订、到期
由于 DHCP 启用动态 IP 地址分配,分配给 DHCP 客户端设备的地址不是固定的。DHCP 服务器不会为设备永久分配 IP 地址,而是在特定时间段内提供 IP 地址。
DHCP 租约
当客户端向 DHCP 服务器请求 IP 地址时,DHCP 服务器会提供 IP 地址和网络配置参数,例如子网掩码和特定时间段的默认网关——称为租约。为客户端分配 IP 地址的期间称为租用期。客户端可以在这段时间内使用所有分配的网络参数,并使用分配的IP地址在网络中唯一标识。
续租
在租期期间或结束时,如果客户端希望继续使用相同的网络参数,包括 IP 地址,则可以通过 DHCP 服务器请求续租。DHCP 服务器收到此消息后,会更新客户端的租用期,客户端可以继续使用该 IP 地址延长一段时间。
租约到期
在租期结束时,如果客户端没有请求续订,或者如果服务器没有收到续订请求,则分配的 IP 的租约到期。这会导致 DHCP 回收 IP 和相关网络配置,并将其添加回其 IP 地址池。
通过 DHCP 有效使用 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。
每台设备在网络中停留两个小时,然后断开连接。
- 场景一:没有租期。(IP 使用静态分配永久分配。)
当另一台设备 D 在两个小时后进入网络时,由于 DHCP 服务器的 IP 池中没有可用的 IP 地址,它无法连接到网络。所有 IP 都已永久分配给设备 A、B 和 C。 - 场景2:两天的租期。(IP 是动态分配的。)
当另一个设备 D 在两个小时后进入网络时,它无法连接到网络,因为仍然没有可用的 IP 地址。这是因为,虽然设备 A、B 和 C 在两个小时后断开了网络连接,但分配给它们的 IP 地址有两天的租用期。呃,IP 地址在接下来的两天里仍然被分配。因此,设备 D 无法获取 IP 地址以连接到网络。 - 问题:在这两种情况下(有和没有租期),使用 3 个 IP 地址池,设备 D 无法连接到网络。
- 解决方案:解决方案是实现DHCP,租期为2小时。
在两小时分配期结束时,设备 A、B 和 C 的租约到期。选择留在网络中的设备可以续订租约,而其他设备的租约到期。 因此,当设备 D 进入网络时,设备 A 的租约将到期,并且 IP 196.128.12.1 将被回收回 IP 池。然后可以将此 IP 分配给设备 D。
DHCP 的 4 个步骤:DORA 流程
DHCP 服务器为网络设备分配 IP 地址和其他网络配置参数的过程分为四个步骤:
- 发现 DHCP 服务器
- 提供IP租赁
- 请求 IP 租用
- 确认请求
第 1 步:DHCP 客户端发现 DHCP 服务器
为了使设备在网络中进行通信,它需要一个 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 以启用定向广播。
第 2 步:DHCP 服务器向客户端提供 IP 和网络配置参数
当有效的 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 地址发送到客户端。
第 3 步:客户端确认所需的 DHCP 提供并请求 IP 租用
在收到 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 数据包内容 | |
第 4 步:DHCP 服务器确认客户端 IP 租用请求
收到 DHCPREQUEST 消息后,DHCP 服务器将 IP 地址分配给客户端,并将其记录在其数据存储中。服务器通过发送 DHCPACK(DHCP 确认)消息来确认分配的 IP 地址、子网掩码和默认网关详细信息。
客户端现在可以开始使用分配 IP 和网络参数。
UDP 源端口 | 68 |
---|
UDP 目标端口 | 67 | 源 IP | 192.168.31.9 | 目标 IP | 255.255.255.255 | DHCPACK 数据包内容 | |
DHCP 中继代理
设备只能在它们所属的网络内发送广播消息。他们不能跨网络或子网广播消息。当网络中没有有效的 DHCP 服务器时,该网络中的设备无法获取 IP 地址,因为它无法将 DHCPDISCOVER 消息广播到其网络外的服务器。
这是通过使用 DHCP 中继代理解决的问题。
假设有两个网络,网络 A 和网络 B,由路由器连接。网络 A 中有一个有效的 DHCP 服务器。网络 A 中的每个设备都可以通过该服务器获取 IP 租约。假设网络 B 中没有 DHCP 服务器。由于设备无法在网络之间广播,因此网络 B 中的设备无法获得 IP 租约。
解决此问题的两种方法:
- 在网络 B 中使用单独的 DHCP 服务器
- 使用 DHCP 中继代理
我们通过将 DHCP 中继服务配置到网络 B 中的一台设备中来使用 DHCP 中继代理。该设备然后接收来自网络 B 中的客户端的 DHCPDISCOVER 广播消息,并将其转发到网络 A 中的 DHCP 服务器。网络 A 的 DHCP服务器将 DHCPOFFER 发送到网络 B 中的中继代理,该代理在其网络内广播消息。类似地,DHCPREQ 和 DHCPACK 消息在网络 B 中的 DHCP 客户端和网络 A 中的 DHCP 服务器之间交换,通过可以充当中间人的 DHCP 代理进行中继。
为什么子网使用中继代理而不是 DHCP 服务器
与使用中继代理相比,在网络 B 中使用单独的 DHCP 服务器会带来两个困难:
- 成本 – 实施单独的 DHCP 服务器的成本高于配置中继代理
- 管理开销——在不同网络中管理单独的 DHCP 服务器会增加网络管理员的网络管理开销
配置单独的中继代理使该过程更加容易。中继代理可以是网络内的设备,也可以配置网络路由器本身提供DHCP中继服务。
DHCP 攻击和安全
基本 DHCP 没有标准的身份验证或验证机制。这可以打开网络:
- 未经身份验证或欺诈的 DHCP 服务器向有效或真实的 DHCP 客户端提供虚假的 DHCP 服务
- 真实或有效的 DHCP 服务器最终可能会向试图访问网络的非真实或恶意 DHCP 客户端提供 DHCP 服务
- 来自恶意 DHCP 客户端的资源耗尽攻击可能会导致网络中有效 DHCP 客户端的服务中断
一种常见的 DHCP 攻击是DHCP 欺骗。
DHCP 欺骗
攻击者或恶意代理可以通过使用中间人技术伪装成有效的 DHCP 服务器。该攻击者可能是带有内置 DHCP 服务器的恶意路由器或无线路由器。当有效的 DHCP 客户端发送 DHCPDISCOVER 时,网络中的攻击者会发送 DHCPOFFER。当客户端请求并开始使用攻击者服务器提供的 IP 地址时,攻击者提供的默认网关使攻击者能够通过默认网关获得客户端与网络之间的所有流量的可见性。因此,攻击者可以窃听客户端的流量。
为了避免这种攻击,网络管理员在网络中配置 DHCP 监听。
DHCP 侦听
DHCP 侦听使交换机仅在通过受信任端口发送 DHCPOFFER 消息时才对其进行处理。
DHCP 侦听的过程涉及最初将所有端口标记为不受信任。然后,网络管理员仅将网络中的有效 DHCP 端口标记为有效。发送 DHCPDISCOVER 广播时,客户端丢弃从不受信任端口接收到的所有 DHCPOFFERS,并仅向已通过有效端口发送的提议发送 DHCPREQUEST。因此,可能已被攻击者发送的数据包被丢弃。
DHCP 侦听加强了网络中的 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 服务器被用于从家庭网络到企业级网络的大小操作。
使用 DHCP 服务器的优点
- IP 地址空间的最佳使用:手动为网络中的设备分配 IP 地址可能会导致 IP 浪费,因为即使在设备与网络断开连接后,IP 地址仍保持分配状态
- IP 保留: DHCP 可以为特定设备保留特定的 IP 地址。即使分配的设备已与网络断开连接,这些地址也不会分配给其他设备
- 动态分配: DHCP 服务器自动执行手动 IP 地址分配的日常任务。IP 地址是动态分配和回收到 IP 池的
- 减少 IP 冲突:手动分配可能会导致多台设备被分配相同的 IP 地址,从而导致 IP 冲突。DHCP IP 租赁消除了这个问题
- 更易于管理: DHCP 数据存储维护用户日志,例如分配 IP 地址的用户、其租用期限和其他网络参数
- 可扩展性: DHCP 路由器支持网络可扩展性
使用 OpUtils 管理 DHCP 服务器
使用 DHCP 的复杂网络基础设施可以通过 OpUtils(一个综合网络 IP 和交换机端口管理器)轻松管理。OpUtils 与流行的 DHCP 服务器集成:
- DHCP Scope Monitor: OpUtils 的 DHCP Scope Monitor 工具提供了 DHCP 服务器的详细信息,例如相关的 DNS 名称、Scopes Count Time 等
- 流氓检测:如前所述,DHCP 服务器可以允许流氓未经授权访问网络。OpUtils 的流氓检测功能扫描整个网络,并检测流氓活动和破坏网络的努力。网络管理员可以将这些设备标记为受信任、访客或恶意设备。标记为流氓的设备被阻止从网络获取未经授权的设备
- 免代码:借助 OpUtils 的免代码 UI,网络管理员无需使用语法或本地 IP 命令即可轻松管理 DHCP 服务器和 IP
- IP 详细信息: OpUtils 的 IP 地址管理器提供对网络中 IP 地址的全面洞察。网络管理员可以使用它来查看详细信息,例如分配 IP 的 MAC 地址、DNS 查找状态、设备类型等
- 历史 IP 日志: OpUtils 提供 IP 已分配给的所有用户以及 IP 的当前用户的历史 IP 日志
- 端口扫描:OpUtils 使用户能够扫描网络中的开放端口。网络管理员可以阻止允许恶意流量的端口,从而保护网络免受未经授权的访问
|