如何在 CentOS、RHEL 和 Fedora 中安装 DHCP 服务器
DHCP(动态主机配置协议)是一种网络协议,使服务器能够自动分配 IP 地址并向网络上的客户端提供其他相关的网络配置参数,从预定义的 IP 池。
这意味着每次客户端(连接到网络)启动时,它都会获得一个“动态”IP 地址,而不是永远不会改变的“静态”IP 地址。 DHCP 服务器分配给 DHCP 客户端的 IP 地址是“租用”的,租用时间可能会有所不同,具体取决于客户端可能需要连接或 DHCP 配置的时间长短。
在本教程中,我们将介绍如何在 CentOS/RHEL 和 Fedora 发行版中安装和配置 DHCP 服务器。
测试环境搭建
我们将使用以下测试环境来进行此设置。
DHCP Server - CentOS 7
DHCP Clients - Fedora 25 and Ubuntu 16.04
DHCP 是如何工作的?
在继续之前,我们先简要解释一下 DHCP 的工作原理:
- 当客户端计算机(配置为使用 DHCP)并连接到网络时,它会向 DHCP 服务器转发一条 DHCPDISCOVER 消息。
- DHCP服务器收到DHCPDISCOVER请求消息后,回复DHCPOFFER消息。
- 然后客户端收到DHCPOFFER消息,并向服务器发送DHCPREQUEST消息,表明它准备获取DHCPOFFER中提供的网络配置强>消息。
- 最后但并非最不重要的一点是,DHCP 服务器接收来自客户端的 DHCPREQUEST 消息,并发送 DHCPACK 消息,表明客户端现在可以使用分配给它的 IP 地址。
步骤1:在CentOS中安装DHCP服务器
1. 安装 DCHP 非常简单,只需运行以下命令即可。
yum -y install dhcp
重要:假设系统连接了多个网络接口,但您希望仅在其中一个接口上启动 DHCP 服务器,请设置 DHCP 服务器仅在该界面上启动,如下所示。
2. 打开文件/etc/sysconfig/dhcpd,将特定接口的名称添加到DHCPDARGS列表中,例如如果接口是eth0
,然后添加:
DHCPDARGS=eth0
保存文件并退出。
步骤2:在CentOS中配置DHCP服务器
3.对于初学者来说,要设置DHCP服务器,第一步是创建dhcpd.conf
配置文件,主要的DHCP配置文件通常是/ etc/dhcp/dhcpd.conf(默认为空),它保存发送给客户端的所有网络信息。
不过,有一个示例配置文件 /usr/share/doc/dhcp*/dhcpd.conf.sample,它是配置 DHCP 服务器的良好起点。
并且,DHCP 配置文件中定义了两种类型的语句,它们是:
- 参数 – 说明如何执行任务、是否执行任务或向 DHCP 客户端发送哪些网络配置选项。
- 声明 – 指定网络拓扑、定义客户端、为客户端提供地址或将一组参数应用于一组声明。
因此,首先将示例配置文件复制为主配置文件,如下所示:
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
4. 现在,打开主配置文件并定义 DHCP 服务器选项:
vi /etc/dhcp/dhcpd.conf
首先在文件顶部设置以下全局参数,这些参数将应用于所有子网(请指定适用于您的方案的值):
option domain-name "tecmint.lan";
option domain-name-servers ns1.tecmint.lan, ns2.tecmint.lan;
default-lease-time 3600;
max-lease-time 7200;
authoritative;
5.现在,定义一个子网;在此示例中,我们将为 192.168.56.0/24 LAN 网络配置 DHCP(请记住使用适用于您的场景的参数):
subnet 192.168.56.0 netmask 255.255.255.0 {
option routers 192.168.56.1;
option subnet-mask 255.255.255.0;
option domain-search "tecmint.lan";
option domain-name-servers 192.168.56.1;
range 192.168.56.10 192.168.56.100;
range 192.168.56.120 192.168.56.200;
}
步骤 3:为 DHCP 客户端分配静态 IP
您可以为网络上的特定客户端计算机分配静态 IP 地址,只需在 /etc/dhcp/dhcpd.conf 文件中定义以下部分,您必须在其中明确指定其 MAC 地址和固定 IP 地址。待分配IP:
host ubuntu-node {
hardware ethernet 00:f0:m4:6y:89:0g;
fixed-address 192.168.56.105;
}
host fedora-node {
hardware ethernet 00:4g:8h:13:8h:3a;
fixed-address 192.168.56.110;
}
保存文件并关闭它。
注意:您可以使用以下命令查找或显示 Linux MAC 地址。
ifconfig -a eth0 | grep HWaddr
6. 现在同时启动 DHCP 服务,并使其在下次系统启动时自动启动,使用以下命令:
---------- On CentOS/RHEL 7 ----------
systemctl start dhcpd
systemctl enable dhcpd
---------- On CentOS/RHEL 6 ----------
service dhcpd start
chkconfig dhcpd on
7. 接下来,不要忘记允许 DHCP 服务(DHCPD 守护程序侦听端口 67/UDP),如下所示:
---------- On CentOS/RHEL 7 ----------
firewall-cmd --add-service=dhcp --permanent
firewall-cmd --reload
---------- On CentOS/RHEL 6 ----------
iptables -A INPUT -p tcp -m state --state NEW --dport 67 -j ACCEPT
service iptables save
步骤 4:配置 DHCP 客户端
8. 现在,您可以将网络上的客户端配置为自动从 DHCP 服务器接收 IP 地址。登录到客户端机器并按如下方式修改以太网接口配置文件(不包括接口名称/编号):
vi /etc/sysconfig/network-scripts/ifcfg-eth0
添加以下选项:
DEVICE=eth0
BOOTPROTO=dhcp
TYPE=Ethernet
ONBOOT=yes
保存文件并退出。
9. 您还可以在桌面计算机上使用 GUI 执行设置,将方法设置为自动 (DHCP),如下图所示(Ubuntu 16.04 桌面版)。
10.然后按如下方式重新启动网络服务(您可以重新启动系统):
---------- On CentOS/RHEL 7 ----------
systemctl restart network
---------- On CentOS/RHEL 6 ----------
service network restart
此时,如果所有设置都正确,您的客户端应该会自动从 DHCP 服务器接收 IP 地址。
您还可以阅读:
- 如何在 Debian Linux 上安装和配置多宿主 ISC DHCP 服务器
- 10 个有用的“IP”命令来配置网络接口
在本教程中,我们向您展示了如何在 RHEL/CentOS 中设置 DHCP 服务器。使用下面的评论表给我们回信。在即将发布的文章中,我们将向您展示如何在 Debian/Ubuntu 中设置 DHCP 服务器。在那之前,请始终与 TecMint 保持联系。