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 "youcl.lan"; option domain-name-servers ns1.youcl.lan, ns2.youcl.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 "youcl.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
10.然后重新启动网络服务,如下所示(您可以重新启动系统):
---------- On CentOS/RHEL 7 ---------- # systemctl restart network ---------- On CentOS/RHEL 6 ---------- # service network restart
此时,如果所有设置都正确,您的客户端应自动从DHCP服务器接收IP地址。
您还可以阅读:
在本教程中,我们向您展示了如何在RHEL / CentOS中设置DHCP服务器。 使用下面的评论表回到顶部我们。 在接下来的文章中,我们将向您展示如何在Debian / Ubuntu中设置DHCP服务器。 在此之前,始终保持与youcl的连接。