目录

一、DHCP 基础概念

1. 定义

2. 核心角色

3. 分配方式

4. 优缺点

二、DHCP 工作原理(四阶段 + 续租)

1. 完整 IP 获取四步流程

2. 续租机制

三、部署前准备(必做)

1. 服务器要求

2. 网络规划示例

四、DHCP 服务器安装(CentOS/RHEL 7)

1. 检查是否安装

2. 挂载镜像并配置 YUM 源

3. 安装 DHCP 服务

4. 安装后验证

五、DHCP 主配置文件详解

1. 配置文件路径

2. 配置文件三部分

3. 常用配置项速查

4. 租约数据库

六、完整配置案例(可直接复制)

需求

配置文件/etc/dhcp/dhcpd.conf

七、服务管理命令

八、客户端配置

1. Linux 客户端

2. Windows 客户端

九、启动失败常见原因(必背)

十、扩展知识(进阶)

1. 多作用域配置

2. 超级作用域

3. DHCP 中继(跨网段分配)

4. DHCP 高可用(双机热备)

5. 安全加固

十一、常用命令总结




一、DHCP 基础概念

1. 定义

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议):TCP/IP 标准协议,用于集中管理、自动分配 IP 地址、子网掩码、网关、DNS 等网络参数,避免手动配置的繁琐与冲突。

2. 核心角色

  • DHCP 服务器:使用固定 IP,维护 IP 地址池,响应客户端请求并分配参数。
  • DHCP 客户端:开机 / 联网时主动请求网络配置,自动获取参数。

3. 分配方式

  1. 动态分配:IP 有租期,到期回收或续租,最常用。
  2. 自动分配:永久分配一个固定 IP 给客户端。
  3. 手动分配(绑定):根据 MAC 地址固定分配 IP,用于服务器、打印机等。

4. 优缺点

  • 优点
    • 自动化配置,减少管理员工作量。
    • 避免 IP 地址冲突。
    • 支持固定 IP 绑定,跨子网移动无需重配(配合中继)。
    • 集中管理,便于维护。
  • 缺点
    • 无法检测非 DHCP 客户端已占用的 IP。
    • 多 DHCP 服务器间无法同步租约。
    • 默认不能跨路由器,需 DHCP 中继。



二、DHCP 工作原理(四阶段 + 续租)

1. 完整 IP 获取四步流程

  1. DHCP Discover(发现)客户端以0.0.0.0 为源 IP255.255.255.255 为广播目标 IP,发送请求寻找 DHCP 服务器。
  2. DHCP Offer(提供)服务器从地址池中选取未分配 IP,广播回应客户端,包含 IP、掩码、网关、DNS、租期等。
  3. DHCP Request(请求)客户端选择第一个收到的 Offer,广播通知所有服务器:已选中某台服务器的 IP。
  4. DHCP Ack(确认)被选中的服务器发送确认包,标记 IP 已租用,客户端完成配置并绑定网卡。

2. 续租机制

  • 租期到达 **50%** 时,客户端单播发送 Request 请求续租。
  • 服务器回复 Ack 则续租成功;无响应则等到 **87.5%** 再广播请求。
  • 租期完全到期未续租,IP 被回收。



三、部署前准备(必做)

1. 服务器要求

  • 安装 RHEL/CentOS 7 系统,配置静态 IP(不能动态获取)。
  • 关闭防火墙与 SELinux(避免拦截 DHCP 报文)。
  • 准备可用 IP 地址段,规划静态地址、动态地址池、保留地址。
  • 虚拟机网络:仅主机模式(VMnet1),关闭 VMware 自带 DHCP 功能。

2. 网络规划示例

  • 网段:192.168.10.0/24
  • 网关:192.168.10.254
  • 静态 IP:192.168.10.1~30(服务器使用)
  • 动态 IP:192.168.10.31~200
  • 保留 IP:105、107(绑定 MAC 使用)



四、DHCP 服务器安装(CentOS/RHEL 7)

1. 检查是否安装

rpm -qa | grep dhcp

2. 挂载镜像并配置 YUM 源

# 创建挂载目录
mkdir /iso
# 挂载光盘
mount /dev/cdrom /iso
# 编辑YUM源
vim /etc/yum.repos.d/dvd.repo

dvd.repo 内容

[rhel]
name=rhel
baseurl=file:///iso
enabled=1
gpgcheck=0

3. 安装 DHCP 服务

yum clean all
yum install dhcp -y

4. 安装后验证

rpm -qa | grep dhcp
# 应出现:dhcp、dhcp-common、dhcp-libs



五、DHCP 主配置文件详解

1. 配置文件路径

  • RHEL/CentOS 7:/etc/dhcp/dhcpd.conf
  • 默认是空文件,需参考模板:/usr/share/doc/dhcp*/dhcpd.conf.example

