DHCP称为动态主机配置协议
作用:
帧层次:
IP包层次:
使用udp传输
DHCP中有一个引导协议:里面写明了server给客户机的IP地址
过程如下:
如何为多个物理网段的客户机动态分配地址?
一、系统环境
平台:VMware Workstation Pro
centos 7.9系统
网络使用的是NAT模式 (后面windows设置要与此处设置的模式一致)
ip地址:192.168.80.131
二、开始部署dhcp服务:
1、关闭防火墙以及selinux
- [root@localhost ~]# systemctl stop firewalld
-
- [root@localhost ~]# setenforce 0
2、使用yum安装dhcp服务:
[root@localhost ~]# yum -y install dhcp
3、修改配置文件
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
如图,进入配置文件中,里面什么内容都没有。
但是,里面告诉我们一个配置文件的模版:
/usr/share/doc/dhcp*/dhcpd.conf.example
可以将这个模版里面的内容拷贝过来(拷贝过来后除用到的部分保留外其他可以删除)
- [root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
-
- subnet 192.168.80.0 netmask 255.255.255.0{ ##网段和掩码
- range 192.168.80.20 192.168.80.99; ##地址范围
-
- option domain-name-servers 202.96.128.166; ## dns服务器地址,可按照这个填写
- option domain-name "domain.example.org"; ##该网段的域名,可以省略
-
- option routers 192.168.80.255; ##网关
-
- default-lease-time 600; ## 租约时间
- max-lease-time 7200; ## 最大租约时间
注:每段配置项结尾,一定要有“;”结尾,否则会报错
4、启动dhcp服务:
[root@localhost ~]# systemctl start dhcpd
5、查看dhcp状态,看udp的67端口有没有起来。
[root@localhost /]# netstat -anptu | grep dhcp
注:启动时若出现“Job for dhcpd.service failed because the control process exited with error code. See “systemctl status dhcpd.service” and “journalctl -xe” for details.”报错。1、请确定配置文件是否填写正确。2、确认该网段与虚拟机的网卡是一致的。
6、验证
这里我开启一台windows10 虚拟机来验证,但注意的是,要让windows与dhcp服务器在同一个模式下,不然获取不到ip地址。
在win10中设置如下
如图,一定全部设置自动获得。
在详细信息中可以看到,windows 7 网卡中的很多信息都是我们在dhcp中设置的。
也可以在centos 7系统中查看:
[root@localhost /]# cat /var/lib/dhcpd/dhcpd.leases
从上图可以看出,win 7的mac地址 00:0c:29:53:30:50,以及租约时间。
dhclient 可以在linux里释放获得的ip地址
dhclient -r 释放ip地址
客户机存放租约的信息文件
局域网中不要有多个DHCP服务器,特别是不同网段的DHCP服务器。若是局域网中有多个DHCP服务器的话,内网用户自动获取ip地址,由于dhcp发的是广播包,时常会获取到其他路由器上的地址,造成无法上网。