一、安装
# cd /usr/ports/net/isc-dhcp3-server
# make config ; make install clean
# rehash
菜单中的选项保存默认即可。
二、配置
1、将配置文件的样例文件复制为配置文件,并编辑它。
# cd /usr/local/etc
# cp dhcpd.conf.sample dhcpd.conf
# ee dhcpd.conf
2、下滚到 domain-name 选项(大约在7行)。替换 example.org 为你的域名,替换 ns1.example.org 和 ns2.example.org 为你DNS服务器的IP地址。你可以用你自己的DNS服务器IP,也可以用ISP的。
option domain-name "example.com";
option domain-name-servers 192.168.1.11, 61.32.24.84;
3、下滚到大约15行,去掉 authoritative 语句前面的井号(#)。这将让DHCP服务器成为有权威的。
authoritative;
注意:确保在网络中没有其它的DHCP服务器。许多路由器有内嵌的DHCP服务,在测试前禁用它。
4、下滚到 ddns-update-style 选项(大约18行)。更改 ad-hoc 为 none ,这将禁用动态DNS更新。要启用动态DNS更新,更改这个为 interim (你必须有个本地的开启了动态DNS更新功能的BIND DNS服务器)。如果动态更新启用,这行(~18)看起来象这样:
ddns-update-style interim;
5、下滚到第二个子网声明段(~32)。看起来象下面:
subnet 10.254.239.0 netmask 255.255.255.224 {
range 10.254.239.10 10.254.239.20;
option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}
这些行指定了子网的IP地址、网络掩码和路由器。修改它们以适合你的实际网络情况。我们用子网 192.168.1.0 和掩码 255.255.255.0 。设置 DHCP 范围从 192.168.1.12 到 192.168.1.62 。路由器IP是 192.168.1.1 。
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.12 192.168.1.62;
option routers 192.168.1.1;
}
6、默认的,dhcp.conf 文件包含多行象上面例子中的语句。最简洁的是移去子网声明后面的所有语句。
7、第三节和第四节是可选的。如果你用不到这些功能,跳到“测试”章节。
三、分配静态IP
1、通过DHCP分配一个静态(固定)IP给某个主机,需要获取它的MAC地址。MAC地址有多种获取方法。在 FreeBSD 和 Macintosh OS X 系统上,用 ifconfg 命令。在 Windows 系统上用 ipcongfig/all 命令。
2、添加下面的行到 dhcpd.conf 文件末尾。替换 desktop01.example.com 为目标系统主机名。MAC地址和IP地址为你想分配的。
host desktop01.example.com {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address 192.168.1.10;}
注意:如果你有带域查询文件的权威DNS服务器,固定地址也可以是一个完全限定域名(FQDN)。不要分配动态IP范围中的IP给固定IP地址。在上面简单配置中,声明的范围从 192.168.1.12 到 192.168.1.62 ,因此 192.168.1.10 是可接受的,而 192.168.1.13 是不能接受的。
你可以用同样的格式添加多个静态IP 。
四、动态DNS更新
1、复制 rndc.key 文件的内容到 dhcpd.conf 。这将运行DHCP进程加密与DNS服务器更新时的通讯。
# cd /usr/local/etc
# cp dhcpd.conf dhcpd.conf.old
# cat /var/named/etc/namedb/rndc.key >> dhcpd.conf
2、添加两个域声明到 dhcpd.conf 文件底部。
# ee /usr/local/etc/dhcpd.conf
添加:
zone example.com. {
primary 192.168.1.11;
key rndc-key;
}
zone 1.168.192.in-addr.arpa. {
primary 192.168.1.11;
key rndc-key;
}
替换 example.com 和 1.168.192.in-addr.arpa. 为你的正向和反向域文件名。上面的IP地址应该指向你的BIND DNS服务器(如果你的DNS服务与DHCP服务存在于同一台电脑,你可以用 127.0.0.1)。如果你没有创建反向查找域文件,省略反向查找域声明。
3、如果你设置了静态IP分配,添加下面行到 dhcpd.conf 文件。这将允许 DHCP 用静态分配更新DNS。
update-static-leases on;
保存退出。
五、测试
1、如果网络中存在其它DHCP服务器,关闭它。许多路由器有内嵌的DHCP服务,在测试前禁用它。下面的命令可以实时查看DHCP消息。
# dhcpd -f -d
按 Ctrl+C 退出这个模式。
2、如果你启用了动态DNS更新,可以用下面的命令解析主机的IP地址。替换 desktop01.example.com 为你的目标主机名。
# host desktop01.example.com
desktop01.example.com has address 192.168.1.13
3、配置DHCP随系统启动。
# ee /etc/rc.conf
添加:
dhcpd_enable="YES"
保存退出。
4、启动DHCP服务用下面命令。
# /usr/local/etc/rc.d/isc-dhcpd start
六、文件位置
1、配置文件。
/usr/local/etc/dhcpd.conf
主配置文件位置。
2、日志文件:
/var/db/dhcpd.leases
dhcpd 发出租期的数据库文件。
/var/log/messages
错误和状态日志。