如何在CentOS,RHEL和Fedora中安装DHCP服务器

在本文中,我们将解释如何在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)和连接到网络的电源打开时,它将DHCPDISCOVER消息转发到DHCP服务器。
  • 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 "howtoing.lan";
option domain-name-servers ns1.howtoing.lan, ns2.howtoing.lan;
default-lease-time 3600; 
max-lease-time 7200;
authoritative;

现在,定义一个子网; 在本例中,我们将为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            "howtoing.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:

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桌面)。

在客户端网络中设置DHCP

在客户端网络中设置DHCP

10.然后重新启动网络服务,如下所示(您可以重新启动系统):

---------- On CentOS/RHEL 7 ----------
# systemctl restart network
---------- On CentOS/RHEL 6 ----------
# service network restart

此时,如果所有设置都正确,您的客户端应自动从DHCP服务器接收IP地址。

您还可以阅读:

  1. 如何在Debian Linux上安装和配置多宿主ISC DHCP服务器
  2. 10个有用的“IP”命令来配置网络接口

在本教程中,我们向您展示了如何在RHEL / CentOS中设置DHCP服务器。 使用下面的评论表回到顶部我们。 在接下来的文章中,我们将向您展示如何在Debian / Ubuntu中设置DHCP服务器。 在此之前,始终保持与HowToing的连接。