DHCP(Dynamic Host Configuration Protocol)动态主机配置协议 ,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,统一使用两个IANA分配的端口:67(服务器端),68(客户端)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使客户端可以动态的获得IP地址、Gateway地址、DNS服务器地址等信息。
当分配给客户端的ip给其他主机占用时,客户端会重复寻找dhcp服务器的过程继续请求ip
租期:默认租期为1440min/24h/一天。续租:当租期到达50%时,客户端若依然在线,客户端主动发出Request数据包来续租; (1)若续租失败,继续在7/8的租期再次发送Request数据包续租; (2)若依然失败,那租期到达时地址被收回,客户端会获得一个179.254.0.0网段ip地址,这个地址是不可用的,但是它还会继续不断的找dhcp服务器,直到找到为止服务器:CentOS 8系统(IP:192.168.192.1) 客户端:win10系统
将两台虚拟机的网卡都做仅主机模式,都绑定在vmnet1网卡上,虚拟机的网络配置里取消vmnet1网卡的dhcp功能,并且确保客户端win10系统是自动获取ip地址的
作为DHCP服务器的主机必须有一个固定的ip地址
因为是使用yum网络源安装dhcp软件包,所以先把虚拟机网络设置成可以上网,就是NAT模式,绑定真机的vmnet8网卡,安装好dhcp之后再改成仅主机模式
安装完成之后可以使用rpm -qc 查看dhcp服务的配置文件的位置 打开默认的配置文件,发现没有任何配置信息,只有几行备注信息
将模板文件直接拷贝一份命名为dhcpd.conf配置文件,相当于覆盖原来的内容
vim /etc/dhcp/dhcpd.conf 进入配置文件配置 修改全局配置,配置DNS服务器ip为8.8.8.8 修改dhcp子模块的配置,定义子网段、子网掩码、地址池和网关ip地址
option domain-name "example.org"; #域名名称 option domain-name-servers 8.8.8.8; #域名服务器ip地址 default-lease-time 600; #默认的租约期限,单位为秒 max-lease-time 7200; #最大的租约期限,一般为固定ip设置 subnet 192.168.192.0 netmask 255.255.255.0 #可被分配的子网段和子网掩码 range 192.168.192.200 192.168.192.220; #地址池 option routers 192.168.192.1; #网关地址 host win10 # 分配固定ip的主机的名称,随便取 hardware ethernet 00:0C:29:59:FC:57; #绑定的客户端的mac地址 fixed-address 192.168.192.10; #分配给客户端固定的ip地址配置完成就可以启动dhcp服务了,查看dhcpd的67端口已开启 systemctl start dhcpd #开启dhcp服务 #dhcp的默认执行程序:/usr/sbin/dhcpd
现在我们让dhcp服务器分配一个固定的ip地址给客户端,这台客户机每次请求都分配这个地址给它,打开配置文件做如下修改: 每次修改完配置文件都要记得重启服务,配置才能生效 如果我们想给它一个不在地址池的ip,客户机也可以获得,这个ip地址只需要在子网段里就可以正常获得ip 我们刚才在全局配置的时候已经配置了DNS服务器为8.8.8.8,现在在这个单独配置dhcp信息的地方再设置一个DNS服务器,观察它最后被分配到的DNS服务器是哪个? 默认的租约配置文件(一般不改动):/var/lib/dhcpd/dhcpd.leases