一、解读DHCP配置文件
通过yum命令安装dhcpd服务程序,安装完成后通过cat命令查看dhcpd服务程序的配置文件内容。
【yum -y install dhcp】
【cat /etc/dhcp/dhcpd.conf】
默认情况下,该文件只有3行注释过的提示信息。
注释信息提示我们DHCP服务器的配置请参阅一个示例文件,该示例文件是/usr/share/ doc/dhcp*/dhcpd.conf.sample,或者根据DHCP的配置手册进行配置,我们可以使用以下命令将示例文件复制过来,并覆盖现有的空文件。
【cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf】
使用以下命令编辑DHCP主配置文件。
【vim /etc/dhcp/dhcpd.conf】
打开DHCP主配置文件的DHCP示例文件:
和所有的配置文件类似,DHCP示例文件也用#代表注释。
一个标准的配置文件应该包括全局配置参数、子网网段声明、地址配置选项及地址配置参数。其中,全局配置参数用于定义dhcpd服务程序的整体运行参数;子网网段声明用于配置整个子网段的地址属性。
考虑到dhcpd服务程序配置文件的可用参数比较多,笔者在此挑选了一些常见的参数,并对这些参数逐一进行了简单介绍,如下表所示,为接下来的实验打好基础。
参 数 | 作 用 |
ddns-update-style [类型] | 定义DNS服务动态更新的类型,类型包括none(不支持动态更新)、interim(互动更新模式)与ad-hoc(特殊更新模式) |
[allow | ignore] client-updates | 允许、忽略客户端更新DNS记录 |
default-lease-time [21600] | 默认超时时间 |
max-lease-time [43200] | 最大超时时间 |
option domain-name-servers [8.8.8.8] | 定义DNS服务器地址 |
option domain-name ["domain.org"] | 定义DNS域名 |
range | 定义用于分配的IP地址池 |
option subnet-mask | 定义客户端的子网掩码 |
option routers | 定义客户端的网关地址 |
broadcase-address[广播地址] | 定义客户端的广播地址 |
ntp-server[IP地址] | 定义客户端的网络时间服务器(NTP) |
nis-servers[IP地址] | 定义客户端的NIS域服务器的地址 |
Hardware[网卡物理地址] | 指定网卡接口的类型与MAC地址 |
server-name[主机名] | 向DHCP客户端通知DHCP服务器的主机名 |
fixed-address[IP地址] | 将某个固定的IP地址分配给指定主机 |
time-offset[偏移误差] | 指定客户端与格林尼治时间的偏移误差 |
二、 架设企业DHCP服务器
DHCP的设计初衷是更高效地集中管理局域网内的IP地址资源。DHCP服务器会自动把IP地址、子网掩码、网关地址、DNS服务器地址等网络信息分配给有需要的DHCP客户端,而且当DHCP客户端的租约到期后还可以自动回收所分配的IP地址,以便将其分配给新加入的DHCP客户端。
下面是某企业真实生产环境的需求:
请保证公司员工能够使用公司的本地DHCP服务器。
某企业每天都会有100名左右的员工自带笔记本电脑来公司上班,公司需要架设一台DHCP服务器以保证公司员工的电脑自动获取DHCP服务器的IP地址并正常上网,DHCP服务器的IP地址为192.168.88.188。下面按照以下要求进行配置。
(1)为子网192.168.88.0/24建立一个IP作用域,并将在192.168.88.50~192.168.88.150的IP地址动态分配给DHCP客户端。
(2)子网中的DNS服务器地址为192.168.88.1与114.114.114.114,IP路由器地址为192.168.88.1,所在的网域名为linux-yhy.com,将这些参数给指定DHCP客户端使用。
(3)配置默认租约时间21600秒,最大租约时间43200秒。
在了解了真实需求及企业网络中的配置参数之后,接下来是配置DHCP服务器的具体步骤。
第一步:关闭虚拟机的默认DHCP功能。
由于VMware Workstation自带DHCP服务,为了避免与自身配置的dhcpd服务程序产生冲突,
第2步:安装服务,准备样本文件。
CentOS 7中默认没有安装DHCP服务,需要先配置好yum源,然后通过yum命令进行安装,默认的配置文件为空,建议复制样本文件覆盖原本的空文件。
【yum -y install dhcp】
【cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf】
第3步:编辑主配置文件。
在确认DHCP服务器的IP地址等网络信息配置妥当后,就可以配置dhcpd服务程序了。请注意,在配置dhcpd服务程序时,配置文件中的每行参数都需要以分号(;)结尾,这是规定。另外,dhcpd服务程序配置文件内的参数都十分重要,因此笔者罗列出了每行参数,并对其用途进行了简单介绍如表11-2所示。
【vim /etc/dhcp/dhcpd.conf】
ddns-update-style none;
ignore client-updates;
subnet 192.168.88.0 netmask 255.255.255.0 {
range 192.168.88.50 192.168.88.150;
option subnet-mask 255.255.255.0;
option routers 192.168.88.1;
option domain-name "linux-yhy.com";
option domain-name-servers 192.168.88.1;
default-lease-time 21600;
max-lease-time 43200;
}
dhcpd服务程序配置文件中使用的参数及作用
参 数 | 作 用 |
ddns-update-style none; | 设置DNS服务,不自动进行动态更新 |
ignore client-updates; | 忽略客户端更新DNS记录 |
subnet 192.168.88.0 netmask 255.255. 255.0 { | 作用域为192.168.88.0/24网段 |
range 192.168.88.50 192.168.88.150; | IP地址池为192.168.88.50~192.168.88.150(约100个IP地址) |
option subnet-mask 255.255.255.0; | 定义客户端默认的子网掩码 |
option routers 192.168.88.1; | 定义客户端的网关地址 |
option domain-name "linux-yhy.com"; | 定义默认的搜索域 |
option domain-name-servers 192.168. 10.1; | 定义客户端的DNS地址 |
default-lease-time 21600; | 定义默认租约时间(单位:秒) |
max-lease-time 43200; | 定义最大租约时间(单位:秒) |
} | 结束符 |
第4步:服务验证。
把dhcpd服务程序配置妥当之后就可以开启客户端来检验IP地址分配效果了。将客户端的网卡设置为自动获取IP地址即可。可随意开启几台客户端,准备进行验证。但是一定要注意,DHCP客户端与DHCP服务器需要处于同一种网络模式:NAT模式,否则就会产生物理隔离,从而无法获取IP地址。
在红帽认证考试及生产环境中,都需要把配置过的dhcpd服务加入开机启动项,以确保当服务器下次开机后dhcpd服务程序依然能自动启动,并顺利地为客户端分配IP地址等信息。笔者也建议大家能养成“配置好服务程序,顺手加入开机启动项”的好习惯,命令如下。
【systemctl start dhcpd】
【systemctl enable dhcpd】
三、配置DHCP保留地址
在DHCP中,有个术语是“保留”,它用于确保局域网中特定的设备总是获取保留的IP地址。换句话说,就是dhcpd服务程序会把某个IP地址保留下来,只将其用于相匹配的特定设备。
要想将某个IP地址与某台主机进行绑定,就需要用到这台主机的MAC地址。MAC地址是网卡上的一串独立的标识符,具有唯一性,因此不存在冲突的情况。
在Linux操作系统或Windows操作系统中,都可以通过查看网卡的状态来获取主机的MAC地址。在dhcpd服务程序的配置文件中,按照以下格式将IP地址与MAC地址进行绑定。
host主机名称 { | ||||
hardware | ethernet | 该主机的MAC地址; | ||
fixed-address | 欲指定的IP地址; | |||
} |
每次为每张网卡分配IP地址,DHCP服务器都会将其保存在本地的日志文件中,通过以下命令查看日志文件,即可获悉主机的MAC地址与IP地址的对应关系。
【tail -f /var/log/messages】
注意:在Windows操作系统中看到的MAC地址,其格式类似于00-0c-29-27-c6-12,间隔符为“-”。但是在Linux操作系统中,MAC地址的间隔符则变成了冒号“:”。
【vim /etc/dhcp/dhcpd.conf】
ddns-update-style none;
ignore client-updates;
subnet 192.168.88.0 netmask 255.255.255.0 {
range 192.168.88.50 192.168.88.150;
option subnet-mask 255.255.255.0;
option routers 192.168.88.1;
option domain-name "linux-yhy.com";
option domain-name-servers 192.168.88.1;
default-lease-time 21600;
max-lease-time 43200;
host linux-yhy {
hardware ethernet 00:0c:29:27:c6:12;
fixed-address 192.168.88.88;
}
}
确认参数填写正确后就可以保存并退出配置文件了,然后即可通过以下命令重启dhcpd服务程序。
【systemctl restart dhcpd】
至此,配置完成。