-

DHCP协议的设计初衷是为了更高效地集中管理局域网内的IP地址资源。DHCP服务器会自动把IP地址、子网掩码、网关、DNS地址等网络信息分配给有需要的客户端,而且当客户端的租约时间到期后还可以自动回收所分配的IP地址,以便交给新加入的客户端。

为了让实验更有挑战性,刘遄老师来模拟一个真实生产环境的需求:

“机房运营部门:明天会有100名学员自带笔记本电脑来我司培训学习,请保证他们能够使用机房的本地DHCP服务器自动获取IP地址并正常上网”。

机房所用的网络地址及参数信息如表14-2所示。

表14-2 机房所用的网络地址以及参数信息

参数名称 值 默认租约时间 21600秒 最大租约时间 43200秒 IP地址范围 192.168.10.50~192.168.10.150 子网掩码 255.255.255.0 网关地址 192.168.10.1 DNS服务器地址 192.168.10.1 搜索域 linuxprobe.com 在了解了真实需求以及机房网络中的配置参数之后,我们按照表14-3来配置DHCP服务器以及客户端。

表14-3 DHCP服务器以及客户端的配置信息

主机类型 操作系统 IP地址 DHCP服务器 RHEL 7 192.168.10.1 DHCP客户机 RHEL 7 DHCP自动获取地址 前文讲到,作用域一般是个完整的IP地址段,而地址池中的IP地址才是真正供客户端使用的,因此地址池应该小于或等于作用域的IP地址范围。另外,由于VMware Workstation虚拟机软件自带DHCP服务,为了避免与自己配置的dhcpd服务程序产生冲突,应该先按照图14-3和图14-4所示将虚拟机软件自带的DHCP功能关闭。

图14-3 单击虚拟机软件的“虚拟网络编辑器”菜单

图14-4 关闭虚拟机自带的DHCP功能

可随意开启几台客户端,准备进行验证。但是一定要注意,DHCP客户端与服务器需要处于同一种网络模式—仅主机模式(Hostonly),否则就会产生物理隔离,从而无法获取IP地址。刘遄老师建议开启1~3台客户端虚拟机验证一下效果就好,以免物理主机的CPU和内存的负载太高。

在确认DHCP服务器的IP地址等网络信息配置妥当后就可以配置dhcpd服务程序了。请注意,在配置dhcpd服务程序时,配置文件中的每行参数后面都需要以分号(;)结尾,这是规定。另外,dhcpd服务程序配置文件内的参数都十分重要,因此刘遄老师在表14-4中罗列出了每一行参数,并对其用途进行了简单介绍。

[root@linuxprobe ~]# vim /etc/dhcp/dhcpd.conf ddns-update-style none; ignore client-updates; subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.50 192.168.10.150; option subnet-mask 255.255.255.0; option routers 192.168.10.1; option domain-name "linuxprobe.com"; option domain-name-servers 192.168.10.1; default-lease-time 21600; max-lease-time 43200; } 表14-4 dhcpd服务程序配置文件中使用的参数以及作用

参数 作用 ddns-update-style none; 设置DNS服务不自动进行动态更新 ignore client-updates; 忽略客户端更新DNS记录 subnet 192.168.10.0 netmask 255.255.255.0 { 作用域为192.168.10.0/24网段 range 192.168.10.50 192.168.10.150; IP地址池为192.168.10.50-150(约100个IP地址) option subnet-mask 255.255.255.0; 定义客户端默认的子网掩码 option routers 192.168.10.1; 定义客户端的网关地址 option domain-name "linuxprobe.com"; 定义默认的搜索域 option domain-name-servers 192.168.10.1; 定义客户端的DNS地址 default-lease-time 21600; 定义默认租约时间(单位:秒) max-lease-time 43200; 定义最大预约时间(单位:秒) } 结束符 在红帽认证考试以及生产环境中,都需要把配置过的dhcpd服务加入到开机启动项中,以确保当服务器下次开机后dhcpd服务依然能自动启动,并顺利地为客户端分配IP地址等信息。刘遄老师真心建议大家能养成“配置好服务程序,顺手加入开机启动项”的好习惯:

[root@linuxprobe ~]# systemctl start dhcpd [root@linuxprobe ~]# systemctl enable dhcpd ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.target.wants/dhcpd.service' 把dhcpd服务程序配置妥当之后就可以开启客户端来检验IP分配效果了。重启客户端的网卡服务后即可看到自动分配到的IP地址,如图14-5所示。

图14-5 客户端自动获取的IP地址

如果有兴趣,大家还可以再开启一台运行Windows系统的客户端进行尝试,其效果都是一样的。