Linux中DHCP配置指南指南(配实验步骤与注释)
Linux中DHCP配置指南指南
一、DHCP基础概念
- 功能
- 动态分配IP地址、子网掩码、网关、DNS等网络参数
- 适用场景:
- IP地址资源不足的子网(如ISP)
- 设备位置频繁变动的网络(如移动办公)
- 核心术语
- 端口:服务端
UDP 67
,客户端UDP 68
(IPv6使用546
) - 组件:DHCP服务器、客户端、中继代理(路由器)
- 管理单元:作用域(Subnet)、地址池、租约、保留地址
- 端口:服务端
二、DHCP工作流程(DORA四阶段)
1. Discover(发现阶段)
- 客户端:广播发送
DHCP Discover
报文 - 目的:寻找可用DHCP服务器
- 报文特点:包含客户端MAC地址
2. Offer(提供阶段)
- 服务器:响应
DHCP Offer
报文(广播) - 内容:
- IP地址
- 子网掩码
- DNS
- 租期时间
- 服务器标识
3. Request(请求阶段)
- 客户端:广播
DHCP Request
报文 - 作用:
- 接受特定服务器的Offer
- 续租时直接发送(跳过Discover/Offer)
4. Acknowledge(确认阶段)
- 服务器:发送
DHCP ACK
确认分配(广播) - 客户端:收到后激活网络配置
- 异常:若收到
DHCP NAK
,客户端需重启流程
跨网段通信:
中继代理通过giaddr
字段传递客户端网关信息,实现跨子网IP分配
三、DHCP服务搭建
1. 搭建服务器环境
vim /etc/yum.repos.d/server.repo # 搭建本地yum仓库[aa]name=aa1baseurl=file:///mntenabled=1gpgcheck=0mount /dev/cdrom /mnt/ # 挂载镜像
yum -y install dhcp # 下载 DHCP
2. 服务器配置文件
-
编辑主配置文件
cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf # -4.2.5 为下载的DHCP版本vim /etc/dhcp/dhcpd.conf # 编辑主配置文件subnet 172.16.30.0 netmask 255.255.255.0 { # 定义子网和子网掩码range 172.16.30.50 172.16.30.100; # 定义地址池#option domain-name-servers ns1.internal.example.org; # 定义 DNS 服务器#option domain-name "internal.example.org"; # 定义域option routers 172.16.30.1; # 定义网关#option broadcast-address 10.5.5.31; # 定义广播地址default-lease-time 600; # 默认租约时间max-lease-time 7200; # 最大租约时间}host desktop30 { # 为特定的 mac 主机定义固定的 IP 地址hardware ethernet 00:0c:29:0d:1c:a5; # 主机的 mac 地址fixed-address 172.16.30.60; # 提供的 IP 地址 }
-
重启服务并设置下次启动生效
systemctl restart dhcpd # 重启服务 systemctl enable dhcpd # 下次开机自启
-
关闭防火墙
systemctl stop firewalld # 关闭防火墙 systemctl disable firewalld # 禁用防火墙
-
设置 seLinux
setenforce 0 # 临时改成 permissive 模式 vim /etc/selinux/config # 进入配置文件,改成 disabled 模式SELINUX=disabled
3. 客户端配置
-
配置客户端网卡文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33 # 配置网卡BOOTPROTO=dhcpONBOOT=yessystemctl restart network # 重启服务
- 查看客户端 IP
ip a
四、DHCP中继服务搭建
1. 服务器配置文件
下载dhcp(同上)
-
编辑主配置文件
cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf # -4.2.5 为下载的DHCP版本vim /etc/dhcp/dhcpd.conf # 编辑主配置文件subnet 192.168.100.0 netmask 255.255.255.0 { # 自身网段}# A slightly different configuration for an internal subnet.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; # 定义网关default-lease-time 600; # 默认租约时间max-lease-time 7200; # 最大租约时间}
-
重启服务并设置下次启动生效(同上)
略
-
关闭防火墙(同上)
略
-
设置 seLinux(同上)
略
3. 中继配置
下载dhcp(同上)
-
开启ip转发
vim /etc/sysctl.confnet.ipv4.ip_forward = 1sysctl -p /etc/sysctl.conf
-
配置网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33
vim /etc/sysconfig/network-scripts/ifcfg-ens36
-
开启dhcp中继
dhcrelay 192.168.100.10
客户端配置
-
配置客户端网卡文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33 # 配置网卡BOOTPROTO=dhcpONBOOT=yessystemctl restart network # 重启服务
-
查看客户端 IP
ip a