如何在Ubuntu和Debian中安装DHCP服务器

在本文中,我们将向您解释如何在Ubuntu和Debian发行版中设置DHCP服务器,以及如何配置客户机以使用dhcp。

动态主机配置协议DHCP )是一种网络协议,用于使主机能够从服务器自动分配IP地址和相关的网络配置。

DHCP服务器分配给DHCP客户端的IP地址处于“租赁”状态,租用时间通常取决于客户端计算机可能需要连接或DHCP配置的时间。

DHCP如何工作?

以下是DHCP实际工作原理的简要说明:

  • 一旦客户端(配置为使用DHCP)并连接到网络启动,它会向DHCP服务器发送DHCPDISCOVER数据包。
  • 当DHCP服务器收到DHCPDISCOVER请求数据包时,会使用DHCPOFFER数据包进行回复。
  • 然后客户端获取DHCPOFFER数据包,并向服务器发送一个DHCPREQUEST数据包,显示它已准备好接收DHCPOFFER数据包中提供的网络配置信息。
  • 最后,DHCP服务器从客户端收到DHCPREQUEST报文后,会发送DHCPACK报文,显示客户端现在允许使用分配给它的IP地址。

在本文中,我们将向您展示如何在Ubuntu / Debian Linux中设置DHCP服务器,我们将使用sudo命令运行所有命令以获得root用户权限。

测试环境设置

我们将为此设置使用以下测试环境。

DHCP Server - Ubuntu 16.04 
DHCP Clients - CentOS 7 and Fedora 25

第1步:在Ubuntu中安装DHCP服务器

1.运行以下命令安装DCHP服务器软件包,以前称为dhcp3-server

$ sudo apt install isc-dhcp-server

2.安装完成后,使用INTERFACES选项编辑/ etc / default / isc-dhcp-server文件来定义DHCPD应用来提供DHCP请求的接口。

例如,如果您希望DHCPD守护程序在eth0上监听,请像这样设置:

INTERFACES="eth0"

并且还要记住为上述接口配置静态IP地址

第2步:在Ubuntu中配置DHCP服务器

3.主要的DHCP配置文件是/etc/dhcp/dhcpd.conf ,您必须添加所有要发送到客户端的网络信息。

并且,在DHCP配置文件中定义了两种类型的语句,它们是:

  • 参数 - 指定如何执行任务,是否执行任务,或指定发送到DHCP客户端的网络配置选项。
  • 声明 - 定义网络拓扑,指定客户端,为客户端提供地址,或将一组参数应用于一组声明。

4.现在,打开并修改主配置文件,定义DHCP服务器选项:

$ sudo 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.10.0/24 LAN网络设置DHCP(使用适用于您的方案的参数)。

subnet 192.168.10.0 netmask 255.255.255.0 {
option routers                  192.168.10.1;
option subnet-mask              255.255.255.0;
option domain-search            "howtoing.lan";
option domain-name-servers      192.168.10.1;
range   192.168.10.10   192.168.10.100;
range   192.168.10.110   192.168.10.200;
}

第3步:在DHCP客户端机器上配置静态IP

6.要为特定客户端计算机分配一个固定(静态)IP地址,请添加以下部分,明确指定其MAC地址和要静态分配的IP:

host centos-node {
hardware ethernet 00:f0:m4:6y:89:0g;
fixed-address 192.168.10.105;
}
host fedora-node {
hardware ethernet 00:4g:8h:13:8h:3a;
fixed-address 192.168.10.106;
}

保存文件并将其关闭。

7.接下来,暂时启动DHCP服务,并使其从下次系统启动时自动启动,如下所示:

------------ SystemD ------------ 
$ sudo systemctl start isc-dhcp-server.service
$ sudo systemctl enable isc-dhcp-server.service
------------ SysVinit ------------ 
$ sudo service isc-dhcp-server.service start
$ sudo service isc-dhcp-server.service enable

8.接下来,不要忘了在防火墙上允许DHCP服务(DHCPD守护进程监听端口67 / UDP),如下所示:

$ sudo ufw allow  67/udp
$ sudo ufw reload
$ sudo ufw show

第4步:配置DHCP客户端机器

此时,您可以将客户端计算机配置为自动从DHCP服务器接收IP地址。

登录到客户端计算机并编辑以太网接口配置文件如下(注意接口名称/号码):

$ sudo vi /etc/network/interfaces

并定义以下选项:

auto  eth0
iface eth0 inet dhcp

保存文件并退出。 并重新启动网络服务(或重新启动系统):

------------ SystemD ------------ 
$ sudo systemctl restart networking
------------ SysVinit ------------ 
$ sudo service networking restart

或者,使用桌面计算机上的GUI执行设置,将方法设置为自动(DHCP),如下面的屏幕快照(Fedora 25桌面)所示。

在Fedora中设置DHCP网络

在Fedora中设置DHCP网络

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

而已! 在本教程中,我们向您展示了如何在Ubuntu / Debian中设置DHCP服务器。 通过下面的反馈部分与我们分享您的想法。 如果您使用基于Fedora的发行版,请查看如何在CentOS / RHEL中设置DHCP服务器。