在Ubuntu 16.04中安装DHCP服务器

时间:2020-03-21 11:45:22  来源:igfitidea点击:

DHCP,动态主机控制协议的缩写是一种网络协议,它将IP地址自动为网络中的客户端系统分配给网络中。
这减少了在具有数百个系统的大型网络中手动分配IP地址的繁琐任务。
我们可以在DHCP服务器中定义IP范围(范围),并在网络上分发它们。
网络中的客户端系统将自动获取IP地址。

在本教程中,我们将看到如何在Ubuntu 16.04 LTS服务器中安装DHCP服务器,并配置DHCP客户端。

在Ubuntu 16.04 LTS服务器中安装DHCP服务器

出于本教程的目的,我将使用以下系统作为DHCP服务器。

我的DHCP服务器:

  • OS - Ubuntu 16.04 LTS 64位
  • IP地址 - 192.168.1.105/24
  • hostname - ubuntuserver.theitroad.lan.

打开终端并运行以下命令以安装DHCP服务器:

sudo apt-get install isc-dhcp-server

已安装DHCP服务器。
现在,让我们更进一步并配置它以满足我们的需求。

配置DHCP服务器

DHCP服务器的默认配置文件是/etc/default/isc-dhcp-server。
我们需要根据我们的要求编辑和修改它。

如果DHCP服务器中有多个网络接口卡,则需要提及DHCP服务器提供DHCP请求的接口。

由于我在我的服务器中只有一个NIC,我将"ENP0S3"分配为侦听界面。
其中ENP0S3 ISNetwork卡的名称。

为此,编辑/etc/default/isc-dhcp-server配置文件:

sudo vi /etc/default/isc-dhcp-server

分配网络接口:

[...]
INTERFACES="enp0s3"

如果我们有多个接口,请用空格提及它们,例如"eth0 eth1"。

保存并关闭文件。

然后,编辑dhcpd.conf文件,

sudo vi /etc/dhcp/dhcpd.conf

如下所示修改它。
用自己的值替换域名。

输入域名和域名服务器:

[...]
# option definitions common to all supported networks...
 option domain-name "theitroad.lan";
 option domain-name-servers ubuntuserver.theitroad.lan;
[...]

要使此服务器作为客户端的官方DHCP,查找和取消注释以下行:

[...]
authoritative;
[...]

向下滚动小位,并定义如下所示的子网,IP范围,域和域名服务器。

[...]
# A slightly different configuration for an internal subnet.
 subnet 192.168.1.0 netmask 255.255.255.0 {
 range 192.168.1.20 192.168.1.30;
 option domain-name-servers ubuntuserver.theitroad.lan;
 option domain-name "theitroad.lan";
 option routers 192.168.1.1;
 option broadcast-address 192.168.1.255;
 default-lease-time 600;
 max-lease-time 7200;
 }
[...]

如上所述,我已在192.168.1.150到192.168.1.200中分配了IP范围。
因此,DHCP客户端将从此范围获取IP地址。
但是,如果我们希望将特定IP(固定IP地址)分配给特定客户端?
这也很容易。
我们可以通过添加具有固定IP地址的客户端的MAC ID,轻松地将特定IP分配给网络的客户端。

例如,让我们说我们希望将IP 192.168.1.160分配给具有MAC ID 00:22:64:4F:E9:3A的客户端。
要查找IP ANN MAC地址,请使用'ifconfig'命令。

ifconfig

分配客户端的固定IP和MAC ID,如下所示。

[...]
host ubuntu-client {
 hardware ethernet 08:00:27:13:14:d5;
 fixed-address 192.168.1.160;
 }
[...]

按照要求修改所有设置后,保存并关闭文件。

现在,重新启动DHCP服务:

sudo systemctl restart isc-dhcp-server

确保我们没有在DHCPD.conf文件中留下任何未使用的条目。
如果有任何未使用或者不必要的行,请注明它们。
否则,DHCP服务将无法启动。

让我们检查我们的DHCP服务是否已启动或者不使用命令:

sudo systemctl status isc-dhcp-server

正如我们在上面的屏幕截图中看到的,DHCP服务器正在运行!

要启动或者停止DHCP服务,请使用以下命令:

sudo systemctl start isc-dhcp-server
sudo systemctl stop isc-dhcp-server

在此阶段,我们将拥有一个工作的DHCP服务器。
服务器端配置部分结束。
让我们继续配置DHCP客户端。

配置DHCP客户端

出于本教程的目的,我将使用Ubuntu 16.04 LTS桌面作为我的DHCP客户端。

我的DHCP客户:

  • OS - Ubuntu 16.04 LTS桌面
  • IP地址 - 启用DHCP

从Unity Dash或者菜单中打开网络连接。

在"网络连接"窗口中,选择以太网卡,然后单击"编辑"。

单击IPv4设置,然后选择"自动(DHCP)"选项。
最后单击"保存"。

现在,重新启动客户端系统,并检查客户端系统的IP地址。

ifconfig

我们将在DHCP服务器中定义的IP范围内看到新的IP地址被分配给客户端系统。

正如我们在上面看到的,我的Ubuntu 16.04 LTS桌面系统,它具有MAC ID 08:00:27:13:14:D5,已分配来自DHCP服务器的固定IP地址(192.168.1.160)。
请记住,我们在DHCP服务器的DHCPD.conf文件中提到了这些值。