5-1 搭建dhcpd服务
介绍
DHCP协议: (Dynamic Host Configuration Protocol)动态主机配置协议。避免了手工配置静态IP的麻烦,自动获取局域网IP,局域网的路由器就自带了dhcpd服务。
实验设计:
虚拟机linux做dhcp服务器,虚拟机windows做客户端,两者的网络适配器都选择仅主机并取消vmware网卡自带的dhcp服务,这样两台机器在同一网段内互通,并且客户机将通过广播请求到自建dhcp服务。
路由器后台界面,从中可以看到dhcp服务相关的参数,一些同学也在家中设置过路由器:
客户机准备
选择一: 机房自带的Windows Server 2016
选择二: 克隆另一台CentOS虚拟机出来。 虚拟机列表/CentOS 8-鼠标右键/电源/🟥关闭客户机。
虚拟机列表/CentOS 8-鼠标右键/管理/克隆,向导过程中选择完整克隆 ,其余点下一步,这样会复制虚拟硬盘克隆出的第二台机器是独立的。
网络环境准备
仅主机(host only)模式: 虚拟机仅能跟宿主机通信因此叫仅主机 。连接同一块虚拟机网卡的虚拟机间可以互相访问,模拟局域网环境,常用于测试。与NAT模式相似,区别是无互联网出口。
(机房中)确认宿主机Windows中的VMware虚拟机网卡启用中:
Vmware Workstation安装后会生成对应三种网络模式的网卡,vmnet0 桥接/vmnet1 仅主机/vmnet8 NAT。 而机房电脑因为还安装有其它虚拟化软件和网络布线模拟软件、为了防止冲突禁用了,导致虚拟机无法连接仅主机模式的网卡。如果已经是启用状态则不需要改动。Windows系统设置/网络和Internet/更改适配器选项,选中vmnet1网卡/鼠标右键-启用。
编辑虚拟网卡(virtual network editor), 禁用vmware网卡自带的dhcp服务:
因为要测试自建的dhcp服务,要关闭vmware网卡vmnet1自带的dhcp服务。如果灰色不能编辑,先进行windows账户授权(有些像linux上的sudo)。
Vmware软件界面顶部菜单栏-编辑/编辑虚拟网络。
先选中VMnet1仅主机网卡。然后取消勾选 ✅使用本地dhcp为虚拟机分配IP。(可选但建议)编辑虚拟网卡(virtual network editor),设置网卡网段:
在上一步的对话框中,编辑vmnet1网卡网段为192.168.1.0 ,方便后面记忆书写。如果不修改,配置静态ip时和配置dhcpd.conf时的网段都应该与此处vmnet1网段保持一致,否则连不上网卡。见上图。设置仅主机, 服务机和客户机都要设置: 虚拟机列表鼠标右键/编辑设置/网络适配器,选择到🔘仅主机。
重启虚拟机中网卡:
虚拟机中的网卡连接的就是刚才我们编辑设置的网卡,开关网卡以加载最新配置。方法一 虚拟机桌面右上角/设置图标/网络/以太网卡开关,见上图。
方法二
nmcli device down ens33
,nmcli device up ens33
。
设置静态IP
原因:
dhcpd服务启动时需要绑定工作网卡,监听来自同网段中其它客户机发来的广播请求,否则无法启动服务。
(其它教程普遍缺少这一步骤,可能因为关闭自带dhcp的步骤放到了后面,前面已获取ip,因此在他们的教程中启动服务未出现错误。)
物理服务器自带网卡,而虚拟机只有连上了vmware的虚拟网卡才算是有网卡。
但虚拟网卡自带的dhcpd关闭后,导致虚拟机网卡自动连不上,表现为点击网卡开关后,显示正在连接 ,过一会后超时失败,开关变为关闭状态。
所以要手动设置IP。
(跳过)设置静态IP(命令行): nmcli命令,详见2-3节,略。
设置静态IP(图形界面): 选择手动并填入信息如下图,因为是仅主机模式不是桥接模式,因此ip可以照抄下图。
验证静态ip符合网卡网段:
打开网卡开关,显示已连接。信息显示ip在vmnet1设置网段中,无自动分配的dns地址。
安装
软件名: 服务端dhcp-server,客户端dhcp-client。(老版本CentOS中叫dhcp。)
(可选)检测是否已安装
yum list installed | grep dhcp
(跳过)在线安装
yum install dhcp-server dhcp-client
离线安装
老师下发离线安装包到学生机桌面。宿主机中复制,虚拟机中图形化文件管理器中粘贴,即下载安装包到/root目录下。
解压缩解包
安装
(可选)验证安装,能看到默认配置文件和软件版本
rpm -r dhcp
配置
(可选)阅读模板文件
cat /usr/share/doc/dhcp-server/dhcpd.conf.example
配置文件dhcpd.conf:
添加如下内容
检查配置
启动服务
启动服务
关闭防火墙
或正规做法放通端口firewall-cmd --add-service=dhcpd --permanent
systemctl restart firewalld
=== 以下为客户端 ===
客户端测试
这里使用同一台宿主机下的Windows虚拟机做客户端。(不能用宿主机windows做测试,因为其有多个网卡,多个dhcp服务器会导致客户端每次得到的ip非预期。)
客户机选择仅主机网卡: 客户端网卡适配器调整为仅主机模式。这样客户端与服务端处于同一虚拟网卡下,可以互通,可以ping服务端ip测试。
客户机重启网卡: 桌面右下角网络图标(鼠标右键打开网络设置)/高级网络设置-更改适配器选项/以太网卡-鼠标右键选禁用-鼠标右键选启用
验证成功: Windows以太网卡能分配到ip地址、在服务端配置的地址段中,dhcp服务器ip显示为服务器ip,掩码、网关、无dns服务器,这些特征都与服务端dhcpd.conf中一致,为成功🎉。 Windows Server 2016
CentOS 8
Windows 10(机房没有这个虚拟机)
服务器端查看释放的ip
返回信息可见分配出去的ip、租约剩余时间,与客户机中的信息一致。