ISC的DHCP服务器
为了配置DHCP服务器dhcpd,需要编辑来自server目录的dhcpd.conf样本文件,并把它安装为/etc/dhcpd.conf20。同时您还必须创建一个叫做/var/db/dhcp.leases的空的租用数据库文件,用touch命令就行。确保dhcpd可以写这个文件。为了设置dhcpd.conf文件,需要下面的信息:
由dhcpd管理IP地址的子网,以及可以发放的地址范围;
按秒计算的初始和最大的租期;
BOOTP客户机的配置,如果有的话(它们具有静态IP地址,同时必须列出它们的MAC级硬件地址);
服务器应该传送给DHCP客户机的其他任何选项:网络掩码、默认路由、DNS域、名字服务器等。
dhcpd手册页对配置过程进了概述。配置文件的确切语未能在dhcpd.conf手册页中予以介绍。两者都位于软件的server子目录中。有些Linux发行版本的/etc目录下包含了一个dhcpd.conf文件的样板;您可以修改它,使之符合您本地站点的配置。
dhcpd 应该在系统引导时刻自动启动。您会发现,根据/etc/dhcpd.conf 文件的存在与否而有条件地启动守护进程的做法很有帮助。
下面是从一个有两个接口的Linux主机得到的dhcpd.conf文件样本:其中一个接口是内部接口,另一个接口与 Internet连接。这台计算机为内部网络执行 NAT 转换,同时也在这个网络上出租10 个IP地址。dhcpd.conf文件包括用于外部接口的一个哑项(必需的)和为每台需要一个固定地址的特定计算机提供的一个host项。
DHCP 分配的地址可能与 DNS 数据库的内容冲突。网点经常给每个动态租用地址分配一个通用名(如dhcpl.synack.net),并且允许各个机器名在它们的IP地址之间“浮动”。如果您运行的是最近发行的支持动态更新的BIND版本,那么也可以配置dhcpd,在它分配地址的时候更新DNS数据库。动态更新解决方案更为复杂,但它有一个优点,可以保存每台计算机的主机名。参考第 15 章了解有关DNS的更多信息。
dhcpd在dhcp.leases文件里记录各项出租事务。它也会通过将这个文件重命名为dhcpd.leases~,再从它在内存中的数据库重新创建dhcp.leases文件这样的方法定期备份这个文件。如果dhcpd在这个操作过程中崩溃了,那么可能最后只留下一个dhcp.leases~文件。在这种情况下,dhcpd 将拒绝启动,您必须在重新启动之前对这个文件重新命名。不要只建立一个空的 dhcp.leases 文件,否则当客户机有两个地址的时候就会产生混乱。
DHCP客户机实际上不需要配置。它把每个连接的状态文件保存在目录/var/lib/dhcp或者/var/lib/dhclient下。这些文件的名字是用它们所描述的接口来命名的。例如,dhclient-eth0.leases文件里包含dhclient已经给接口eth0设置的所有连网参数。