在各种 UNIX 相容的作业系统上,有许多商业或免费的 DHCP 伺服器程式可用。其中,较著 名的免费伺服器程式是 Paul Vixie/ISC 版的 DHCPd。目前,最新的版本是 1.0(建议大家 使用),而 2.0 版是在 beta 测试的阶段。你可以到下面的网址取得
在你下载之後,你必须将它解开。然後进入解开的目录,输入:
./configure
要做好安装前设定,可能要会花点时间。後随输入:
make
以及
make install
当完成安装之後,请输入 ifconfig -a,你将看到如下的讯息:
eth0 Link encap:10Mbps Ethernet HWaddr 00:C0:4F:D3:C4:62 inet addr:183.217.19.43 Bcast:183.217.19.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2875542 errors:0 dropped:0 overruns:0 TX packets:218647 errors:0 dropped:0 overruns:0 Interrupt:11 Base address:0x210
如果未显示 MULTICAST 的讯息,你应该重新设定你的核心,加入对“多址传播(multicast)” 的支援。对於大多数的系统而言,你几乎都不必如此做。
下个步骤是,加入 255.255.255.255 的路由。以下的说明引述自 DHCPd 程式的“读我档案 (README)”:
“为了让 dhcpd 能够正确地服务过分挑剔的 DHCP 用户端(例如,Windows 95),dhcpd 必须能够送封包到 255.255.255.255 的 IP 位址上。不幸的是,Linux 会将 255.255.255.255 做为本地子网路的广播位址(此处为 192.5.5.223)。这将违反 DHCP 通讯协定,然而许多 DHCP 用户端并不受影响,有些(例如,所有Microsoft DHCP 用户端)却会。有此类问题的 用户端,将会看不到来自伺服器的 DHCPOFFER 讯息。”
输入:
route add -host 255.255.255.255 dev eth0
如果你看到如下的讯息
"255.255.255.255: Unknown host"
你应该将下面的资讯加入到 /etc/hosts 档案中:
255.255.255.255 all-ones
然後,输入:
route add -host all-ones dev eth0
或
route add -net 255.255.255.0 dev eth0
eth0 应该是你目前使用网路卡的装置名称。如果不是,你得配合实际情况做正确的修改。
现在,你必须设定 DHCPd。为此,您必须产生或编辑 /etc/dhcpd.conf。
通常你所要做的是,任意地指派 IP 位址。为此,你必须按照下面的方式来设定
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.org"; 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 位址。如果,用户端没有特别约定 IP 位址的租用 时间,则释出时间预定为 600 秒,要不然,最大(允许)的释出时间为 7200 秒。同时 伺服器也会“通知”用户端,要求它使用 255.255.255.0 做为子网路遮罩,192.168.1.255 做为广播位址,192.168.1.254 做为路由/闸道器,并以 192.168.1.2 做为 DNS 伺服器。
你也可以依据用户端的乙太网路位址,来指派特定的 IP 位址给用户端,例如
host haagen { hardware ethernet 08:00:2b:4c:59:23; fixed-address 192.168.1.222; }
这个设定将会指派 IP 位址 192.168.1.222 给乙太网路位址为 08:00:2b:4c:59:23 的 用户端。
网路上 IP 位址的指定,可以采混合双轨制,譬如,你可以让某些电脑拥有“静态”的 IP 位址(例如,伺服器),而让其它的用户端取得“动态”的IP 位址(例如,使用膝 上型电脑,机动的使用者)。还有其它的选项,譬如,说 wins 伺服器的位址、时间伺服 器等等,如果你需要进一步了解的话,可以请参阅 dhcpd.conf 的说明文件。
现在,你可以启用 DHCP 伺服器了。只要输入(或将下面的叙述加到开机设定档中)
/usr/sbin/dhcpd
如果,你想要确定运作是否一切正常,你应该先开启除错模式,并把伺服器放到“幕前 (foreground)”来执行。为此,你可以输入
/usr/sbin/dhcpd -d -f
然後,开启你任何一个用户端机器,并察看伺服器端“操作控制台(console)的萤幕”,你 将会看到一些除错讯息被显示出来。