PXE 技术:DHCP 协议篇

345 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情

一、什么是 DHCP 协议 ?

  • 动态主机设置协议,作用于 IP 网络,使用 UDP 协议工作的应用层协议。主要功能有:
    1. 用于内网或网络提供商为用户自动分配 IP 地址。
    2. 用于内网管理员对网络内所有主机进行集中管理。

二、为什么要使用 DHCP 协议 ?

  • DHCP 协议解决了这样几个问题:
    1. 避免批量手工配置静态 IP 地址的重复工作,可以让主机自动加入本地网络中。
    2. 方便网络管理员对主机进行统一管理。
    3. 遇到用户频繁变更的环境,DHCP 本身提供的租约概念,能够在设置较短有效期的情况下,解决计算机比可用IP地址多的问题,使计算机能够动态的重新配置网络。

三、DHCP 是如何工作的 ?

  • 1. 协议端口

    • 服务端:67/UDP
    • 客户端:68/UDP
  • 2. DHCP 运行过程

    • 1)DHCP 发现 (DISCOVER)
      • 客户端在物理子网,发广播(UDP包)寻找可用 DHCP 服务器,目的地址为 255.255.255.255或子网广播地址。同时也可以通过 option 申请其使用的最后一个IP地址。
        • 服务端会判断【最后一个IP地址】是否仍然可用,是则批准,否则拒绝或忽略(由 DHCP 服务器是否为授权服务器决定),客户端此时会重新申请新的 IP 地址。
    • 2)DHCP 提供 (OFFER)
      • DHCP 服务器收到客户端 IP 租约的请求,则会提供一个 IP 租约,并保留一个IP地址。
      • 通过网络单播一个 DHCPOFFER 消息给客户端。
        • 此消息包含:
          • 客户端 MAC 地址
          • 服务端 提供的 IP 地址、子网掩码、租期
          • 服务端 IP 地址
    • 3)DHCP 请求 (REQUEST)
      • 客户端收到服务端发送的 DHCP 租约 OFFER,会告知其他所有 DHCP 服务器(如果有),自己已经接受了一个租约。
      • 客户端会发送 DHCP REQUEST 消息,包含提供 OFFER 的 DHCP 服务器地址。
      • 其他 DHCP 服务接收后,回收可能已经提供的租约和保留地址。
      • 任何数量的 DHCP 服务器都可响应一个IP租约请求,但客户端网卡只能接受一个租约OFFER。
    • 4)DHCP 确认 (Acknowledge,ACK)
      • 服务端收到客户端 DHCP REQUEST,开始配置最过程的最后阶段。
      • 服务端响应给客户度 DHCP ACK 包给客户端,包含信息:
        • 租期
        • 其他客户端可能请求的配置
      • 客户端接收后根据选项配置网卡,然后完成 TCP/IP 配置过程。
    • DHCP请求过程.png
  • 其他数据包

    • DHCP 释放 (RELEASE)
      • 客户端向DHCP服务器发送释放DHCP资源请求,并注销其IP地址。
      • DHCP 协议不托管 RELEASE 的发送,因为客户端多数情况不知道用户何时可以从网络中移除。
    • DHCP NAK
      • 服务端恢复客户端,客户端要求的IP不能被分配。
    • 客户端配置参数
      • DHCP 服务器会提供一些选择性的配置项目供 DHCP客户端设置。参考 RFC 2132

四、如何使用 DHCP 协议 ?

1. DHCP 相关应用

  • dnsmasq
  • dhcpd

后面会专门对这两个应用进行介绍。

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情