开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情”
一、什么是 DHCP 协议 ?
- 动态主机设置协议,作用于 IP 网络,使用 UDP 协议工作的应用层协议。主要功能有:
- 用于内网或网络提供商为用户自动分配 IP 地址。
- 用于内网管理员对网络内所有主机进行集中管理。
二、为什么要使用 DHCP 协议 ?
- DHCP 协议解决了这样几个问题:
- 避免批量手工配置静态 IP 地址的重复工作,可以让主机自动加入本地网络中。
- 方便网络管理员对主机进行统一管理。
- 遇到用户频繁变更的环境,DHCP 本身提供的租约概念,能够在设置较短有效期的情况下,解决计算机比可用IP地址多的问题,使计算机能够动态的重新配置网络。
三、DHCP 是如何工作的 ?
-
1. 协议端口
- 服务端:67/UDP
- 客户端:68/UDP
-
2. DHCP 运行过程
- 1)DHCP 发现 (DISCOVER)
- 客户端在物理子网,发广播(UDP包)寻找可用 DHCP 服务器,目的地址为
255.255.255.255或子网广播地址。同时也可以通过 option 申请其使用的最后一个IP地址。- 服务端会判断【最后一个IP地址】是否仍然可用,是则批准,否则拒绝或忽略(由 DHCP 服务器是否为授权服务器决定),客户端此时会重新申请新的 IP 地址。
- 客户端在物理子网,发广播(UDP包)寻找可用 DHCP 服务器,目的地址为
- 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 配置过程。
- 1)DHCP 发现 (DISCOVER)
-
其他数据包
- DHCP 释放 (RELEASE)
- 客户端向DHCP服务器发送释放DHCP资源请求,并注销其IP地址。
- DHCP 协议不托管 RELEASE 的发送,因为客户端多数情况不知道用户何时可以从网络中移除。
- DHCP NAK
- 服务端恢复客户端,客户端要求的IP不能被分配。
- 客户端配置参数
- DHCP 服务器会提供一些选择性的配置项目供 DHCP客户端设置。参考 RFC 2132
- DHCP 释放 (RELEASE)
四、如何使用 DHCP 协议 ?
1. DHCP 相关应用
- dnsmasq
- dhcpd
后面会专门对这两个应用进行介绍。
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情”