使用DHCP动态管理主机地址。
1、部署dhcpd服务程序
dhcpd服务程序是Linux系统中用于提供DHCP动态主机地址管理协议的服务,确认yum仓库配置妥当后就可以直接安装了,DHCP协议虽然十分重要,但dhcpd服务程序的配置步骤却十分简单,很大程度上降低了Linux系统实现DHCP动态主机地址管理服务的门槛:
[root@linuxprobe ~]# yum install dhcp
Loaded plugins: langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
rhel | 4.1 kB 00:00
Resolving Dependencies
--> Running transaction check
---> Package dhcp.x86_64 12:4.2.5-27.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved
===============================================
Package Arch Version Repository Size=============================================== Installing: dhcp x86_64 12:4.2.5-27.el7 rhel 506 kTransaction Summary===============================================Install 1 Package
total download size: 506 k
Installed size: 1.4 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : 12:dhcp-4.2.5-27.el7.x86_64 1/1
Verifying : 12:dhcp-4.2.5-27.el7.x86_64 1/1
Installed:
dhcp.x86_64 12:4.2.5-27.el7
Complete!
是的,您没有看错!打开dhcpd服务程序的主配置文件发现只有3行注释语句,大意是告诉咱们配置文件需要全部由自己来写,如果不熟悉的话可以看下第2行中的参考示例文件,再或者买本刘遄老师的《Linux就该这么学》自学书籍吧~哈哈,最后一句是玩笑了。如图14-2所示,一个标准的DHCP配置文件应该包括全局配置参数、子网网段声明、地址配置选项以及地址配置参数:
[root@linuxprobe ~]# cat /etc/dhcp/dhcpd.conf# DHCP Server Configuration file.# see /usr/share/doc/dhcp*/dhcpd.conf.example# see dhcpd.conf(5) man page

2、 自动管理IP地址
DHCP动态主机地址管理协议的设计初衷是为了更高效的集中管理局域网内IP地址资源,作为运维人员只需要在机房内部署一台DHCP服务器,接下来的事情就不用操心了,DHCP服务会自动将IP地址、子网掩码、网关、DNS地址等等网卡信息分配给有需要的客户端,当客户端的租约时间到期后还可以自动回收所分配的IP地址,以便交给后面新加入的客户主机。为了让实验更有挑战性,咱们来模拟一个真实生产环境的需求吧——“机房运营部门: 明日约有50名外来学员自带笔记本设备来我司培训学习,请保证学员能够用机房本地DHCP服务器自动获取IP地址并正常上网”,机房网段及参数如下表所示:
编辑
参数名称值
默认租约时间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
看完工作需求和机房配置参数后,咱们首先按照下表配置好DHCP服务器自身的IP地址,然后头脑中快速回忆上面学习的DHCP术语和常用参数,作用域一般是个完整的IP地址段,而地址池才是真真正正用于给客户端分配的IP地址范围,因此地址池应该小于或等于作用域IP地址范围,另外由于VmwareWorkstation虚拟机软件自带有DHCP动态主机管理服务,为了避免与咱们自己配置的DHCP产生冲突,应该先如图14-3与图14-4所示,将其自带DHCP功能关闭掉:
编辑
主机类型操作系统IP地址
DHCP服务端红帽RHEL7操作系统192.168.10.1
DHCP客户机红帽RHEL7操作系统DHCP自动获取地址
图14-3 点击虚拟机的虚拟网络编辑器
图14-4 将虚拟机自带的DHCP功能关闭
这时随便开启几台客户端主机,但一定要注意DHCP服务端与客户端主机都应处于同一种网络模式——仅主机模式(Hostonly),否则就会产生物理隔离,一定获取不到IP地址的,刘遄老师建议准备1-3台客户端虚拟机看下效果就好,以免您的真机电脑CPU和内存负载太高。当同学们确认DHCP服务端的IP地址等网卡信息配置已经妥当后就可以开始配置dhcpd服务程序了,请留心每行参数后面都需要以;(分号)结尾,这是dhcpd服务程序的规定哦~因为主配置文件内的参数都十分重要,因此刘遄老师单独做了一个表格,对每一行的参数都进行了简单讲解。
[root@linuxprobe ~]# vim /etc/dhcp/dhcpd.conf
编辑
参数作用
ddns-update-style none;设置DDNS服务不自动动态更新。
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服务程序能够自动启动并依然顺利的为客户端分配网卡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'
把DHCP服务器配置妥当后就可以开启客户主机来检验IP分配效果了,bind服务程序的配置过程是不是超级简单?!~希望同学们以后也不要一提到Linux系统就怕得不行,其实很多服务程序的配置都很容易呢,重启客户端主机的网卡后即可看到自动分配到的IP地址,如图14-5所示,同学们如果有兴趣的话还可以再开启一台Windows系统试试,效果都是一样的:

3、分配固定IP地址
在DHCP动态主机地址管理协议中有个术语叫做“预约”,预约指的是保证局域网中特定的设备总是获取到固定的IP地址,换句话说就是dhcpd服务程序会将某个IP地址私藏下来,只有匹配到特定主机了才会拿出来分配,让某个特定主机总能获取到固定的IP地址。
要想将IP地址与某个主机相互绑定,那么需要该主机的MAC网卡物理地址才可以,MAC地址是网卡上面的一串独立标识符,因此不用担心冲突的情况,如图14-6所示,咱们在Linux系统或Windows系统中都可以通过查看网卡状态来查看到这个MAC值,dhcpd服务程序的配置参数格式如下:
编辑
host 主机名称 {
hardwareethernet该主机的MAC地址;
fixed-address欲指定的IP地址;
}
此时一定有同学会问如果不方便查看MAC地址怎么办呢?比如给公司老板的机器绑定IP地址,总不能随便就去看电脑信息吧,刘遄老师就来告诉大家一个很好的办法,首先咱们启动dhcpd服务程序,然后为老板的主机分配一个IP地址,这样在DHCP服务器本地的日志文件中就会保存有了这次的IP地址分配记录,那么咱们就可以通过看日志文件来获取到对方电脑的网卡MAC地址啦~
