动态主机配置协议 ( 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 "youcl.lan"; option domain-name-servers ns1.youcl.lan, ns2.youcl.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 "youcl.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网络
此时,如果所有设置正确配置,您的客户机应该从DHCP服务器自动接收IP地址。
而已! 在本教程中,我们向您展示了如何在Ubuntu / Debian中设置DHCP服务器。 通过下面的反馈部分与我们分享您的想法。 如果您使用基于Fedora的发行版,请查看如何在CentOS / RHEL中设置DHCP服务器。