DHCP或动态主机配置协议是一种在网络中使用的协议,通过该协议,系统可以在启动时自动获取与其他网络设备通信所需的网络设置。 在您的场所使用DHCP服务器大大简化了所有网络主机的网络设置管理,并且还允许计算机网络配置的集中管理点。 通过使用DHCP,您还可以确保所有台式机,移动电话或其他要求在启动时配置IP设置的网络设备将根据您的网络设置接收相同的一组配置。
DHCP服务器可以提供与配置交互式加入网络所需的网络设置相关的大量参数和选项。 DHCP服务器可以提供的一些普通设置是与您的网络相关的IP地址,以及其他信息,如您所属网络的广播地址,网络的网络掩码,DNSNameservers,网络退出的IP地址点,通常是网关路由器,来自您网络的NTP服务器的地址,设备准确同步时间所需,以及其他更异国情调的设置。
如果您只需要几台电脑进行管理,通常是台式机或笔记本电脑,手动寻址便受到青睐。 但是目前,随着小型网络设备和移动设备的爆炸性增长,对于这些设备,每个设备的静态/手动配置可能会被证明是非常困难的,如果不是有可能,在嵌入式设备的情况下也是如此。 这应该是您在建筑物中安装和配置DHCP服务器时应考虑的主要因素。 DHCP服务器可以限制您投入手动配置每个网络相关设备的时间和精力,并维护已为什么设备设置了IP的表格。
但是,如果在您的处所部署服务器,则始终必须使用静态/手动IP地址分配。 服务器应始终配置静态IP地址。 但是,通过根据连接的接口MAC地址释放相同的设备IP地址,可以配置DHCP来简化服务器的静态IP寻址。
现在,我们来看看DHCP服务器在网络中的运行情况。 DHCP协商如以下步骤所述展开:
- 网络设备或需要分配静态地址的客户端在具有消息“DHCP Discover”的网络中发送广播。 在发送的消息中,客户端设备还包括其MAC地址。 客户端发送此消息以确定DHCP服务器是否位于网络中的某个地方,监听这些类型的传入消息。
- 收听的DHCP服务器收到广播帧并使用“DHCP Offer”消息回复给客户端:该报价包含客户端在网络中注册所需的网络设置及其自己的IP地址,以便客户端正确确定报价的来源。 通常,优惠包含网络的IP地址,子网掩码,默认网关和其他参数。 如果在您的处所配置了多个DHCP服务器,则会发送广播消息,以便客户端可以接收报价。
- 收到报价后,客户端如果满足接收到的设置,则向DHCP服务器发送“DHCP请求”消息,并通知其与提供的正式网络设置一致。 包括报价的记录,只有发送报价的服务器才会将所请求的IP地址放在一边。 再次,该请求作为广播发送到所有可能响应的其他DHCP服务器,因为客户端尚未正式启动分配所提供的IP地址。
- 最后,DHCP服务器回复“DHCP ACK”单播消息。 在这个阶段,IP地址和所有其他网络参数被发送到客户端设备,因为它们现在被客户端批准使用。 ACK消息作为单播发送,但可以被广播。
互联网软件联盟是Linux中最常用的DHCP服务器的主要作者和开发者,通常称为ISC DHCP服务器。 在Debian 9中,匹配的二进制包称为isc-dhcp-server 。 此外,在本教程中,我们将学习如何在Debian 9中安装和配置DHCP服务器。
要求
- Debian 9的新安装。
- 为DHCP服务器收听的网络接口配置的静态IP地址。
- 具有root权限或直接访问root帐户的帐户。
为了在Debian 9中安装ISC DHCP服务器。首先,通过发出以下命令,我们需要确保软件包树是最新版本的最新版本。
sudo apt-get update
然后,在本地包树与远程源同步之后,请执行以下命令,以搜索ISC DHCP软件中可用的所有预编译包,如以下屏幕截图所示。
sudo apt search isc-dhcp
现在,我们列出了所有可用的ISC DHCP服务器软件包,请执行以下命令来安装ISC DHCP服务器。
sudo apt install isc-dhcp-server
DHCP服务器主配置文件是dhcpd.conf ,它位于/ etc / dhcp /目录中。 配置文件将包含大量注释,由一个前导散列标记(#)表示。 所有其他未注释的行都是dhcp服务器的参数 (用于dhcpd守护程序的常规配置功能)或声明 ,它们描述了服务器可以发送到客户端设备的网络IP范围和IP地址或其他网络值。
在实际开始编辑新的空白配置文件之前,首先通过发出以下命令备份原始文件。
cp /etc/dhcp/dhcpd.conf{,.backup}
cat /dev/null > /etc/dhcp/dhcpd.conf
接下来,开始编辑dhcp配置文件,如下面的摘录所示。
nano /etc/dhcp/dhcpd.conf
dhcpd.conf文件摘录:
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
#ping true;
option domain-name-servers 172.27.15.2, 10.72.81.2;
option domain-name "example.com";
authorative;
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.115;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.254, 10.128.254.254;
option domain-name “example.com”;
option routers 192.168.1.1;
option netbios-name-servers 192.168.1.3;
option netbios-node-type 8;
get-lease-hostnames true;
use-host-decl-names true;
default-lease-time 600;
max-lease-time 7200;
}
解释DHCP配置参数:
所有参数行以dhcp配置文件中的分号(;)结尾。 一些参数可能不只有一个值,例如域名服务器 ,其中两个IP地址用逗号分隔。 以标签#开头的行是注释,不会被dhcp服务器解析。
一些常见的DHCP服务器参数:
default-lease-time =设置默认租用时间(以秒为单位)的整数。
max-lease-time =设置最大租用时间的整数,以秒为单位
ping = check boolean如果为true,则在将该地址的租约分配给客户端之前,服务器将ping一个地址。
option domain-name-servers =客户端可能使用的DNS服务器的IP地址或地址。
option domain-name =将授予客户端使用的域的名称。
authorative =服务器是权威的,这个DHCP服务器应该向错误配置的客户端发送DHCPNAK消息
log-facility local7 =将日志发送到syslog facility local7
子网192.168.1.0网络掩码255.255.255.0 {这里附带的任何东西} 192.168.1.10网络的子网声明
范围192.168.1.50 192.168.1.115 =定义服务器将租用IP的IP地址范围。
选项路由器 =定义您的网关或网络出口点的IP地址。
选项netbios-name-servers = SMB / CIFS协议用于在Windows上共享文件的NetBIOS名称服务(NBNS)服务器或Windows Internet名称服务(WINS)服务器的IP地址。
选项netbios-node-type = NetBIOS客户端应如何尝试名称解析的代码。 值为1,使用广播,2使用WINS服务器,4尝试广播首先跟随WINS服务器,8尝试WINS服务器,然后播放。
您应该将显示的值替换为您自己的网络特有的参数。
编辑主配置文件并声明自己的IP范围后,打开/ etc / default / isc-dhcp-server文件,并将INTERFACESv4参数替换为将为您的网络配置的网络接口的名称,如图所示在下图中。 使用ip或ifconfig命令列出所有网络接口。
INTERFACESv4="ens33"
最后,完成所有更改后,重新启动dhcp服务器以应用新配置并通过发出以下命令检查服务状态。
systemctl restart isc-dhcp-server
systemctl status isc-dhcp-server
客户端现在应该从您的dhcp服务器开始接收IP租约。 要将授权的地址实时列出给您的客户端,您应该通过发出tail命令检查日志文件的内容,如下所示。
tail -f /var/log/syslog
配置DHCP服务器提供保留的IP地址
我命令配置您的DHCP服务器为网络上的特殊网络设备(如服务器)分配一个固定的IP地址,使用要授予固定IP地址的主机名称和媒体访问控制(MAC)网络接口插件的地址到您的网络。 保留的IP地址将在每次启动时分配给客户端。 您应该从DHCP服务器中为您的网络声明的任何IP范围外部预留一个固定的IP地址。 固定IP地址的声明应包含在您为网络范围声明的行中,并应具有以下内容,如下所示。 但是,保留的IP地址表项也可以在子网声明之后添加。
nano /etc/dhcp/dhcpd.conf
固定IP声明样本:
subnet 192.168.1.0 netmask 255.255.255.0 {
range declarations….
host WIN-SERVER {
hardware ethernet 00:0c:19:bc:2e:e1;
fixed-address 192.168.1.7;}
}
为固定IP地址添加行后,请重新启动DHCP服务器,以便通过发出以下命令来应用更改。
systemctl restart isc-dhcp-server
就这样! 您已在Debian 9中成功安装并配置了DHCP服务器。