智者不为愚者谋,勇者不为怯者死。这篇文章主要讲述搭建DHCP服务,实现ip地址申请分发相关的知识,希望能为你提供帮助。
DHCP??(
Dynamic Host Configuration Protocol)??,动态主机配置协议,指的是由服务器控制一段ip地址范围,当客户端在登录服务器时可以自动获得服务器分配的ip地址和子网掩码等,从而实现对主机的动态地址分配功能。
Linux中的DHCP服务可通过dhcp-server??(CentOS7中为dhcp)??和dnsmasq两款软件来实现,不过dhcp-server的功能更为丰富,笔者这里以dhcp-server来操作演示。
- ?准备事项?
为了防止实验冲突,我们需要将网络中已有的DHCP服务关闭。比如笔者这边使用了VMwareWorkstation,需将VMnet8部分的dhcp自动分配地址取消??(如下图)??。
?1.2 下载dhcp-server?
笔者这边以名为hello-world的CentOS8为dhcp服务器,故下载的为dhcp-server服务,如果是在CentOS7系列上,将命令行中的dhcp-server改为dhcp即可??(如下图)??。
- ?启动dhcp服务?
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已可使用??(如下图)??。
- ?地址分发?
笔者这边将一台名为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地址申请分发】
推荐阅读
- Mysql数据库——MMM架构
- pfSense配置基于TLS协议的DNS(DoT)
- 运维小白成长记——第八周
- #yyds干货盘点#Prometheus 最佳实践原则
- #yyds干货盘点#怎样使用cfssl为etcd颁发SSL证书
- OPNsense重定向DNS请求到本地DNS解析器
- (openEuler21.03-Centos7-x86)yum安装php+nginx—配置nginx解析php
- Python语言入门简单介绍
- Python列表理解和切片用法介绍