DHCP配置文件中的option
option用来配置DHCP可选参数,全部用option关键字作为开始,主要选项如表8-3所示。表8-3 DHCP配置文件中option关键字的主要选项 选 项
解 释
subnet-mask
为客户端设定子网掩码
domain-name
为客户端指明DNS名字
domain-name-servers
为客户端指明DNS服务器的IP地址
host-name
为客户端指定主机名称
routers
为客户端设定默认网关
broadcast-address
为客户端设定广播地址
ntp-server
为客户端设定网络时间服务器的IP地址
time-offset
为客户端设定格林威治时间的偏移时间,单位是秒
配置实例
在下面的实例中使用一个example.com的虚拟域名,用户需要修改其中的内容以满足网络的需求。/etc/dhcpd.conf文件的内容如下:
# The options outside a subnet directive are global unless
# over-ridden by the same setting inside the subnet directive.
option domain-name-servers 192.0.34.43, 193.0.0.236;
default-lease-time 6000; max-lease-time 7200;# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).log-facility local7;
# Handle client dynamic dns updates
ddns-update-style none;# Example Network 1 ( on eth0 )
subnet 192.168.200.0 netmask 255.255.255.0 {
option domain-name "corp.example.com";
range 192.168.200.100 192.168.200.200;
option routers 192.168.200.254;
}
上面的实例配置文件分为两个部分,即子网配置信息和全局配置信息。可以有多个子网,这里为了简化,只指定了一个子网。
(1)Subnet。
在上面的例子中,一个子网声明以“subset”关键字开始,所以子网信息包括在{}中。{}中的配置信息只对该子网有效,会覆盖全局配置。
(2)Global。
所有子网以外的配置都是全局配置,如果同一个全局配置没有被子网配置覆盖,则其将对所有子网生效。
(3)Configuration Options。
下面是上例中配置指令的解释说明。
option domain-name-servers 192.0.34.43, 193.0.0.236;
这一行指定客户端应该使用的DNS服务器,该选项可以用于全局参数或者子网参数。
default-lease-time 6000; max-lease-time 7200;
这两行是相关的,default-lease-time指定客户端需要刷新配置信息的时间间隔(秒),max-lease-time为客户端用于无法从服务器获得任何信息的时间,超过该时间则会丢弃之前从该DHCP服务器获得的所有信息,而转向使用OS的默认设置。
authoritative;
指定当一个客户端试图获得一个不是该DHCP服务器分配的IP信息,DHCP将发送一个拒绝消息,而不会等待请求超时。当请求被拒绝,客户端会重新向当前DHCP发送IP请求获得新地址。
log-facility daemon;
指定DHCP服务器发送的日志信息的日志级别。
ddns-update-style none;
该配置可以指定一个方法,客户端用该方法来更新IP对应的域名信息,本例中禁用了该特性。
subnet 192.168.200.0 netmask 255.255.255.0 {
option domain-name "corp.example.com";
range 192.168.200.100 192.168.200.200;
option routers 192.168.200.254;
}
上面内容为子网配置,第1行指定该子网地址和掩码。DHCP服务器必须拥有该子网的一个IP,domain-name设置该客户端的域名。DHCP服务器可以负责整个子网的信息,也可以只负责子网的一段。
option routers配置默认网关IP。
启动DHCP服务器
1.建立客户端租约文件
运行DHCP服务器还需要一个名为“dhcpd.leases”的文件,其中保存所有已经分发的IP地址。在Red Hat Linux发行版本中,该文件位于/var/lib/dhcp/目录中。如果通过RPM安装ISC DHCP,那么该目录应该已经存在。dhcpd.leases的文件格式为:
Leases address {statement}
一个典型的文件内容如下:
lease 192.168.1.255 { #DHCP服务器分配的IP地址#
starts 1 2005/05/02 03:02:26; # lease 开始租约时间#
ends 1 2005/05/02 09:02:26; # lease 结束租约时间#
binding state active;
next binding state free;
hardware ethernet 00:00:e8:a0:25:86; #客户机网卡MAC地址#
uid "\001\000\000\350\240%\206"; #用来验证客户机的UID标志#
client-hostname "cjh1"; #客户机名称#
}
注意:lease开始租约时间和lease结束租约时间是格林威治标准时间(GMT),不是本地时间。
第1次运行DHCP服务器时,dhcpd.leases是一个空文件,也不用手工建立。如果不是通过RPM安装ISC DHCP,或者dhcpd已经安装,那么应该试着确定dhcpd将其lease文件写到何处并确保该文件存在。也可以手工建立一个空文件:
#touch /var/lib/dhcp/dhcpd.leases
2.启动和检查DHCP服务器
使用命令启动DHCP服务器:
#service dhcpd start
使用ps命令检查dhcpd进程:
#ps -ef | grep dhcpd
root 2402 1 0 14:25 ? 00:00:00 /usr/sbin/dhcpd
root 2764 2725 0 14:29 pts/2 00:00:00 grep dhcpd
使用netstat检查dhcpd运行的端口:
# netstat -nutap | grep dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 2402/dhcpd
3.设置DHCP转发代理
DHCP的转发代理(dhcrelay)允许把无DHCP服务器子网内的DHCP和BOOTP请求转发给其他子网内的一台或多台DHCP服务器。当某个DHCP客户端请求信息时,DHCP转发代理把该请求转发给DHCP转发代理启动时所指定的一台DHCP服务器。当某台DHCP服务器返回一个回应时,该回应被广播或单播给发送最初请求的网络。除非使用INTERFACES指令在/etc/sysconfig/dhcrelay文件中指定了接口,否则DHCP转发代理监听所有接口上的DHCP请求。要启动DHCP转发代理,使用命令:
service dhcrelay start
4.从指定端口启动DHCP服务器
如果系统连接不止一个网络接口,但是只想让DHCP服务器启动其中之一,则可以配置DHCP服务器只在相应设备上启动。在/etc/sysconfig/dhcpd中,把接口的名称添加到DHCPDARGS的列表中:
# Command line options here
DHCPDARGS=eth0
如果有一个带有两块网卡的防火墙机器,这种方法就会大派用场。一块网卡可以被配置成DHCP客户端从互联网上检索IP地址;另一块网卡可以被用做防火墙之后的内部网络的DHCP服务器。仅指定连接到内部网络的网卡使系统更加安全,因为用户无法通过互联网来连接其守护进程。
其他可在/etc/sysconfig/dhcpd中指定的命令行选项如下。
(1)-p<portnum>:指定dhcpd应该监听的UDP端口号码,默认值为67。DHCP服务器在比指定的UDP端口大一位的端口号上把回应传输给DHCP客户端。例如,如果使用默认端口67,服务器就会在端口67上监听请求,然后在端口68上回应客户。如果在此处指定了一个端口号,并且使用了DHCP转发代理,所指定的DHCP转发代理所监听的端口必须是同一端口。
(2)-f:把守护进程作为前台进程运行,在调试时最常用。
(3)-d:把DCHP服务器守护进程记录到标准错误描述器中,在调试时最常用。如果未指定,日志将被写入/var/log/messages中。
(4)-cf<filename>:指定配置文件的位置,默认为/etc/dhcpd.conf。
(5)-lf<filename>:指定租期数据库文件的位置。如果租期数据库文件已存在,在DHCP服务器每次启动时使用同一个文件至关重要。建议只在无关紧要的机器上为调试目的才使用该选项,默认为/var/lib/dhcp/dhcpd.leases。
(6)-q:在启动该守护进程时,不要显示整篇版权信息