DHCP 服务详解与部署
DHCP 服务详解与部署
一、DHCP 服务概述
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种运行在应用层的网络协议,用于自动为网络设备分配 IP 地址、子网掩码、网关、DNS 等网络参数,简化网络配置流程,避免手动设置导致的 IP 冲突等问题。
核心特性
- 自动化配置:无需手动为每个设备设置网络参数,降低管理成本。
- 集中化管理:通过 DHCP 服务器统一管理 IP 地址池,合理分配网络资源。
- 动态调整:支持 IP 地址租约管理,设备离线后自动回收 IP,提高地址利用率。
二、DHCP 核心概念与工作原理
1. 关键概念
术语 | 说明 |
DHCP 客户端 | 需获取 IP 地址的设备(如电脑、手机、服务器)。 |
DHCP 服务器 | 负责分配 IP 地址和网络参数的服务器,存储 IP 地址池和配置规则。 |
DHCP 中继代理 | 用于跨网段转发 DHCP 报文的设备(如路由器、三层交换机),解决广播报文无法跨网段传播的问题。 |
作用域(Subnet) | 服务器管理的 IP 地址网段(如 192.168.100.0/24),包含地址池和网络参数。 |
地址池 | 作用域内可分配给客户端的 IP 地址范围(如 192.168.100.50-100)。 |
租约 | IP 地址的有效使用时间,到期前客户端需续租,避免地址长期占用。 |
保留地址 | 通过 MAC 地址绑定的固定 IP 地址,确保特定设备始终获取相同 IP(如服务器、打印机)。 |
2. 端口与协议
- DHCP 使用 UDP 协议,服务器监听 UDP 67 端口,客户端通过 UDP 68 端口 回应。
- IPv6 环境中,DHCPv6 客户端使用 UDP 546 端口。
3. 工作原理(四步握手流程)
DHCP 客户端获取 IP 地址的过程分为四个阶段:
- DHCP Discover(发现阶段)
客户端启动后,以广播形式发送 DHCP Discover 报文,寻找网络中的 DHCP 服务器(源 IP为 0.0.0.0,目标 IP 为 255.255.255.255)。
- DHCP Offer(提供阶段)
DHCP 服务器收到请求后,从地址池中选择一个未分配的 IP 地址,连同子网掩码、网关、DNS、租约时间等参数,通过 DHCP Offer 报文广播回应客户端。
- DHCP Request(请求阶段)
客户端若收到多个服务器的 Offer,选择第一个响应的服务器,广播发送 DHCP Request 报文,确认使用该 IP 地址,并通知其他服务器放弃提供。
- DHCP ACK(确认阶段)
被选中的服务器收到请求后,确认 IP 地址未被占用,通过 DHCP ACK 报文广播回复客户端,正式分配 IP 地址,客户端此时可使用该 IP 接入网络。
三、DHCP 服务器部署(基础配置)
以下以 CentOS 7 为例,部署基础 DHCP 服务器,为单一网段分配 IP 地址。
1. 环境准备
- 服务器 IP:192.168.100.10/24(静态 IP,确保与客户端同网段)。
- 关闭防火墙和 SELinux(生产环境需开放 UDP 67/68 端口):
systemctl stop firewalld
systemctl disable firewalldsetenforce 0 # 关闭 SELinuxvim /etc/selinux/config # 永久关闭:SELINUX=disabled
2. 安装 DHCP 服务
yum -y install dhcp # 安装 DHCP 服务器软件
3. 配置 DHCP 主配置文件
DHCP 主配置文件为 /etc/dhcp/dhcpd.conf,默认为空,需基于模板文件修改:
# 复制模板文件到主配置文件cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
编辑配置文件:
vim /etc/dhcp/dhcpd.conf
(1)基础网段配置(核心)
# 定义网段(192.168.100.0/24)subnet 192.168.100.0 netmask 255.255.255.0 {range 192.168.100.50 192.168.100.100; # 可分配的 IP 地址池option domain-name-servers 192.168.100.1; # DNS 服务器地址option domain-name "example.org"; # 域名(可选)option routers 192.168.100.254; # 默认网关地址default-lease-time 600; # 默认租约时间(10分钟)max-lease-time 7200; # 最大租约时间(2小时)}
(2)配置保留地址(可选)
为特定设备(通过 MAC 地址识别)分配固定 IP:
# 为 MAC 地址为 00:11:22:33:44:55 的设备分配固定 IP 192.168.100.20host static-host {hardware ethernet 00:11:22:33:44:55; # 目标设备的 MAC 地址fixed-address 192.168.100.20; # 固定分配的 IP 地址}
4. 启动并验证 DHCP 服务
# 启动服务并设置开机自启systemctl start dhcpdsystemctl enable dhcpd# 查看服务状态(确保 active (running))systemctl status dhcpd
四、DHCP 客户端配置
客户端需设置为 DHCP 自动获取 IP 模式,步骤如下:
1. 修改网卡配置文件
# 编辑网卡配置文件(以 ens33 为例)vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改内容:
BOOTPROTO=dhcp # 启用 DHCP 自动获取ONBOOT=yes # 开机启动网卡# 删除以下静态配置行(若存在)# IPADDR=192.168.100.x# NETMASK=255.255.255.0# GATEWAY=192.168.100.254# DNS1=xxx.xxx.xxx.xxx
2. 重启网络服务并验证
# 重启网络服务systemctl restart network# 查看获取的 IP 地址(确认地址在 DHCP 地址池范围内)ip addr show ens33
五、DHCP 中继配置(跨网段分配 IP)
当客户端与 DHCP 服务器不在同一网段时,需通过 DHCP 中继代理 转发 DHCP 报文。以下是部署流程:
1. 环境说明
- DHCP 服务器:IP 192.168.100.10(网段 192.168.100.0/24)。
- 中继服务器:双网卡,分别连接两个网段:
- ens33:192.168.100.254/24(与 DHCP 服务器通信)。
- ens36:192.168.200.254/24(与客户端通信,仅主机模式)。
- 客户端:网段 192.168.200.0/24,通过中继获取 IP。
2. 配置 DHCP 服务器(支持跨网段)
编辑 /etc/dhcp/dhcpd.conf,添加客户端网段配置:
# 原网段配置(192.168.100.0/24)subnet 192.168.100.0 netmask 255.255.255.0 {}# 新增客户端网段(192.168.200.0/24)subnet 192.168.200.0 netmask 255.255.255.0 {range 192.168.200.50 192.168.200.100; # 客户端地址池option routers 192.168.200.254; # 客户端网关(中继服务器 ens36 IP)default-lease-time 600;max-lease-time 7200;}
重启 DHCP 服务:
systemctl restart dhcpd
3. 配置中继服务器
(1)开启 IP 转发(关键)
# 编辑内核参数配置文件vim /etc/sysctl.conf# 添加以下内容(开启 IPv4 转发)net.ipv4.ip_forward = 1# 生效配置sysctl -p
(2)配置中继服务器网卡
# 查看网卡列表nmcli connection show# 若存在多余连接,删除(如“有线连接 1”)nmcli connection del "有线连接 1"# 配置 ens33(连接 DHCP 服务器网段)nmcli connection add con-name ens33 ifname ens33 type ethernet ip4 192.168.100.254/24nmcli connection up ens33# 配置 ens36(连接客户端网段)nmcli connection add con-name ens36 ifname ens36 type ethernet ip4 192.168.200.254/24nmcli connection up ens36
(3)启动 DHCP 中继服务
# 安装 DHCP 相关工具(含中继功能)yum -y install dhcp# 启动中继服务,指定 DHCP 服务器 IPdhcrelay 192.168.100.10# 验证中继进程(确保存在 dhcrelay 进程)ps aux | grep dhcrelay
4. 客户端配置(跨网段场景)
同基础客户端配置,确保网卡为 DHCP 模式,重启网络后验证:
ip addr show ens33 # 确认获取到 192.168.200.0/24 网段的 IP
六、总结
DHCP 服务通过自动化 IP 分配简化了网络管理,核心流程包括发现、提供、请求、确认四个阶段。基础部署需配置地址池和网络参数,跨网段场景需通过中继代理转发报文。关键注意事项:
- 服务器需配置静态 IP,确保与客户端网段连通。
- 中继服务器必须开启 IP 转发,否则无法跨网段转发报文。
- 生产环境中需合理规划租约时间和地址池,避免 IP 耗尽或冲突。
掌握 DHCP 服务配置是网络运维的基础技能,可大幅提升网络部署和管理效率。