5-1 搭建dhcpd服务
介绍
DHCP协议: (Dynamic Host Configuration Protocol)动态主机配置协议。避免了手工配置静态IP的麻烦,自动获取局域网IP,局域网的路由器就自带了dhcpd服务。
路由器后台界面,从中可以看到dhcp服务相关的参数,一些同学也在家中设置过路由器:

实验设计
服务端:CentOS 上安装dhcp-server服务
客户端(任选一个):
客户端1:机房自带的Windows Server 2016
客户端2: 从CentOS虚拟机完整克隆(在安装dhcp前克隆,虚拟机列表/CentOS 8-鼠标右键/电源/🟥关闭客户机。)
客户端3: Ubuntu虚拟机
服务端和客户端虚拟机都在NAT模式,确保互通。不能为桥接模式,否则客户机会走学校路由器的dhcp服务中得到IP。 这里其实有两个DHCP服务器,一个是VMware NAT网卡自带的(一台虚拟机启动后有IP就是从VMware自带的DHCP服务中得到IP)。
一个是充当服务端的CentOS虚拟机,我们自己安装的dhcp-server软件。所以要禁用掉VMware自带的,让客户端自动走我们自建的服务,如果确实分配到了配置文件中的网段中的IP,则为成功。
网络环境准备
服务端CentOS虚拟机和客户端Windows Server虚拟机必须都在NAT模式,这样它们是互通的,客户机开机时可以访问到服务端上的DHCP服务。
(学校机房中)确认宿主机Windows中的VMware虚拟机网卡启用中:
Vmware Workstation安装后会生成对应三种网络模式的网卡,本地物理网卡 桥接/vmnet1 仅主机/vmnet8 NAT。 机房电脑因为还安装有虚拟化软件VirtualBox、为了防止冲突禁用了VMware的网卡,需要启用。
1)Windows宿主机系统设置/网络和Internet/更改适配器选项,选中virtualbox网卡/鼠标右键-禁用。
2)Windows宿主机系统设置/网络和Internet/更改适配器选项,选中vmnet8网卡 /鼠标右键-启用。
3)Windows宿主机系统设置/网络和Internet/更改适配器选项,选中vmnet1网卡 /鼠标右键-启用。
VMware编辑虚拟网卡(virtual network editor), 禁用VMware网卡自带的DHCP服务:
因为要测试自建的DHCP服务,防止客户机启动后自动从VMnet8自带的DHCP服务自动获取IP,因此要关闭VMware虚拟网卡自带的dhcp服务。
Vmware软件界面顶部菜单栏-编辑/编辑虚拟网络。
1)先选中VMnet8 NAT网卡。(如果灰色不能编辑,先进行Windows账户授权)。
2)然后取消勾选 ✅使用本地DHCP为虚拟机分配IP 。这样就禁用了。
3)(可选但建议)设置网卡网段 192.168.1.0 ,方便后面书写。(后面配置dhcpd.conf文件时的网段应该与此处网段保持一致)
(以描述中的NAT8网卡为准,图片是中的NAT1网卡是旧图)服务机开机前设置使用NAT网卡:
虚拟机列表鼠标右键/编辑设置/网络适配器,选择到🔘NAT 。(截图用的仅主机网卡和离线安装方式,现在以步骤描述为准。)
(可选)重启虚拟机中网卡:
如果虚拟机已经开启,然后又修改了VMnet8的设置,那么虚拟机中的网卡需要开关以加载最新配置。
设置静态IP
因为以下原因,需要为服务端设置静态IP:
VMnet8自带的DHCP服务已经被禁用,服务机CentOS启动后无法获取IP地址,无法联网安装软件。
作为服务端应该有一个固定IP,客户机才好访问。
dhcpd.service服务进程启动时必须绑定一个网卡,监听来自同网段广播的请求。
设置静态IP(图形界面): 选择手动并填入信息如下图。
IP: 192.168.1.100(这个网段内的任意值都行) 掩码:255.255.255.0
网关: 192.168.1.2 (⚠️注意VMware的VMnet8网卡默认网关是2,而不是常用的1或254,如果设置不正确,表现为局域网没问题但不能连互联网)
DNS: 114.114.114.114

验证静态ip符合网卡网段:
打开网卡开关,显示已连接。信息显示ip在vmnet8设置网段中,无自动分配的dns地址。
验证互联网访问:
ping www.baidu.com
在线安装
软件名: 服务端dhcp-server,客户端dhcp-client。(老版本CentOS中叫dhcp。)
换源。
sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-* sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=https://mirrors.cloud.tencent.com|g" /etc/yum.repos.d/CentOS-* yum makecache在线安装
yum install dhcp-server
(跳过)离线安装
老师下发离线安装包到学生机桌面。宿主机中复制,虚拟机中图形化文件管理器中粘贴,即下载安装包到/root目录下。
解压缩解包
配置
(可选)阅读模板文件
cat /usr/share/doc/dhcp-server/dhcpd.conf.example。编辑配置文件dhcpd.conf(⚠️注意是dhcpd.conf不是dhcp.conf):
nano /etc/dhcp/dhcpd.conf添加如下内容
# 注意配置文件是 dhcpd.conf 不是 dhcp.conf。 # 不要抄写注释,在一些配置文件中不允许行内注释。 # ⚠️格式解析式严格,该用空格的地方用空格,该用tab的时候用tab。 option domain-name "example.com"; # 不重要,因为没有搭建dns服务器,这个域名是逻辑上的管理者。 option domain-name-servers ns.example.com; default-lease-time 600; # 租约时间 max-lease-time 7200; authoritative; # 权威服务器,即此配置有效 # 核心设置 subnet 192.168.1.0 netmask 255.255.255.0 { # 客户端子网网段、掩码 range dynamic-bootp 192.168.1.10 192.168.1.20; # 客户端可以获取的IP池范围,这里限制一个小范围,方便后面测试验证结果 option broadcast-address 192.168.1.255; # 广播地址 option routers 192.168.1.2; # 网关 } # 其它设置,略,自己实验,例如根据网卡MAC地址给老板的电脑分配固定IP防止IP经常变动。检查配置
dhcpd -t
启动服务
启动服务
systemctl start dhcpd systemctl status dhcpd # 如果配置修改需要重启服务使生效 # systemctl restart dhcpd查看服务状态
systemctl status dhcpd关闭防火墙
systemctl stop firewalld
=== 以下为客户端 ===
客户端测试
这里使用同一台宿主机下的Windows虚拟机做客户端。
客户机选择仅主机网卡: 客户端网卡适配器调整为仅主机模式。这样客户端与服务端处于同一虚拟网卡下,可以互通,可以ping服务端ip测试。
客户机重启网卡: 桌面右下角网络图标(鼠标右键打开网络设置)/高级网络设置-更改适配器选项/以太网卡-鼠标右键选禁用-鼠标右键选启用
验证成功: Windows以太网卡能分配到ip地址192.168.1.10 (与配置文件中范围一致)、在服务端配置的地址段中, dhcp服务器IP显示为服务机IP ,掩码、网关、无dns服务器,这些特征都与服务端dhcpd.conf中一致,为成功🎉。 Windows Server 2016

CentOS 8

Windows 10

(可选)服务端管理:
思考题
(真实发生)有同学使用了桥接网卡进行实验,一些教室发现出现无法控制学生机无法批量开关学生机的现象,分析原因。