2. 配置文件三部分

  1. Parameters(参数):定义租期、DNS 更新方式等。
  2. Declarations(声明):定义子网、地址池、主机绑定等。
  3. Options(选项):以option开头,配置网关、DNS、掩码等。

3. 常用配置项速查

配置项 作用
ddns-update-style none 关闭 DNS 动态更新
default-lease-time 600 默认租期(秒)
max-lease-time 7200 最大租期(秒)
subnet 192.168.10.0 netmask 255.255.255.0 定义子网作用域
range 192.168.10.31 192.168.10.200 动态地址池
option routers 192.168.10.254 客户端网关
option subnet-mask 255.255.255.0 子网掩码
option domain-name-servers 192.168.10.1 DNS 服务器
option broadcast-address 192.168.10.255 广播地址
host 主机名 定义保留主机
hardware ethernet MAC 绑定 MAC 地址
fixed-address IP 分配固定 IP

4. 租约数据库

  • 路径:/var/lib/dhcpd/dhcpd.leases
  • 记录所有已分配 IP、MAC、租期、客户端主机名,可直接查看。



六、完整配置案例(可直接复制)

需求

  • 网段:192.168.10.0/24
  • 动态 IP:31~104、106、108~200
  • 固定 IP:105 绑定 MAC:00:0c:29:03:34:02
  • DNS:192.168.10.1
  • 网关:192.168.10.254

配置文件/etc/dhcp/dhcpd.conf

ddns-update-style none;
log-facility local7;
default-lease-time 600;
max-lease-time 7200;

subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.31 192.168.10.104;
  range 192.168.10.106 192.168.10.106;
  range 192.168.10.108 192.168.10.200;
  option domain-name "myDHCP.smile.com";
  option domain-name-servers 192.168.10.1;
  option routers 192.168.10.254;
  option broadcast-address 192.168.10.255;
}

# 固定IP绑定
host Client2{
  hardware ethernet 00:0c:29:03:34:02;
  fixed-address 192.168.10.105;
}



七、服务管理命令

# 启动
systemctl start dhcpd
# 重启
systemctl restart dhcpd
# 停止
systemctl stop dhcpd
# 开机自启
systemctl enable dhcpd
# 查看状态
systemctl status dhcpd
# 手动排错(启动失败时用)
dhcpd



八、客户端配置

1. Linux 客户端

编辑网卡配置

vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改内容

BOOTPROTO=dhcp
ONBOOT=yes

重启网络

systemctl restart network

强制获取

dhclient 网卡名
# 查看IP
ifconfig/ip a

2. Windows 客户端

  1. 设置:网络连接 → IPv4 → 自动获取 IP/DNS。
  2. 命令
ipconfig /release   # 释放IP
ipconfig /renew     # 重新获取
ipconfig /all       # 查看详细信息



九、启动失败常见原因(必背)

  1. 配置文件语法错误(少分号、括号不匹配)。
  2. 服务器未配置静态 IP。
  3. 子网声明与服务器 IP 不在同一网段。
  4. 配置文件路径错误(7 版本在/etc/dhcp/下)。
  5. 地址池范围写错或与保留 IP 冲突。
  6. 防火墙 / SELinux 未关闭。



十、扩展知识(进阶)

1. 多作用域配置

服务器多网卡,每个网卡对应一个子网,配置多个subnet段。

subnet 172.16.36.0 netmask 255.255.255.0 { ... }
subnet 172.16.42.0 netmask 255.255.255.0 { ... }

2. 超级作用域

将多个网段合并为一个逻辑作用域,用于单网卡多网段场景。

shared-network mynet {
  subnet 192.168.1.0 netmask 255.255.255.0 { ... }
  subnet 192.168.2.0 netmask 255.255.255.0 { ... }
}

3. DHCP 中继(跨网段分配)

  • 场景:客户端与服务器不在同一子网。
  • 命令:dhcrelay DHCP服务器IP
  • 路由器需开启DHCP 中继 / BOOTP 转发

4. DHCP 高可用(双机热备)

  • 遵循80/20 规则:主服务器分配 80% 地址,备用分配 20%。
  • 主服务器故障时,备用接管服务,避免网络瘫痪。

5. 安全加固

  • 只监听指定网卡:/etc/sysconfig/dhcpd中设置DHCPDARGS="ens33"
  • 定期清理过期租约,备份dhcpd.leases
  • 禁止非法 DHCP 服务器(私设 DHCP 会导致客户端获取错误 IP)。



十一、常用命令总结

用途 命令
查看 MAC ifconfig/ip link
查看 ARP 缓存 arp -n
检查 DHCP 安装 rpm -qa grep dhcp
安装 DHCP yum install dhcp -y
重启服务 systemctl restart dhcpd
查看租约 cat /var/lib/dhcpd/dhcpd.leases
客户端获取 dhclient
Windows 释放 ipconfig /release
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