DHCP(Dynamic Host Configuration Protocol),即动态主机配置协议。使用 DHCP 协议可以为客户端主机自动分配 TCP/IP 参数信息,如 IP 地址、子网掩码、网关、DNS等。
首先,服务器可以选择固定分配特定的参数信息给指定的一台主机,也可以设置多台主机分享这些参数信息;然后客户端再通过竞争获得这些参数信息,即当多个客户端发送请求给服务器时,服务器将遵循先到先得的机制进行资源分配。
在使用 TCP/IP 协议的网络中,每一台计算机都必须至少有一个IP地址,才能与其他计算机进行通信。DHCP 的出现就是为了方便统一规划和管理网络中的IP地址。
在 DHCP 服务器的工作原理中,包含了三种 IP 分配方式,分别为自动分配、手动分配和动态分配:
注意:默认情况下,DHCP 作为 Linux 的一个服务组件并不会被系统自动安装,需要手动添加。
DHCP 软件提供了 DHCP 协议的全部实现功能,主配置文件为 /etc/dhcp/dhcpd.conf,默认该文件为空,但 CentOS 7 系统中的 RPM 软件包提供了一个配置文件模板,可以使用 /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example 作为 DHCP 主配置文件的参考模板。
DHCP 软件的安装过程如下:
1) 打开终端页面,输入 su 命令切换到 root 用户,命令如下:
[abcd@bogon abcd]$ su root
2) 输入 yum 命令进行 DHCP 的安装,命令如下:
[root@bogon ~]# yum install dhcp
输入安装命令之后,等待系统自动安装,安装过程需要耐心等待几分钟。
3) 安装完成之后,需要检测是否安装成功,命令如下:
[root@bogon ~]# rpm –q dhcp
dhcp-4.2.5-77.el7.centos.x86_64
DHCP 安装完成之后需要对其文件进行配置才能正常使用。
输入命令如下:
[abcd@bogon abcd]# vim /etc/dhcpd.conf
该文件是个空文件,即默认的配置文件没有参数模块,因此需要使用 /usr/share/doc/dhcp-4.2.5-77/dhcpd.conf.example 作为 DHCP 主配置文件的参考模板,命令如下:
[abcd@bogon abcd]# mv /usr/share/doc/dhcp.4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
mv:是否覆盖"/etc/dhcp/dhcpd.conf"? y
选择覆盖最初的 /etc/dhcp/dhcpd.conf 文件。
标准的 DHCP 配置文件包括全局配置参数、子网网段声明、地址配置选项以及地址配置参数。使用 cat 命令可以查看 /etc/dhcp/dhcpd.conf 模板文件中的参数,该文件的全局配置参数如图 1 所示。
子网网段声明、地址配置选项以及地址配置参数如图 2 所示。
使用 host 命令定义具体主机的 MAC 专用地址,全局配置参数用于定义整个配置文件的全局参数,而子网网段声明用于配置整个子网网段的地址属性。
/etc/dhcp/dhcpd.conf 模板文件中的具体参数及作用如表 3 所示。
参 数 | 作 用 |
---|---|
option domain-name "example.org" | 定义全局参数:默认搜索域 |
option domain-name-servers nsl .example.org,ns2.example.org | 定义全局参数:域名服务器,多个DNS服务器使用逗号隔开 |
default-lease-time 600 | 定义全局参数:默认租期,单位为秒 |
max-lease-time 7200 | 定义全局参数:最大租期,单位为秒 |
ddns-update-style 类型 | 定义DNS服务动态更新的类型,类型包括:none (不支持动态 更新),interim (互动更新模式)与ad-hoc (特殊更新模式) |
allow/ignore client-updates | 允许或忽略客户机更新DNS记录 |
range | 定义用于分配的IP地址池 |
option subnet-mask | 定义客户机的子网掩码 |
option routers | 定义客户机的网关地址 |
broadcase-address 广播地址 | 定义客户机的广播地址 |
ntp-server IP 地址 | 定义客户机的网络时间服务器(NTP) |
nis-servers IP 地址 | 定义客户机的NIS域服务器的地址 |
hardware硬件类型MAC地址 | 指定网卡接口的类型与MAC地址 |
server-name 主机名 | 通知DHCP客户机服务器的主机名 |
fixed-address IP 地址 | 将某个固定IP地址分配给指定主机 |
time-offset 偏移差 | 指定客户机与格林尼治时间的偏移差 |
默认状态下,DHCP 服务会将日志保存在 /var/log/messages 文件中,如果遇到服务器故障问题,可以检查该文件。网络参数租期文件为 /var/lib/dhcpd/dhcpd.leases,可以通过检查该文件查看服务器已经分配的资源及相关租期信息。
1)修改DHCP配置文件。在终端页面打开/etc/dhcp/dhcpd.conf配置文件进行编辑,命令如下:
[abcd@bogon abcd]# vim /etc/dhcp/dhcpd.conf
切换到插入模式,可以对红框标出的内容进行修改,如图 4 所示。修改完成之后,按 Esc 键退出插入模式,输入“:wq”进行保存即可。
最后输入 cat/etc/dhcp/dhcpd.conf 命令,可以查看修改完成之后的配置文件内容。
2) 查看 DHCP 的工作记录。输入命令如下:
[abcd@bogon abcd]# cat /var/log/messages
部分输出结果如图 5 所示。
3) 查看服务器已经分配的资源及相关租期信息。输入命令如下:
[abcd@bogon abcd]# cat /var/lib/dhcpd/dhcpd.leases
4) 重新启动 DHCP 服务。输入命令如下:
[abcd@bogon abcd]# systemctl restart dhcpd
[abcd@bogon abcd]# systemctl enable dhcpd