环境

Windows11、VMware Workstation 16.2.2

系统

Red hat7.0

说明

过程1:寻找DHCP服务器
当DHCP客户端第一次登录网络的时候,计算机发现本机上没有任何IP地址设定,将以广播方式发送DHCP discover发现信息来寻找DHCP服务器,即向255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收这个广播信息,但只有DHCP服务器才会做出响应。

过程2:分配IP地址
在网络中接收到DHCP discover发现信息的DHCP服务器就会做出响应,它从尚未分配的IP地址池中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含分配的IP地址和其他设置的DHCP offer提供信息。

过程3:接受IP地址
DHCP客户端接受到DHCP offer提供信息之后,选择第一个接收到的提供信息,然后以广播的方式回答一个DHCP request请求信息,该信息包含向它所选定的DHCP服务器请求IP地址的内容。

过程4:IP地址分配确认
当DHCP服务器收到DHCP客户端回答的DHCP request请求信息之后,便向DHCP客户端发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,告诉DHCP客户端可以使用它提供的IP地址。然后,DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除了DHCP客户机选中的DHCP服务器外,其他的DHCP服务器将收回曾经提供的IP地址。

过程5:重新登录
以后DHCP客户端每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时,则DHCP服务器给DHCP客户机回答一个DHCP nack否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。

过程6:更新租约
DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限到达租约的50%时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。

部署

执行yum源安装安装

[root@Jw2031-122 ~]# yum install dhcp -y

检查是否安装成功

[root@Jw2031-122 ~]# rpm -qa |grep dhcp
dhcp-libs-4.2.5-27.el7.x86_64
dhcp-common-4.2.5-27.el7.x86_64
dhcp-4.2.5-27.el7.x86_64

配置文件:

一个标准的配置文件包含:

全局配置参数:用于定义dhcpd服务程序的整运行参数;

子网网段申明:用于配置整个子网段的地址属性;

地址配置选项

地址配置参数

[root@Jw2031-122 dhcp]# cp -p /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y #复制模板文件

/etc/dhcp/dhcpd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
subnet 192.168.182.0 netmask 255.255.255.0 {
range 192.168.182.100 192.168.182.150; # 地址池
option domain-name-servers ns1.internal.example.org; # 为客户端指明DNS服务器地址,可以是多个,最多三个
option domain-name "internal.example.org"; # 为客户端指明DNS名字,定义了它会覆盖客户端/etc/resolv.conf里的配置
option routers 192.168.182.2; # 默认路由,其实就是网关
option broadcast-address 192.168.182.255; # 广播地址,不设置时默认会根据A/B/C类地址自动计算
default-lease-time 600; # 默认租约时长
max-lease-time 7200; # 最大租约时长
}
#下面的是绑定MAC地址设置保留地址,保留地址不能是地址池中的地址
host fantasia { # 固定地址的配置,host后面的是标识符,没意义
hardware ethernet 00:0c:29:ac:fa:91;
fixed-address 192.168.182.10; # 根据MAC地址分配的固定IP
}