搭建DHCP服务,实现ip地址申请分发
Posted JohnnyFang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建DHCP服务,实现ip地址申请分发相关的知识,希望对你有一定的参考价值。
DHCP( Dynamic Host Configuration Protocol),动态主机配置协议,指的是由服务器控制一段ip地址范围,当客户端在登录服务器时可以自动获得服务器分配的ip地址和子网掩码等,从而实现对主机的动态地址分配功能。
Linux中的DHCP服务可通过dhcp-server(CentOS7中为dhcp)和dnsmasq两款软件来实现,不过dhcp-server的功能更为丰富,笔者这里以dhcp-server来操作演示。
- 准备事项
1.1 关闭现有dhcp服务
为了防止实验冲突,我们需要将网络中已有的DHCP服务关闭。比如笔者这边使用了VMwareWorkstation,需将VMnet8部分的dhcp自动分配地址取消(如下图)。
1.2 下载dhcp-server
笔者这边以名为hello-world的CentOS8为dhcp服务器,故下载的为dhcp-server服务,如果是在CentOS7系列上,将命令行中的dhcp-server改为dhcp即可(如下图)。
- 启动dhcp服务
2.1 检查包情况并启动
Ubuntu中默认下载后的服务自动开启,而CentOS系列需要手动开启。执行 systemctl status dhcpd 命令,可查看下载的dhcp是否已开启;执行 systemctl enable --now dhcpd 命令,开启dhcp服务并设定为开机启动,但是报错(如下图)。
2.2 修改配置文件
首次开启服务失败是因为需对dhcp配置文件进行修改,执行 rpm -ql dhcp-server 命令可以看到/etc/dhcp/dhcpd.conf这一项,即dhcp的配置文件,打开后发现里面全是注释的信息,但是提供了参考范例/usr/share/doc/dhcp-server/dhcpd.conf.example(如下图)。
2.2.1 拷贝参考配置文件
执行 cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf 命令,将参考范例复制并覆盖原有的无效配置文件(如下图)。
但是此时开启服务还是起不来,需对参考范例的配置文件进行修改。要想dhcp服务器能为其他主机提供服务,需有自己的网段、子网掩码,同时要配上DNS和网关。
2.2.2 修改参考配置文件
①打开配置文件,找到“subnet 10.152.187.0 netmask 255.255.255.0”这一行,可以直接修改,也可将参考内容注释掉自己添加。子网掩码就用范例中的255.255.255.0,笔者这边根据虚拟主机网络设置内容,将subnet部分改为10.10.10.0。
②设定为其他主机提供的地址段,笔者这边设定为10.10.10.10-30,设置网段时注意不要与现有主机ip相冲突。
③设置网关和DNS,服务器的DNS可用百度、阿里等提供的免费DNS。
④修改租期,默认的为600秒比较短,会导致主机ip不稳定,可根据生产情况做改动,一般修改为86400,即一天;最大租期一般用不上,如有需要可以使用。
具体操作如下:
保存修改内容后,执行 systemctl enable --now dhcpd 命令启动服务,此时再查看状态,dhcp已可使用(如下图)。
- 地址分发
3.1 自动获取ip地址
笔者这边将一台名为LeoMessi的CentOS8虚拟机和一台名为CentOS7.9的CentOS7虚拟机还原成默认网卡设置,此时两台机器都是通过默认的dhcp来获取ip地址,重启两台虚拟机,可看到分别获取到了dhcp服务器中设定的10.10.10.10地址和10.10.10.11地址(如下图)。
如果想查看哪些主机获取了dhcp服务器中的ip地址等,可进入到/var/lib/dhcpd/目录下,找到dhcpd.leases文件,打开后可查看相关信息(如下图)。
*该处的使用时间和结束时间使用的是utc时间,我们处在东八区,需要加8小时。
3.2 静态地址加动态地址的结合
如果一台主机已经有固定的ip了,想要通过dhcp服务器再获得一个动态地址也可实现。笔者这边准备了一台名为8-stream的主机,已经有一个固定的静态地址10.10.10.151(如下图)。
使用dhclient命令可以让已经拥有静态地址的主机再获得一个,执行man dhclient 命令可查看相关帮助,其中有一项关于-d的说明,可以显示具体的过程(如下图)。
执行 dhclient -d 命令,显示通过dhcp服务器获得了一个10.10.10.12的动态地址,并显示了获得动态地址的过程;执行 ip a 命令,可看到两个地址(如下图)。
3.3 dhcp分配固定地址
dhcp也可以给客户端主机分配固定地址,实现租期内的静态地址功能。要想实现该项功能,需要将目标客户端主机的mac地址和希望对方使用的动态地址写到配置文件中。
笔者这边已经使用的dhcp地址有10.10.10.10-12,总设定地址段为10.10.10.10-30,按照静态地址分发规律,后面获得是从10.10.10.13开始,为了效果,笔者将主机名为LeoMessi的主机mac地址绑定到10.10.10.20上,LeoMessi主机的mac地址如下:
dhcp服务器打开/etc/dhcp/dhcpd.conf配置文件,找到绑定mac地址和ip的范例,将LeoMessi的mac地址和想要其使用的ip进行绑定(如下图)。
修改保存后,执行 systemctl restart dhcpd 命令重启服务,在LeoMessi主机上执行 dhclient -d 命令可获取一个固定的静态ip,因为之前获取的静态ip还在有效期内,所以会显示两个地址,重启主机,再次查看,则只有一个10.10.10.20的地址(如下图)。
以上是关于搭建DHCP服务,实现ip地址申请分发的主要内容,如果未能解决你的问题,请参考以下文章