动态主机配置协议 (DHCP)

动态主机配置协议 (DHCP) 是一种网络服务,相对于手工为每台网络主机配置,它使网络主机可能自动被服务器指定设置。被配置成 DHCP 客户端的计算机并不能控制其从 DHCP 服务器得到的设置,且该配置对于计算机用户来说是透明的。

由 DHCP 服务器提供给 DHCP 客户端最常用的设置包括:

然而,一个 DHCP 服务器也支持配置如下属性,如:

使用 DHCP 的好处在于当网络发生改变如 DNS 服务器地址改变时,只需要在 DHCP 服务器中改变即可,所有网络主机将在其 DHCP 客户端下一次轮询 DHCP 服务器时被重新配置。另一个好处就是,它在将新计算机整合到网络时也更容易,因为不需要再检查 IP 地址的有效性。同时也减少 IP 地址的冲突。

一个 DHCP 服务器可以用两个模式来提供配置设置

MAC 地址

该模式需要用 DHCP 去标明连接到网上的每块网卡唯一的硬件地址,然后在 DHCP 客户端每次使用该网络设备发送给 DHCP 服务器请求时提供给它一个固定的配置。

地址池

该模式需要定义一个 IP 地址池 (有时也叫范围或作用域) ,以便 DHCP 客户端可以以先到先服务的方式动态获取它们的配置。当一个 DHCP 客户端不在网络上超过一定的时间后,该配置将过期并被释放回地址池以便为其他 DHCP 客户端所使用。

Ubuntu 提供 DHCP 服务器及其客户端。服务器叫 dhcpd (动态主机配置协议守护程序)。Ubuntu 提供的客户端叫 dhclient,应该安装在所有自动配置的计算机上。这两个程序很容易安装和配置,并可在系统引导时自动启用。

安装

要安装 dhcpd,可以在终端提示符后输入以下命令:

sudo apt-get install dhcp3-server

您可能需要通过编辑 /etc/dhcp3/dhcpd.conf 来改变其默认配置,以使其满足您的需要和特定配置。

您还需要编辑 /etc/default/dhcp3-server 来指定 dhcpd 要监听的网络接口。其默认会监听 eth0。

注意:dhcpd 的消息会被发往 syslog。可以在那里寻找诊断信息。

配置

安装结束后的错误消息可能会带来小小的困惑,不过下面几步将帮助您配置服务:

通常,您想做的是随机指定一个 IP 地址。这可以通过以下设置来实现:

# Sample /etc/dhcpd.conf
# (add your comments here) 
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.example";

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
} 

这将导致 DHCP 服务器从 192.168.1.10-192.168.1.100 或 192.168.1.150-192.168.1.200 范围中分配客户端一个 IP 地址。如果客户端没有要求一个特定的时间帧的话它将租用 600秒的 IP 地址。否则最大 (允许) 租用时间为 7200 秒。服务器也 "建议" 客户端使用 255.255.255.0 做为它的子网掩码,192.168.1.255 作为它的广播地址,192.168.1.254 作为路由器/网关,同时将 192.168.1.1 和 192.168.1.2 作为它的 DNS 服务器。

如果您需要为您的 Windows 客户机指定一个 WINS 服务器,您需要包含 netbios-name-servers 选项,如:

option netbios-name-servers 192.168.1.1; 

Dhcpd 配置设置可以从 DHCP 快速指南中得到,该指南可以在 这里 找到。

参考资料

DHCP 常见问答