• 14.3 自动管理IP地址

    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系统的客户端进行尝试,其效果都是一样的。