一、安装

 

# 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

错误和状态日志。