~# aptitude install dhcp3-server dhcp3-common
当前版本 3.0.4-6
安装过程中会自动创建 /etc/default/dhcp3-server
/etc/dhcp3/dhcpd.conf
/etc/init.d/dhcp3-server
http://www.isc.org/sw/dhcp/
/etc/dhcp3/dhcpd.conf通常包括三部分:parameters、declarations 、option。
parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户。
参数 解释
ddns-update-style 配置DHCP-DNS 互动更新模式。
default-lease-time 指定确省租赁时间的长度,单位是秒。
max-lease-time 指定最大租赁时间长度,单位是秒。
hardware 指定网卡接口类型和MAC地址。
server-name 通知DHCP客户服务器名称。
get-lease-hostnames flag 检查客户端使用的IP地址。
fixed-address ip 分配给客户端一个固定的地址。
authritative 拒绝不正确的IP地址的要求。
declarations (声明):用来描述网络布局、提供客户的IP地址等:
声明 解释
shared-network 用来告知是否一些子网络分享相同网络。
subnet 描述一个IP地址是否属于该子网。
range 起始IP 终止IP 提供动态分配IP 的范围。
host 主机名称参考特别的主机。
group 为一组参数提供声明。
option(选项):用来配置DHCP可选参数,全部用option关键字作为开始:
选项 解释
subnet-mask 为客户端设定子网掩码。
domain-name 为客户端指明DNS名字。
domain-name-servers 为客户端指明DNS服务器IP地址。
host-name 为客户端指定主机名称。
routers 为客户端设定默认网关。
broadcast-address 为客户端设定广播地址。
ntp-server 为客户端设定网络时间服务器IP地址。
time-offset 为客户端设定和格林威治时间的偏移时间,单位是秒。
下边是一个简单的配置文件示例:
$ cat /etc/dhcp3/dhcpd.conf
ddns-update-style none;
authoritative;
log-facility local7;
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.129 192.168.100.200;
option domain-name-servers 202.98.198.168, 202.98.192.68;
option domain-name "mydebian.org";
option routers 192.168.100.1;
option broadcast-address 192.168.100.255;
default-lease-time 600;
max-lease-time 7200;
}
host hostname {
hardware ethernet 00:0C:29:44:73:BE;
fixed-address 192.168.100.128;
}
dhcp服务器的启动
~# /etc/init.d/dhcp3-server start
dhcp服务器的停止
~# /etc/init.d/dhcp3-server stop
dhcp服务器的重启
~# /etc/init.d/dhcp3-server restart
当出现错误时,可以通过查看日志文件/var/log/syslog来获取详细的错误信息,以找出错误所在!
如果主机上装有多个网卡,则可以通过修改/etc/default/dhcp3-server文件,来指定DHCP服务器监听的接口, 比如
$ cat /etc/default/dhcp3-server
INTERFACES="eth0 eth1"
则指定DHCP服务器仅对第一,二块网卡接口进行监听,也可以通过直接修改/etc/init.d/dhcp3-server服务器启动脚本的INTERFACES项来指定要监听的端口, 比如
INTERFACES="eth0"
仅对第一块网卡接口进行监听
在 DHCP 服务器第一次启动时, 会自动创建 /var/lib/dhcp3/dhcpd.leases 文件, 用于存放DHCP 的客户租期信息。不应该对该文件进行手动修改。每分配一个IP地址, 相关信息就会自动写入该文件。这些信息包括租期的长度;IP 地址被分配的对象;租期的开始和终止日期; 以及客户机的网卡 MAC 地址。
该中所用的时间是格林威治标准时间(GMT)。随着IP地址的分配,该文件不时的被重建:首先,所有已知的租期会被储存到一个临时的租期文件中,dhcpd.leases 文件被重命名为 dhcpd.leases ,然后,临时租期数据库被写入 dhcpd.leases 文件。
在租期数据被重命名为备份文件,新文件被写入之前,DHCP 守护进程有可能被杀死,系统也有可能会崩溃。如果发生了这种情况,启动服务所需的 dhcpd.leases 文件就不会存在。这时,请不要创建新租期文件。因为这样做会丢失所有原有的旧租期文件,从而导致更多问题。正确的办法是把 dhcpd.leases 备份文件重命名为 dhcpd.leases,然后再启动守护进程。
tonybox:~# ls -l /var/lib/dhcp3/
total 8
-rw-r--r-- 1 root root 1664 2006-09-13 00:36 dhcpd.leases
-rw-r--r-- 1 root root 1664 2006-09-12 05:36 dhcpd.leases~
管理员可以通过查看/var/lib/dhcp/dhcpd.leases文件来监督IP资源的分配情况。
dhcpd.leases文件的格式如下:
Leases address {statement}
下边是我的dhcpd.leases文件中的一部分:
lease 192.168.100.200 {#DHCP服务器分配的IP地址#
starts 1 2006/09/11 19:54:26;# lease 开始租约时间#
ends 1 2006/09/11 20:04:26;# lease 结束租约时间#
tstp 1 2006/09/11 20:04:26;
binding state active;
next binding state free;
hardware ethernet 00:0c:29:44:73:be;#客户机网卡MAC地址#
}
如果客户端通过DHCP服务器来获取相关的网络信息的话, 可以做如下操作: 修改/etc/network/interfaces为如下内容:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcpi
完成后, 重启网络服务:
# /etc/init.d/network restart
使用 ifconfig 命令, 来检查效果