红帽7 DHCP 服务
动态主机配置协议
动态主机配置协议(DHCP)是一种基于 UDP 协议且仅限于在局域网内部使用的网络协议,主要用于大型的局域网环境或者存在较多移动办公设备的局域网环境中,其主要用途是为局域网内部的设备或网络供应商自动分配 IP 地址等参数。
➢ 作用域:一个完整的 IP 地址段,DHCP 协议根据作用域来管理网络的分布、分配 I地址及其他配置参数。
➢ 超级作用域:用于管理处于同一个物理网络中的多个逻辑子网段。超级作用域中包含了可以统一管理的作用域列表。
➢ 排除范围:把作用域中的某些 IP 地址排除,确保这些 IP 地址不会分配给 DHCP 客户
➢ 地址池:在定义了DHCP的作用域并应用了排除范围后,剩余的用来动态分配给DHC客户端的 IP 地址范围。
➢ 租约:DHCP 客户端能够使用动态分配的 IP 地址的时间。
➢ 预约:保证网络中的特定设备总是获取到相同的 IP 地
部署 dhcpd 服务程序
安装 dhcpd 服务程序
[root@localhost Desktop]# 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. rhel7 | 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 Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: dhcp x86_64 12:4.2.5-27.el7 rhel7 506 k Transaction 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 rhel7/productid | 1.6 kB 00:00 Verifying : 12:dhcp-4.2.5-27.el7.x86_64 1/1 Installed: dhcp.x86_64 12:4.2.5-27.el7 Complete!
查看 dhcpd 服务程序的配置文件内容。
[root@localhost Desktop]# cat /etc/dhcp/dhcpd.conf # # DHCP Server Configuration file. # see /usr/share/doc/dhcp*/dhcpd.conf.example # see dhcpd.conf(5) man page
没有看错!dhcp 的服务程序的配置文件中只有 3 行注释语句,这意味着我们需要自行编写这个文件。一个标准的配置文件应该包括全局配置参数、子网网段声明、地址配置选项以及地址配置参数。其中,全局配置参数用于定义 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 | 定义客户端的网关地址 |
broadcast-address 广播地址 | 定义客户端的广播地址 |
ntp-server IP地址 | 定义客户端的网络时间服务器(NTP) |
nis-servers IP地址 | 定义客户端的NIS域服务器的地址 |
hardware 硬件类型 MAC地址 | 指定网卡接口的类型与MAC地址 |
server-name 主机名 | 向DHCP客户端通知DHCP服务器的主机名 |
fixed-address IP地址 | 将某个固定的IP地址分配给指定主机 |
time-offset 偏移差 | 指定客户端与格林尼治时间的偏移差 |
自动管理 IP地址
DHCP 协议的设计初衷是为了更高效地集中管理局域网内的 IP 地址资源。DHCP 服务器会自动把 IP 地址、子网掩码、网关、DNS 地址等网络信息分配给有需要的客户端,而且当客户端的租约时间到期后还可以自动回收所分配的 IP 地址,以便交给新加入的客户端。
DHCP客户端与服务器需要处于同一种网络模式—仅主机模式(Hostonly),否则就会产生物理隔离,从而无法获取IP地址。在配置 dhcpd 服务程序时,配置文件中的每行参数后面都需要以分号(;)结尾。
[root@localhost Desktop]# vim /etc/dhcp/dhcpd.conf ddns-update-style none; ignore client-updates; subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.50 192.168.10.150; option subnet-mask 255.255.255.0; option routers 192.168.10.1; option domain-name-servers 192.168.10.1; default-lease-time 21600; max-lease-time 43200; }
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-servers 192.168.10.1; | 定义客户端的DNS地址 |
default-lease-time 21600; | 定义默认租约时间(单位:秒) |
max-lease-time 43200; | 定义最大预约时间(单位:秒) |
} | 结束符 |
重启服务并加入到启动项,并清空iptables。
[root@localhost Desktop]# systemctl restart dhcpd [root@localhost Desktop]# systemctl enable dhcpd ln -s '/usr/lib/systemd/system/dhcpd.service' '/etc/systemd/system/multi-user.target.wants/dhcpd.service'
[root@localhost Desktop]# iptables -F
[root@localhost Desktop]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
把客户端打开,并设置成自动获取IP,并重启网卡。
重启客户端的网卡服务后即可看到自动分配到的 IP 地址
分配固定 IP 地址
在 DHCP 协议中有个术语是“预约”,它用来确保局域网中特定的设备总是获取到固定的 IP 地址。换句话说,就是 dhcpd 服务程序会把某个 IP 地址私藏下来,只将其用于相匹配的特定设备。要想把某个 IP 地址与某台主机进行绑定,就需要用到这台主机的 MAC 地址。MAC 地址是网卡上面的一串独立的标识符,具备唯一性,因此不会存在冲突的情况.
在dhcpd服务程序的配置文件中,按照如下格式将IP地址与MAC地址进行绑定。
host 主机名称 { | |||
hardware | ethernet | 该主机的MAC地址; | |
fixed-address | 欲指定的IP地址; | ||
} |
[root@localhost Desktop]# vim /etc/dhcp/dhcpd.conf
ddns-update-style none; ignore client-updates; subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.50 192.168.10.150; option subnet-mask 255.255.255.0; option routers 192.168.10.1; option domain-name-servers 192.168.10.1; default-lease-time 21600; max-lease-time 43200; host test { hardware ethernet 00:0c:29:6e:8b:e5; fixed-address 192.168.10.88; } }
保存退出配置文件,然后重启 dhcpd 服务程序
[root@localhost Desktop]# systemctl restart dhcpd
重启客户端网卡,查看ip