分类: 系统运维
2009-06-12 09:26:01
三、设置DHCP服务器
(一)创建配置文件
1、配置文件格式
DHCP端口监督程序dhcpd配置文件是/etc目录中的名为dhcpd.conf的文件。下面手工建立/etc/dhcpd.conf文件,该文件通常包括3个部分,即parameters参数、declarations声明和option选项。
配置文件分为两个部分,即子网配置信息和全局配置信息。
(1)子网配置信息。
一个子网声明以“subset”关键字开始,所以子网信息包括在{}中。{}中的配置信息只对该子网有效,会覆盖全局配置。
(2)全局配置信息。
所有子网以外的配置都是全局配置,如果同一个全局配置没有被子网配置覆盖,则其将对所有子网生效。
(1)DHCP配置文件中的parameters
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地址的要求 |
(2)DHCP配置文件中的declarations
declarations用来描述网络布局及提供客户的IP地址等,主要声明如下
声 明 |
解 释 |
shared-network |
用来告知是否一些子网络共享相同网络 |
subnet |
描述一个IP地址是否属于该子网 |
range起始IP终止IP |
提供动态分配IP的范围 |
host主机名称 |
参考特别的主机 |
Group |
为一组参数提供声明 |
allow unknown-clients﹔ deny unknown-client |
是否动态分配IP给未知的使用者 |
allow bootp;deny bootp |
是否响应激活查询 |
allow booting﹔deny booting |
是否响应使用者查询 |
Filename |
开始启动文件的名称,应用于无盘工作站 |
next-server |
设置服务器从引导文件中装入主机名,应用于无盘工作站 |
(3)DHCP配置文件中的option
option用来配置DHCP可选参数,全部用option关键字作为开始,主要选项如表所示。
选 项 |
解释 |
subnet-mask |
为客户端设定子网掩码 |
domain-name |
为客户端指明DNS名字 |
domain-name-servers |
为客户端指明DNS服务器的IP地址 |
host-name |
为客户端指定主机名称 |
routers |
为客户端设定默认网关 |
broadcast-address |
为客户端设定广播地址 |
ntp-server |
为客户端设定网络时间服务器的IP地址 |
time-offset |
为客户端设定格林威治时间的偏移时间,单位是秒 |
2、开始配置
Dhcp的配置文件是/etc/dhcpd.conf ,并假设整个网络所在的域名:example.com。
#定义DHCP客户使用的DNS 服务器,多个DNS请使用逗号分割 option domain-name-servers 192.168.0.17, 203.56.8.1; #客户端IP租约的默认期限 default-lease-time 259200; #客户端IP租约的最高期限,客户端用于无法从服务器获得任何信息的时间,超过该时间则会 丢弃之前从该DHCP服务器获得的所有信息,而转向使用OS的默认设置。 max-lease-time 777600; #第一和第二行我定义出客户端IP租约的默认期限和最高期限﹐数值以秒来计算﹐也就是 三天’和‘九天’ #定义DHCP客户使用的NIS的域名 option nis-domain "domain.org"; #option ntp-servers 192.168.1.1 # --- Selects point-to-point node (default is hybrid). Don't change this unless #定义DHCP客户设置与格林威治时间的偏移差 option time-offset -18000; # Eastern Standard Time #指定客户端更新IP对应的域名信息所使用的方法,。 #支持DNS动态更新 ddns-update-style interim; #忽略客户端更新DNS记录 ignore client-updates; #设置用于定义服务器从引导文件装入的主机名,一般不用(仅用于设置无盘工作站) #next-server marvin.redhat.com; #为提供DHCP服务的第一块网卡设置这个网卡所在网段的相关配置信息。 subnet 192.168.0.0 netmask 255.255.255.0 { #定义这个网段的需要分配的DHCP 地址池,范围是192.168.0.21到192.168.0.30; #这里采用的是动态分配方式。 range dynaic-bootp 192.168.0.21 192.168.0.30; #定义这个网段的需要分配的DHCP 地址池,范围是192.168.0.121到192.168.0.230; #这里采用的是自动分配方式。 range 192.168.0.121 192.168.0.230; #设置这个网段的子网掩码,注意是否和上面的netmask相同? option subnet-mask 255.255.255.0; #这个网卡所在网段的域名,也就是定义DHCP客户所在域名 option domain-name "a.example.com"; #定义这个网段的广播地址 option broadcast-address 192.168.0.255; #定义这个网段的默认的路由器,多个路由器请使用逗号分割 option routers 192.168.0.17; #为pii266 这台主机永远都使用一个固定的 IP 地址(不受DHCP影响)。这可以应用在服务器使用固定的IP地址的情况下。 host pii266 { # pii266的MAC地址 hardware ethernet 48:54:E8:27:75:77; # pii266的固定的IP地址,注意这里的IP地址不能在上面的scope范围内! fixed-address 192.168.0.15; } } #为提供DHCP服务的第二块网卡设置这个网卡所在网段的相关配置信息 subnet 203.30.35.128 netmask 255.255.255.224 { range 203.30.35.140 203.30.35.157; option domain-name " b.example.com "; option broadcast-address 203.30.35.159; option routers 203.30.35.134 } |
(二)为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