📜  动态主机配置协议 (DHCP)

📅  最后修改于: 2021-09-28 10:20:52             🧑  作者: Mango

先决条件 – 应用层协议
动态主机配置协议(DHCP)是一种应用层协议,用于提供:

  1. 子网掩码(选项 1 – 例如,255.255.255.0)
  2. 路由器地址(选项 3 – 例如,192.168.1.1)
  3. DNS 地址(选项 6 – 例如,8.8.8.8)
  4. 供应商类别标识符(选项 43 – 例如,’unifi’ = 192.168.1.9 ##where unifi = 控制器)

DHCP 基于客户端-服务器模型并基于发现、提供、请求和 ACK。

服务器的DHCP端口号是67,客户端的DHCP 端口号是68。它是一个使用UDP 服务的客户端服务器协议。 IP 地址是从地址池中分配的。在DHCP中,客户端和服务器主要为了建立连接而交换4条DHCP报文,也称为DORA过程,但在这个过程中有8条DHCP报文。

这些消息如下所示:

  1. DHCP 发现消息 –
    这是在服务器和客户端之间的通信过程中产生的第一条消息。此消息由客户端主机生成,以发现网络中是否存在任何 DHCP 服务器。该消息被广播到网络中的所有设备以查找 DHCP 服务器。此消息的长度为 342 或 576 字节

    如图,源MAC地址(客户端PC)为08002B2EAF2A,目的MAC地址(服务器)为FFFFFFFFFFFF,源IP地址为0.0.0.0(因为PC目前没有IP地址),目的IP地址为255.255.255.255 (用于广播的 IP 地址)。由于发现消息是广播以找出网络中的 DHCP 服务器或服务器,因此使用广播 IP 地址和 MAC 地址。

  2. DHCP 提供消息 –
    服务器将在此消息中响应主机,指定未租用的 IP 地址和其他 TCP 配置信息。此消息由服务器广播。消息大小为 342 字节。如果网络中存在多个 DHCP 服务器,则客户端主机将接受它收到的第一个 DHCP OFFER 消息。在数据包中还指定了服务器 ID 以识别服务器。

    现在,对于offer报文,源IP地址为172.16.32.12(本例中为服务器IP地址),目的IP地址为255.255.255.255(广播IP地址),源MAC地址为00AA00123456,目的MAC地址为FFFFFFFFFFFF。这里,提供消息是由DHCP服务器广播的,因此目的IP地址是广播IP地址,目的MAC地址是FFFFFFFFFFFF,源IP地址是服务器IP地址,MAC地址是服务器MAC地址。

    并且服务器提供了提供的IP地址192.16.32.51和72小时的租用时间(在此时间之后主机的条目将自动从服务器中删除)。此外,客户端标识符是所有消息的 PC MAC 地址 (08002B2EAF2A)。

  3. DHCP 请求消息 –
    当客户端收到一个 offer 消息时,它会通过广播 DHCP 请求消息来响应。客户端将生成一个免费 ARP 以查找网络中是否存在具有相同 IP 地址的任何其他主机。如果没有其他主机的回复,则网络中没有具有相同 TCP 配置的主机,该消息被广播到服务器,表明接受 IP 地址。此消息中还添加了客户端 ID。

    现在,请求消息由客户端 PC 广播,因此源 IP 地址为 0.0.0.0(因为客户端现在没有 IP),目标 IP 地址为 255.255.255.255(广播 IP 地址),源 MAC 地址为 08002B2EAF2A(PC MAC 地址),目的 MAC 地址为 FFFFFFFFFFFF。

    注 –此消息在 PC 广播 ARP 请求之后广播,以查明是否有任何其他主机未使用该提供的 IP。如果没有回复,则客户端主机向服务器广播 DHCP 请求消息,显示接受 IP 地址和其他 TCP/IP 配置。

  4. DHCP 确认消息 –
    响应收到的请求消息,服务器将创建一个具有指定客户端 ID 的条目,并绑定提供的 IP 地址和租用时间。现在,客户端将拥有服务器提供的 IP 地址。

    现在服务器将使用提供的 IP 地址和租用时间输入客户端主机。该 IP 地址不会由服务器提供给任何其他主机。目的MAC地址为FFFFFFFFFFFF,目的IP地址为255.255.255.255,源IP地址为172.16.32.12,源MAC地址为00AA00123456(服务器MAC地址)。

  5. DHCP 否定确认消息 –
    每当 DHCP 服务器收到根据配置的范围无效的 IP 地址请求时,它会向客户端发送 DHCP Nak 消息。例如,当服务器没有未使用的 IP 地址或池为空时,此消息由服务器发送到客户端。
  6. DHCP 拒绝 –
    如果 DHCP 客户端确定提供的配置参数不同或无效,则向服务器发送 DHCP 拒绝消息。当任何主机向客户端回复免费 ARP 时,客户端向服务器发送 DHCP 拒绝消息,显示所提供的配置参数。 IP 地址已被使用。
  7. DHCP 发布 –
    DHCP 客户端向服务器发送 DHCP 释放包以释放 IP 地址并取消任何剩余的租用时间。
  8. DHCP 通知 –
    如果客户端地址手动获取 IP 地址,则客户端使用 DHCP 通知获取其他本地配置参数,例如域名。作为对 dhcp 通知消息的回复,DHCP 服务器生成具有适合客户端的本地配置的 DHCP ack 消息,而无需分配新的 IP 地址。此 DHCP 确认消息是单播给客户端的。

注 –如果服务器位于不同的网络中,所有消息也可以通过 dhcp 中继代理进行单播。

优点 –使用 DHCP 的优点包括:

  • IP地址集中管理
  • 易于向网络添加新客户端
  • 重复使用 IP 地址减少所需的 IP 地址总数
  • 在 DHCP 服务器上简单地重新配置 IP 地址空间,而无需重新配置每个客户端

DHCP 协议为网络管理员提供了一种从集中区域配置网络的方法。
借助DHCP,可以实现新用户的轻松处理和IP地址的复用。

缺点 –使用 DHCP 的缺点是:

  • 可能会发生 IP 冲突

参考 –
DHCP – help.ubnt
DHCP – docs.oracle