14.3 自动管理IP地址

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 单击虚拟机软件的“虚拟网络编辑器”菜单

不使用虚拟机的DHCP功能

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

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

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

  1. [root@linuxprobe ~]# vim /etc/dhcp/dhcpd.conf
  2. ddns-update-style none;
  3. ignore client-updates;
  4. subnet 192.168.10.0 netmask 255.255.255.0 {
  5. range 192.168.10.50 192.168.10.150;
  6. option subnet-mask 255.255.255.0;
  7. option routers 192.168.10.1;
  8. option domain-name "linuxprobe.com";
  9. option domain-name-servers 192.168.10.1;
  10. default-lease-time 21600;
  11. max-lease-time 43200;
  12. }

表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地址等信息。刘遄老师真心建议大家能养成“配置好服务程序,顺手加入开机启动项”的好习惯:

  1. [root@linuxprobe ~]# systemctl start dhcpd
  2. [root@linuxprobe ~]# systemctl enable dhcpd
  3. ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.target.wants/dhcpd.service'

把dhcpd服务程序配置妥当之后就可以开启客户端来检验IP分配效果了。重启客户端的网卡服务后即可看到自动分配到的IP地址,如图14-5所示。

DHCP自动获取IP地址(IP地址)

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

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