DHCP介绍
DHCP(Dynamic Host Configuration Protocol)动态主机配置协议 ,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,统一使用两个IANA分配的端口:67(服务器端),68(客户端)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使客户端可以动态的获得IP地址、Gateway地址、DNS服务器地址等信息。
discover:客户端向网络中的服务器请求ip地址,这时他并不知道哪台是dhcp服务器,所以他发送的是广播
offer:当真正的dhcp服务器收到请求报文时,它会把地址池的ip分配一个给客户端,地址信息里包含ip、网关、子网掩码、DNS、租约期限等,这时由于客户端还没有ip地址,所以服务器发的也是广播,这时可能还有其他dhcp服务器也收到了客户端的请求,也会发送ip地址信息给客户端,客户端会选择第一个收到的offer请求
request:客户端收到了服务器的ip之后确认自己就使用这个ip地址了就会给服务器发送就要使用这个ip的请求,虽然这时已经知道了dhcp服务器的地址,但是它也要告诉其他dhcp服务器它将要获得哪个dhcp服务器的哪个地址,这样其他dhcp服务器就不会再给他分配ip了,所以这个阶段也是广播
ACK:服务器收到使用ip的请求之后,就把这个ip分配给客户端,从地址池取出,不再分配给别的客户端了,客户端还是没有ip,所以也是广播发送的,这个阶段结束之后,客户端才真正的获得ip地址
当分配给客户端的ip给其他主机占用时,客户端会重复寻找dhcp服务器的过程继续请求ip
租期:默认租期为1440min/24h/一天。
续租:当租期到达50%时,客户端若依然在线,客户端主动发出Request数据包来续租;
(1)若续租失败,继续在7/8的租期再次发送Request数据包续租;
(2)若依然失败,那租期到达时地址被收回,客户端会获得一个179.254.0.0网段ip地址,这个地址是不可用的,但是它还会继续不断的找dhcp服务器,直到找到为止
安装DHCP服务器
环境:centos8.5
yum -y install dhcp-*
我们准备两台linux,一台作为dhcp服务器,一台作为dhcp客户端,两台虚拟机的网络都设置为仅主机(保证在同一个网络中)
设置VMVare ,在虚拟网络编辑器中,把这个√去掉,目的是,不让VMVare分配ip给虚拟机,而是我们搭建的dhcp服务器分配给虚拟机
配置
vim /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.10; #地址池的范围
option domain-name-servers 8.8.8.8; #为客户端指明DNS服务器IP地址
# option domain-name "ristar.ristar.com"; // 为客户端指明DNS名字。
option routers 192.168.1.1; #//路由器ip,可以写网关ip
option broadcast-address 192.168.1.255; # 广播地址
# default-lease-time 1600; #指定确省租赁时间的长度,单位是秒。
# max-lease-time 7200; #指定最大租赁时间长度,单位是秒。
# filename "pxelinux.0"; # //开始启动文件的名称. 应用于无盘工作站。
# next-server 192.168.1.156; # //设置服务器从引导文件中装如主机名,应用于无盘工作站。
}
dhcp服务器修改ip为192.168.1.1
重启dhcp服务器使配置文件生效
systemctl restart dhcpd
在另一台linux客户端上输入dhclient
用于获取ip
获取的DNS服务器的ip
参考文章 https://blog.csdn.net/shengjie87/article/details/107105205/