DHCP 服务详解与搭建指南
一、DHCP 服务简介
DHCP(动态主机配置协议)是一种用于自动为网络中的主机分配 IP 地址及相关网络参数的协议,广泛应用于 ADSL 拨号、企业内网等场景。
1. 核心用途
解决 IP 地址资源不足的问题(如 ISP 运营商的子网)。简化 IP 地址频繁变动的网络管理(如移动办公、出差场景)。
2. 可分配的配置信息
网络接口的 IP 地址和子网掩码。网络地址和广播地址。默认网关地址。DNS 服务器地址。
3. 关键概念与端口
端口:服务器监听 UDP 67 端口,客户端通过 UDP 68 端口回应;DHCPv6 客户端使用 546 端口。核心组件:
DHCP 客户端:请求 IP 地址的主机。DHCP 服务器:分配 IP 地址的服务器。DHCP 中继代理:跨网段转发 DHCP 请求的设备(如路由器)。
其他术语:
作用域(subnet):分配 IP 的网段范围。地址池:作用域内可分配的 IP 地址区间。租约:IP 地址的使用期限(可续租)。保留地址:为特定设备绑定固定 IP。
二、DHCP 服务器搭建步骤
1. 安装软件包
[root@zhang3 ]# yum -y install dhcp
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 dhcp.x86_64.12.4.2.5-68.el7.centos.1 将被 安装
--> 解决依赖关系完成
依赖关系解决
================================================================================
Package 架构 版本 源 大小
================================================================================
正在安装:
dhcp x86_64 12:4.2.5-68.el7.centos.1 aa 513 k
事务概要
================================================================================
安装 1 软件包
总下载量:513 k
安装大小:1.4 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : 12:dhcp-4.2.5-68.el7.centos.1.x86_64 1/1
验证中 : 12:dhcp-4.2.5-68.el7.centos.1.x86_64 1/1
已安装:
dhcp.x86_64 12:4.2.5-68.el7.centos.1
完毕!
注意:服务名称为dhcpd,与httpd、vsftpd等命名规则不同,无需记忆混淆。
2. 配置主配置文件
DHCP 主配置文件为/etc/dhcp/dhcpd.conf,默认为空,需使用模板初始化:
# 复制示例配置文件并覆盖主配置
[root@zhang3 ]# cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes
编辑配置文件,定义子网、地址池及网络参数:
[root@zhang3 ]# vim /etc/dhcp/dhcpd.conf #编辑配置文件
subnet 192.168.100.0 netmask 255.255.255.0 { # 定义子网和地址池(以192.168.100.0/24为例)
range 192.168.100.50 192.168.100.100; # 可分配的IP范围(地址池),此处使用域名形式
option domain-name-servers zhang3.example.com; # 配置客户端使用的DNS服务器
option domain-name "example.com"; # 设置客户端的默认搜索域名
option routers 192.168.100.254; # 网关地址
# option broadcast-address 10.5.5.31; # 广播地址配置(当前被注释,默认会自动计算)
default-lease-time 600; # 默认租约时间(10分钟)
max-lease-time 7200; # 最大租约时间(2小时)
}
3. 启动服务并设置自启
[root@zhang3 ]# systemctl restart dhcpd # 重启服务
[root@zhang3 ]# systemctl enable dhcpd # 开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
注意:若启动失败,需检查配置文件语法(如子网掩码、IP 范围是否正确)。
4. 配置防火墙
允许 DHCP 服务通过防火墙:
[root@zhang3 ]# firewall-cmd --add-service=dhcp --permanent #放行DHCP服务
[root@zhang3 ]# firewall-cmd --reload #重启防火墙
三、客户端配置
客户端需设置为 DHCP 自动获取 IP 模式:
修改网卡配置文件:
[root@zhang-2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 # 网卡名以实际为准
BOOTPROTO=dhcp # 设为DHCP模式
ONBOOT=yes # 开机启动网卡
# 删除或注释原有IP、子网掩码、网关、DNS配置行
重启网络生效:
[root@zhang-2 ~]# systemctl restart network
验证配置:
查看获取的 IP:ip addr查看 DNS 配置变化:cat /etc/resolv.conf(DHCP 会自动添加 DNS 服务器)
如果需要为特定的mac主机定义固定的IP地址:
[root@zhang3 ]# vim /etc/dhcp/dhcpd.conf #修改服务器配置主配置文件
host zhang3 { # 定义一个主机配置块,便于管理,可任意命名
hardware ethernet 00:0c:29:e4:11:e7; # 指定客户端设备的 MAC 地址(硬件地址)
fixed-address 192.168.100.150; # 为该 MAC 地址的设备分配固定的 IP 地址可以在
} 可以在地址池范围外
#此时重启DHCP服务后在客户端上重启网络可以看到固定IP地址已经被分配
四、DHCP 中继配置(跨网段分配 IP)
当 DHCP 服务器与客户端不在同一网段时,需通过中继代理转发请求。
1. 环境说明
DHCP 服务器:网卡为 NAT 模式,IP 为192.168.100.20,负责为192.168.200.0/24网段分配 IP。中继服务器:双网卡,分别连接服务器网段(192.168.100.254)和客户端网段(192.168.200.254)。客户端:位于192.168.200.0/24网段,通过中继获取 IP。
2. 配置步骤
(1)DHCP 服务器配置
[root@zhang4 ]# vim /etc/dhcp/dhcpd.conf
# 空配置(不分配该网段IP)
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; # 客户端网关(中继服务器的客户端网段IP)
default-lease-time 600;
max-lease-time 7200;
}
[root@zhang4 ]# systemctl restart dhcpd # 重启服务
(2)中继服务器配置
开启 IP 转发(允许跨网段转发数据包):
[root@zhang4 ]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p # 立即生效
配置双网卡:
网卡 1(连接 DHCP 服务器):192.168.100.254/24(NAT 模式)。网卡 2(连接客户端):192.168.200.254/24(仅主机模式)。
安装 DHCP 中继工具并启动:
[root@zhang4 ]# yum -y install dhcp # 包含中继功能
[root@zhang4 ]# dhcrelay 192.168.100.20 # 指向DHCP服务器IP
(3)客户端配置
客户端网卡设为 “仅主机模式”,并配置为 DHCP 自动获取 IP,重启网络后即可通过中继获取192.168.200.0/24网段的 IP。
五、补充:租约管理
DHCP 服务器的租约记录存储在/var/lib/dhcpd/dhcpd.leases,可通过该文件查看已分配的 IP、租约时间及对应客户端 MAC 地址。
总结
DHCP 通过自动分配 IP 及网络参数简化了网络管理,适用于 IP 资源有限或频繁变动的场景。核心配置包括服务器的子网定义、地址池及租约设置,客户端只需开启 DHCP 模式即可自动获取配置。跨网段时需部署 DHCP 中继,通过 IP 转发和中继代理实现跨网段 IP 分配。