天天看点

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

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

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

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

  一旦客户端(配置为使用 dhcp 的机器)连接到网络后,它会向 dhcp 服务器发送dhcpdiscover 数据包。

当 dhcp 服务器收到 dhcpdiscover 请求报文后会使用 dhcpoffer 包进行回复。

然后客户端获取到 dhcpoffer 数据包,并向服务器发送一个 dhcprequest 包,表示它已准备好接收 dhcpoffer 包中提供的网络配置信息。

最后,dhcp 服务器从客户端收到 dhcprequest 报文后,发送 dhcpack 报文,表示现在允许客户端使用分配给它的 ip 地址。

<a target="_blank"></a>

在这步中我们会使用如下的测试环境。

dhcp server - ubuntu 16.04

dhcp clients - centos 7 and fedora 25

1、 运行下面的命令来安装 dhcp 服务器包,也就是 dhcp3-server。

<code>$ sudo apt install isc-dhcp-server</code>

2、 安装完成后,编辑 <code>/etc/default/isc-dhcp-server</code> 使用 <code>interfaces</code> 选项定义 dhcpd 响应 dhcp 请求所使用的接口。

比如,如果你想让 dhcpd 守护进程监听 <code>eth0</code>,按如下设置:

<code>interfaces="eth0"</code>

3、 dhcp 配置的主文件是 <code>/etc/dhcp/dhcpd.conf</code>, 你必须填写会发送到客户端的所有网络信息。

并且 dhcp 配置中定义了两种不同的声明,它们是:

<code>parameters</code> - 指定如何执行任务、是否执行任务,还有指定要发送给 dhcp 客户端的网络配置选项。

<code>declarations</code> - 定义网络拓扑、指定客户端、为客户端提供地址,或将一组参数应用于一组声明。

4、 现在打开并修改主文件,定义 dhcp 服务器选项:

<code>$ sudo vi /etc/dhcp/dhcpd.conf</code>

在文件顶部设置以下全局参数,它们将应用于下面的所有声明(请指定适用于你情况的值):

<code>option domain-name "tecmint.lan";</code>

<code>option domain-name-servers ns1.tecmint.lan, ns2.tecmint.lan;</code>

<code>default-lease-time 3600;</code>

<code>max-lease-time 7200;</code>

<code>authoritative;</code>

5、 现在定义一个子网,这里我们为 <code>192.168.10.0/24</code> 局域网设置 dhcp (请使用适用你情况的参数):

<code>subnet 192.168.10.0 netmask 255.255.255.0 {</code>

<code>option routers 192.168.10.1;</code>

<code>option subnet-mask 255.255.255.0;</code>

<code>option domain-search "tecmint.lan";</code>

<code>option domain-name-servers 192.168.10.1;</code>

<code>range 192.168.10.10 192.168.10.100;</code>

<code>range 192.168.10.110 192.168.10.200;</code>

<code>}</code>

6、 要给特定的客户机分配一个固定的(静态)的 ip,你需要显式将这台机器的 mac 地址以及静态分配的地址添加到下面这部分。

<code>host centos-node {</code>

<code>hardware ethernet 00:f0:m4:6y:89:0g;</code>

<code>fixed-address 192.168.10.105;</code>

<code>host fedora-node {</code>

<code>hardware ethernet 00:4g:8h:13:8h:3a;</code>

<code>fixed-address 192.168.10.106;</code>

保存并关闭文件。

7、 接下来,启动 dhcp 服务,并让它下次开机自启动,如下所示:

<code>------------ systemd ------------</code>

<code>$ sudo systemctl start isc-dhcp-server.service</code>

<code>$ sudo systemctl enable isc-dhcp-server.service</code>

<code>------------ sysvinit ------------</code>

<code>$ sudo service isc-dhcp-server.service start</code>

<code>$ sudo service isc-dhcp-server.service enable</code>

8、 接下来不要忘记允许 dhcp 服务(dhcp 守护进程监听 67 udp 端口)的防火墙权限:

<code>$ sudo ufw allow 67/udp</code>

<code>$ sudo ufw reload</code>

<code>$ sudo ufw show</code>

9、 此时,你可以将客户端计算机配置为自动从 dhcp 服务器接收 ip 地址。

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

<code>$ sudo vi /etc/network/interfaces</code>

定义如下选项:

<code>auto eth0</code>

<code>iface eth0 inet dhcp</code>

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

<code>$ sudo systemctl restart networking</code>

<code>$ sudo service networking restart</code>

另外你也可以使用 gui 来在进行设置,如截图所示(在 fedora 25 桌面中)设置将方式设为自动(dhcp)。

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

在 fedora 中设置 dhcp 网络

此时,如果所有设置完成了,你的客户端应该可以自动从 dhcp 服务器接收 ip 地址了。

就是这样了!在本篇教程中,我们向你展示了如何在 ubuntu/debian 设置 dhcp 服务器。在反馈栏中分享你的想法。如果你正在使用基于 fedora 的发行版,请阅读如何在 centos/rhel 中设置 dhcp 服务器。

原文发布时间为:2017-03-29

本文来自云栖社区合作伙伴“linux中国”

继续阅读