目录
一 DHCP工作原理
1 了解DHCP服务
动态主机配置协议,自动为客户端分配IP地址、子网掩码、网关等网络参数,避免手动配置的麻烦。
2 使用DHCP的好处
- 减少管理员的工作量
- 避免输入错误的可能
- 避免IP地址冲突 当更改IP地址段时,不需要重新配置每个用户的IP地址
- 提高了IP地址的利用率
- 方便客户端的配置
3 DHCP的分配方式
-
自动分配:客户端永久获得固定IP(租期无限)。
-
动态分配:临时分配IP(有租期),到期可回收或续约。
-
手动分配:管理员手动绑定特定MAC地址与IP(保留地址)。
4 DHCP的租约过程
- 客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
- 分为四个步骤:
(1)客户端请求IP地址
- 当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址
-
客户端广播 DHCP Discover 报文,寻找可用的DHCP服务器。
(2)服务器响应
- DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机
-
DHCP服务器回应 DHCP Offer,提供可分配的IP、子网掩码、租期等信息。
(3)客户机选择IP地址
-
客户端选择第一个收到的Offer,广播 DHCP Request 确认申请该IP。
(4)服务器确定租约
-
服务器发送 DHCP ACK 确认分配,客户端正式获得IP并配置网络。
(5)重新登录
-
租期过半(T1=50%)时,客户端尝试续约(单播 Request);若失败,则在租期87.5%(T2)时广播请求其他服务器续约。
(6)更新租约
- 成功续约:服务器回应 ACK,延长租期。
- 失败释放:租期到期未续约,IP被回收,客户端重新发起 Discover。
核心流程:Discover → Offer → Request → ACK(DORA),后续通过 Request + ACK 续约。
二 使用DHCP动态配置主机地址
1. DHCP服务 :为大量客户机自动分配地址,提供集中管理 减轻管理和维护成本、提高网络配置效率
2. 可分配的地址信息主要包括 :网卡的IP地址、子网掩码
对应的网络地址、广播地址
默认网关地址
DNS服务器地址
1 配置DHCP服务器
(1)安装DHCP服务器软件
- CentOS光盘中的 dhcp-4.2.5-47.el7.centos.x86_64.rpm
- DHCP软件包的主要文件
- 主配置文件:/etc/dhcpd.conf
- 执行程序:/usr/sbin/dhcpd、/usr/sbin/dhcrelay
先执行“ rpm -q dhcp ”命令查看系统中是否已经安装dhcp软件包,openEuler系统中已经默认安装dhcp,具体操作如下。
(2)建立主配置文件dhcpd.conf
1.配置文件基本命令
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf
#调整全局配置
ddns-update-style none; //禁用 DNS 动态更新
default-lease-time 21600; //默认租约为 6 小时
max-lease-time 43200; //最大租约为 12 小时
option domain-name "kgc.com"; //指定默认搜索域
option domain-name-servers 114.114.114.114,8.8.8.8; //指定 DNS 服务器地址
#subnet 网段声明
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.200 192.168.10.250;
option routers 192.168.10.254;
}
2. /etc/dhcp/dhcpd.conf 文件的配置构成
配置构成 | 说明 |
声明 | 用来描述 dhcpd 服务器中对网络布局的划分,是网络设置的逻辑范围。较常见的声明是 subnet、host,其中 subnet 声明用来约束一个网段,host 声明用来约束一台特定的主机。 |
参数 | 由配置关键字和对应的值组成,总是以“;”(分号)结束,一般位于指定的声明范围之内,用来设置所在范围的运行特性(如默认租约时间、最大租约时间等)。 |
选项 | 由“option”引导,后面跟具体的配置关键字和对应的值,也是以“;”结束,用于指定分配给客户机的各种地址参数(如默认网关地址、子网掩码、DNS 服务器地址等)。 |
3. dhcpd 服务的全局配置
为了使配置文件的结构更加清晰,全局配置通常会放在配置文件 dhcpd.conf 的开头部分,可以是配置参数,也可以是配置选项。常用的全局配置参数和选项如下所述。
参数和选项 | 说明 |
ddns-update-style | 动态 DNS 更新模式。用来设置与 DHCP 服务相关联的 DNS数据动态更新模式。在实际的 DHCP 应用中很少用到该参数,将值设为“none”即可。 |
default-lease-time | 默认租约时间。单位为秒,表示客户端可以从 DHCP 服务器租用某个 IP 地址的默认时间。 |
max-lease-time | 最大租约时间。单位为秒,表示允许 DHCP 客户端请求的最大租约时间,当客户端未请求明确的租约时间时,服务器将采用默认租约时间。 |
option domain-name | 默认搜索区域。为客户机指定解析主机名时的默认搜索域,该配置选项将体现在客户机的/etc/resolv.conf 配置文件中。 |
option domain-name-servers | DNS 服务器地址。为客户机指定解析域名时使用的 DNS 服务器地址,该配置选项同样将体现在客户机的/etc/resolv.conf 配置文件中。需设置多个 DNS 服务器地址时,以逗号进行分隔。 |
(3)启动dhcpd服务
启动dhcpd服务的基本配置命令如下。
systemctl start dhcpd # 启动服务
systemctl enable dhcpd # 开机自启
systemctl status dhcpd # 检查状态netstat -anpt | grep dhcpd #检查dhcpd是否开启
2 使用DHCP客户端
(1)windows客户端
获取/释放IP
ipconfig /release # 释放当前IP
ipconfig /renew # 重新获取IP
查看DHCP信息
ipconfig /all # 查看IP、DHCP服务器、租期等
手动指定DHCP服务器(特殊场景)
netsh interface ip set dhcp "以太网" server=192.168.1.1
(2)Linux客户端
使用 dhclient
管理IP
dhclient -r eth0 # 释放IP(-r 表示 release)
dhclient -v eth0 # 重新获取IP(-v 显示详细过程)
使用 nmcli
(NetworkManager)
nmcli con up eth0 # 重新申请IP(适用于动态分配)
nmcli dev show eth0 # 查看DHCP分配的详细信息
查看租约信息(客户端侧)
cat /var/lib/dhclient/dhclient.leases # 客户端租约记录(部分系统路径可能不同)
(3)查看租约文件/var/lib/dhcpd/dhcpd.leases
服务器租约数据库路径
cat /var/lib/dhcpd/dhcpd.leases # 服务器已分配的租约记录(ISC DHCP)
-
关键字段:
-
lease [IP] { ... }
:分配的IP及租期信息。 -
starts/ends
:租约起止时间。 -
hardware ethernet
:客户端的MAC地址。
-
1 DHCP中继原理
(1)作用
-
解决 跨网段IP分配 问题,使客户端能通过中继代理从不同子网的DHCP服务器获取IP。
-
中继代理(如路由器)负责转发DHCP请求/响应报文。
(2)工作原理
-
客户端广播DHCP Discover(目标IP:
255.255.255.255
)。 -
中继代理(如路由器)接收广播,将其改为 单播 并转发给指定DHCP服务器(目标IP: DHCP服务器地址)。
-
DHCP服务器响应Offer,中继代理再转发回客户端所在的子网。
-
后续 Request/ACK 流程同样由中继代理转发。
(3)关键点:
-
中继代理需配置 DHCP服务器IP。
-
依赖 UDP 67(服务器)和 68(客户端) 端口。
2 DHCP中继配置
(1)Linux系统(isc-dhcp-relay)
安装中继软件
apt install isc-dhcp-relay -y # Ubuntu/Debian
yum install dhcp-relay -y # CentOS/RHEL
配置中继代理
编辑配置文件 /etc/default/isc-dhcp-relay
:
SERVERS="192.168.1.100" # DHCP服务器IP
INTERFACES="eth0 eth1" # 监听客户端请求的接口
OPTIONS="-d" # 调试模式(可选)
启动服务
systemctl start isc-dhcp-relay
systemctl enable isc-dhcp-relay
(2)华为交换机(VRP系统)
启用DHCP中继
sys
dhcp enable
interface vlanif 10 # 进入客户端所在VLAN
dhcp select relay # 启用中继模式
dhcp relay server-ip 192.168.1.100 # 指定DHCP服务器
验证配置
display dhcp relay statistics # 查看中继统计信息
(3)Cisco路由器(IOS系统)
配置中继
interface GigabitEthernet0/0
ip helper-address 192.168.1.100 # 指定DHCP服务器