在 Ubuntu 上设置 DHCP 服务器的分步指南

在本教程中,我们在 Ubuntu 上设置了我们自己的 DHCP 服务器。 动态主机配置协议 (DHCP) 是一种网络服务,用于自动为网络上的客户端分配 IP 地址。 它遵循服务器-客户端架构,其中客户端请求 DHCP 服务器以获取 IP 地址。 大多数路由器都有内置的 DHCP 服务器,但我们也可以使用我们自己的 DHCP 服务器。

DHCP 是如何工作的?

当计算机启动时,它没有 IP 地址(假设它没有配置静态 IP 地址,大多数机器没有)。 它发送一个广播(在所有 F 的 MAC 地址上)称为 DHCP 发现. DHCP 服务器旨在响应此类广播。

然后他们发送单播流量,称为 DHCP 提供 返回到请求客户端。 此 DHCP Offer 通常包含分配的 IP 地址、默认网关的 IP 地址和 DNS 服务器的 IP 地址。

收到要约的客户发送一个 DHCP 请求 到 DHCP 服务器,确认它已接受服务器提供给它的信息。

DHCP 服务器会记录分配的 IP 地址,以防止重复分配或 IP 地址冲突。

由于 DHCP 服务器响应广播,它们 必须是 出现在本地网络和那里 不应该 在本地网络上有 1 个以上的 DHCP 服务器。

DHCP 的分配方法

以下是 DHCP Server 的两种分配方式:

  • 手动的: 在这种方法中,IP 地址是根据 MA​​C 地址给出的。 这可确保特定机器获得固定 IP 地址,因为其 IP 地址随后与其 MAC 地址相关联。 DHCP 服务器根据其在这种分配类型中的 MAC 地址向客户端发送恒定配置。
  • 自动的: 在这种方法中,IP 地址由 DHCP 服务器以先到先得的方式从地址池中自动分配。 它可以根据租用时间进一步分为两类 – IP 地址分配给客户端的时间。
    • 固定租期: 当 DHCP 客户端在指定时间段内不再位于网络上时,配置将过期并释放回地址池以供其他 DHCP 客户端使用。 客户端必须重新协商以保留以前的 IP 地址。
    • 无限租期: 这具有将 IP 地址永久分配给客户端的效果。

在 Ubuntu 上设置 DHCP 服务器的步骤

现在我们将看看如何在 Ubuntu 上设置 DHCP 服务器。

1.安装DHCP服务器

您可以使用 apt 命令安装 DHCP 服务器,如下所示:

sudo apt install isc-dhcp-server 
使用apt安装DHCP服务器

笔记: 您甚至可以在桌面版而不是 Ubuntu 的服务器版上安装 DHCP 服务器。 有关桌面版和服务器版的不同/相似之处,请参阅此 StackOverflow 答案。

2.配置DHPC服务器

ISC DHCP 服务器的主要配置文件是 /etc/dhcp/dhcpd.conf.

备份原始配置文件

备份原始配置文件总是一个好主意。 如果出现问题,可以轻松恢复原始配置。 您可以使用 cp 命令或 mv 命令来创建备份。

sudo mv /etc/dhcp/dhcpd.conf{,.backup} #Expands to sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup 

上面的命令创建了一个 dhcpd.conf.backup 文件使用 {} 的扩展特性 bash.

创建和编辑新的配置文件

您可以使用您选择的编辑器。 我将使用 nano 编辑器:

sudo nano /etc/dhcp/dhcpd.conf 

配置文件中的选项取决于网络的复杂性。

从池中分配随机 IP 地址

DHCP 服务器最常做的事情是随机分配地址。 相同的设置如下:

# a simple /etc/dhcp/dhcpd.conf default-lease-time 600; max-lease-time 7200; authoritative;  subnet 192.168.1.0 netmask 255.255.255.0 {  range 192.168.1.100 192.168.1.200;  option routers 192.168.1.254;  option domain-name-servers 192.168.1.1, 192.168.1.2; #option domain-name "mydomain.example"; } 

根据这个配置:

  • 客户端的默认租用时间为 10 分钟(600 秒) 并且最长租用时间为 2 小时(7200 秒)。
  • 此 DHCP 服务器是本地网络的官方服务器。 (表示为 authoritative)。
  • 服务器将从范围内移交 IP 地址 192.168.1.100192.168.1.200.
  • 服务器也会“建议”客户端使用 192.168.1.254 作为默认网关和 192.168.1.1192.168.1.2 作为其 DNS 服务器。

您还可以包含一个域名。

为客户端分配静态 IP 地址

为保证特定客户端将始终获得相同的 IP 地址,DHCP 服务器将需要该客户端的 MAC 地址。 这将是本文前面讨论的手动分配模式。

要获取客户端的 MAC 地址,我们可以在客户端上使用 ip 命令 客户端机器

ip a 
查看 MAC 地址

(您需要选择您计划连接到网络的接口的 MAC 地址。我选择了无线接口。)

现在我们有了 MAC 地址,我们可以把它放在配置文件中:

host archmachine { hardware ethernet e0:91:53:31:af:ab; fixed-address 192.168.1.20; } 

这将保留 IP 地址 192.168.1.20 对于具有 MAC 地址的客户端 e0:91:53:31:af:ab.

最后,配置文件如下所示:

DHCP 会议 1DHCP 配置

如果您想自动分配地址,您可以省略静态 IP 配置部分。

3. 将 DHCP Server 绑定到一个接口

DHCP 服务器可以有许多接口。 您需要定义它应该侦听的接口。 您可以查看接口 在服务器上 使用 ip a 就像客户一样。

要绑定的接口定义在 /etc/default/isc-dhcp-server 文件。 使用您选择的编辑器打开它。 我的服务器的界面是 eth0. 您的服务器可能会有所不同。 将文件编辑为:

INTERFACESv4="eth0" 
设置接口收听设置接口收听

4.重启DHCP服务器

现在对配置进行了更改,我们需要重新启动服务以启用这些更改。 为此,我们将使用 systemctl 命令:

sudo systemctl restart isc-dhcp-server.service 

5.检查DHCP服务器的状态

这可以再次使用 systemctl 命令 :

sudo systemctl status isc-dhcp-server.service 
DHCP 服务器状态DHCP 服务器状态

活动状态表示 DHCP 服务器已成功获取配置并准备分发 IP 地址。

故障排除

DHCP 服务器将其日志写入 Syslog。 如果您发现该服务的状态为非活动状态,则应查看 /var/log/syslog 文件。 从那里您可以在互联网上搜索系统日志中提到的特定问题。

结论

在本文中,我们了解了 DHCP 以及如何在 Ubuntu 机器上安装 DHCP 服务器。 拥有 DHCP 服务器可以自动分配 IP 地址,这比手动配置每个客户端要好得多。