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 分配。