使用场景:
1、在管理多台计算机的情况下,实现自动化安装系统,自动分配IP地址。
2、解决ipv4资源不足的问题。
准备事项:
1、为了不影响局域网内的通信,自己搭建虚拟的网卡VMnet10,选择进机模式,和去掉使用本地dhcp服务这选项,网卡的地址也可以是除137这网段外的其它网段,不要求同一网段。
2、需要准备好两台虚拟机,一台centos7做dhcp服务器,主机的地址是192.168.137.178;一台新建的centos6.9做客户端,centos7上的需要配置两个网卡,第一个是网络连接的是仅主机的自定义的VMnet10 ,第二个选择是桥接模式;在centos6.9客户端上的网卡选择仅主机的自定义的虚拟网卡VMnet10一个网卡就可以了。
3、关闭centos7和centos6.9上的防火墙和selinux。
配置DHCP服务器:
安装dhcp 包
yum -y install dhcp
查看包相关的路径和依赖的服务
rpm -ql dhcp
进入文件/etc/dhcp/dhcpd.conf 编辑 服务器的信息原来在cat /etc/dhcp/dhcpd.conf 这文件里面没有配置的内容,只提供了模板让我们参考,那我们就把模板的文件复制一份到/etc/dhcp/dhcpd.conf 这配置文件里,然后我们在配置文件里修改和增加需要的内容就可以了。
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
文件编辑:
vim /etc/dhcp/dhcpd.conf
现在我的主机IP是192.168.137.178;我需要在配置文件里的把子网subnet改成和我主机在同一网段的地址192.168.137.0 ,其它的配置先不动,这样就可以启动dhcpd服务了,
systemctl start dhcpd
用ss -nul 查看端口可以看到服务器的端口67,说明服务起来了
在服务器端设置分配给客户机的ip地址范围,现在我们分配的是66 到166范围的地址,当然我们也可以配置不是37网段的地址,前提必须是先配置本网段的地址范围才能配置其它网段的。
注意地址池的配置范围一定不能把dhcp服务器的地址(192.168.137.178)包含在里面,否则会发生冲突。
配置完成后,重启网卡服务
systemctl restart network
客户端的配置:
网卡选择:
开启另一台新创建的虚拟机centos6.9,在设置里网络适配器的网络连接模式选择我们自定义的网段的VMnet10网卡。
网络的配置:
新建的centos6.9一般在eth0里的ip地址分配选项默认是选择的是dhcp
自动获取地址所以网卡一般不需要额外配置。
最后在客户端选择同一网段的自定义,重启网络服务就可以收到服务器分发的地址了。我们可以进去网卡查看一下,可以看到网卡是自动获取的
然后用dhclient取激活一下客户端,用IP a 查看一下,已经获取到dhcp服务器给客户端的一个地址
查看一下租约的相关信息
cd /var/lib/dhclient/
ll-t #查看最新生成的客户端信息
从这里我们就可以知道如果不知道dhcp服务器的地址,默认的服务器地址就是我们用192.18.137.178主机的地址,租期默认是10分钟。
扩展:
除此之外我们还可以修改常用的,域名、网关、路由、租期、静态的IP地址等。
案例1:
修改域名,和DNS的ip,把域名改成magedu.com;把DNS的iP 改成172.18.0.2 ,和127.1.1.1
把默认租约的时间改成3600;注意格式ip之间用逗号隔开,用分号结尾否则会出现报错。
修改网关:
把网关修改成192.168.137.119
获取固定的IP地址:
获取指定的地址,需要在配置文件中写入,对方客户端的mac地址;
然后指定IP就完成了,现在我们要获取192.168.25.77的固定IP就需要知道它的mac地址。
注意事项:
1、dhcp服务不能直接启动的,需要先配置/etc/dhcp/dhcpd.conf 这文件里面的相关内容才能启动服务,否则会报错
[root@centos7 ~]# systemctl start dhcpd
Starting dhcpd: [FAILED]
2、dhcp客户端在网卡配置里选择自动获取,而不是手工配置的时候,会自动获取来自dhcp分给他的地址。
3、如果配置完成后,重启服务 systemctl restart dhcpd ,发现有报错,用这条命令journalctl -xe可以精确查找配置文件/etc/dhcp/dhcpd.conf出错的地方,好加以修改。
4、centos7要想当作dhcp服务器,首先自己的有ip地址,否则dhcpd服务就起不来。
5、地址池的配置范围是不能包含DHCP服务器本机的地址的,这是为了避免有冲突。