linux DHCP服务器配置

1概述
在TCP/IP 的网络中,任何计算机在存取、使用网络资源之前,都必须
正确的配置自身计算机的网络参数,如:IP 地址、子网掩码、默认网关等
等网络通信必不可少的参数和 策略。对于一个大型网络而言,网络的管理
和维护对于网络管理员来说是一个繁重而且艰巨的任务,首先,当络结构发
生改变,一台甚至多台计算机需要重新设置网 络,这样无形的网络管理员
增加了很大的工作量。其次,IP 地址等资源的严重匮乏,导致必须科学
的、高效的分配、使用面临枯竭的IP 网络地址资源,因此需要 一种机制来
让TCP/IP的配置和管理从客户端移动到网络管理端,实现IP 地址由网络管
理员集中管理,并且可以科学的分配IP 地址资源。
DHCP 服务是Dynamic Host Configuration Protocol动态主机配置协议的缩
写。该协议由IETF(Internet 网络工程师任务小组)开发设计,其目的是为
了减轻TCP/IP规划的管理和 维护的负担,解决IP 地址资源的匮乏问题。运
行DHCP 的服务器把TCP/IP 网络配置集中来管理,动态的分配和处理客户
端的IP 地址等相关资源的配置, 用DHCP 租约等相关技术,提供了自动在
TCP/Ip 网络上安全的、高效的分配和租用IP 地址资源的机制。从而实现IP
地址的集中的管理。,基本上不需要 网络管理员人为的干预。DHCP协议本
身也被设计成BOOTP 自举协议的扩展,支持需要网络配置信息的无盘工作
站,对需要固定IP 地址的系统也提供了很好 的支持。
2DHCP服务器的安装和配置
2.1 获得DHCP服务器软件
在Linux 中,几乎所有的DHCP 服务器软件都采用paul Vixie/ISC
DHCPD,来实现DHCP服务器的功能。目前大多数的Linux 发行的版本中都
包含了这个软件,在安装光盘中,以PRM 安装包的模式发布的,用现面命
令安装:
#rpm –ivh dhcpd-x.x.x.rpm
2.2 增加主机的路由
为了使DHCP 服务器能够正确地为客户计算机提供动态分配IP 地址的
服务。DHCPD 服务器守护进程必须可以将IP 包送到255.255.255.255 这个
IP 地址上,因此服务器一定要建立一个到该主机的路由。使用下面命令添
加路由:
#route add –host 255.255.255.255 dev eth0
注意:有几个网络接口提供DHCPD 服务,那么也要在每一个网络接口
增加该路由。
2.3 修改配置文件
DHCPD 默认的配置文件为/etc/dhcpd.conf。这是一个文本文件,在
DHCPD 中有一个语法分析器,可以对这个文件进行语法分析,获得配置参
数。在这 个配置文件中。格式是递规下降的,关键字大小写敏感,可以有
注释,注释是以#开头的,到行的结束。这里给出了一个简单的dhcpd.conf
文件的例子, 该配置文件配置的DHCP 服务器是将172.16.0.0/22 这个网段
分配动态IP 地址的。内容如下:
#examples
#默认租约时间
default-lease-time 86400;
#最大租约时间
max-leases-time 129600;
#子网掩码选项
option subnet-mask 255.255.252.0;
#广播地址
option broadcast-adress 172.16.3.255
#路由器地址
option routers 172.16.0.1;
#DNS服务器地址
option domain-name-servers 192.168.102.66;
#域名
option domain-name “doit.com.cn”;
#子网掩码声明
subnet 172.16.0.0 netmask 255.255.252.0{
#范围
range 172.16.0.10 172.16.3.254;
}
该配置文件将允许DHCP 服务器将172.16.0.10~172.16.3.254 的IP 地址
分配给DHCP客户端使用。
如果DHCP 客户在申请租约时不请求一个特定的租约失效的时间,则
以default-lease-time 86400 为租约时间,如果请求一个特定的租约失效的时
间,则以max-lease-time 129600为租约时间。
服务器将下面的参数发给DHCP客户端:
子网掩码:255.255.252.0
广播地址:172.16.3.255
网络地址:172.16.0.0
默认网关:172.16.0.1
DNS 服务器:192.168.102.66
如果要为一台单独的计算机分配固定的IP 地址,可以在/etc/dhcpd.conf
文件中加上一条:
host doit{
#doit 计算机网卡的硬件地址。
Hardware Ethernet 00:50:DA:72:01:47;
#固定的IP 地址
fixed-adress 172.16.0.7;
}
2.4dhcpd.leases文件
dhcpd.leases 文件是DHCP 客户计算机租约的数据库文件,默认是在/
var/lib/dhcpd/目录下。文件内容包含租约声明,每一次租约被获取、更新、
释放,它的 值都会被记录到文件末尾。在DHCPD服务器第一次安装后,并
不会产生这个文件,所以要手动创建该文件。方法为:
#touch /var/lib/dhcpd/dhcpd.leases
该文件格式为:
lease ip-address { statements...}
每一个记录都包含一个动态分配给客户计算机的IP 地址。在大括号
中,包含了一些租约的信息。具体租约信息因客户端的DHCP请求而稍有差
别。
2.5 运行DHCPD守护进程
启动DHCPD服务的方法为:
#/etc/init.d/dhcpd start
停止DHCPD服务的方法为:
#/etc/init.d/dhcpd stop
重新启动DHCPD服务的方法为:
#/etc/init.d/dhcpd restart
当一台终端计算机动态获得IP 地址后,在/var/lib/dhcpd/dhcpd.leases 文
件中建立一条类似下面的记录。记录内容为:
lease 172.16.0.21{
starts 1 2003/04/23 17:25:32;
ends 1 2003/4/25 14:32:01;
hardware Ethernet 00:50:DA:76:00:2A;
uid 00:50:DA:72:01:47;
client-hostname “test”;
在这里需要注意的是dhcpd.leases 文件的时间记录采用了GMT 时间,而
不是本地区的时间。要看本地区的时间,执行现面的命令:
#date –u
3DHCP高级配置
3.1dhcpd.conf结构说明
在 上面,我们介绍过,dhcpd.conf 是一个递规的下降的配置文件。有些
和C 语言类似,由参数、声明两个大的部分组成。参数类型语句主要告诉
DHCPD 守护进程网络的参数,如租约时间,子网掩码、网关、DNS 域名服
务器等。而声明则是描述网络是如何构成的拓扑结构。用来标识网络上客户
端计算机、要提供 IP 地址资源,提供一个参数族组给一组声明。
描 述网络拓扑结构声明语句分为:shared-network 和subnet 声明,如
果要给一个子网内的客户计算机动态分配IP 地址,那么在subnet 声 明中必
须要有range 声明,用来说明地址范围。如果要给一个客户计算机一个静态
的指定的IP 地址,那么,这样的计算机要用host 声明。对于每一个要提 供
服务的与DHCP 服务器连接的子网,都要有一个subnet 声明,即使是一个
不提供IP 地址动态分配服务的子网。
介绍一个典型的例子加以说明:
#example
#全局参数
shared-network 共享网络名称 {
subnet 172.16.0.0 netmask 255.255.252.0 {
#子网定义参数
#range 172.16.0.0;
}
group {
host test.doit.com.cn {
主机参数:IP 地址、Mac地址等。
}
}
13.3.2 语法详解
DHCP的语法参数很多,在这里,我们介绍最常用的最重要的语句。
1、 声明类语句
l shared-network name {
[参数]
[声明]
}
shared -network用于告诉DHCP 服务器哪些IP 子网属于一个物理网络。
任何一个在共享物理网络的子网都必须声明在shared-network 语句中。 属于
这个子网中的客户计算机启动的时候,将获得在shared-network 语句中指定
的参数,除非这些参数被subnet 和host 参数覆盖。用 shared-network 是一种
暂时的办法,例如:企业中用一个B 类网络129.7,企业内部的部门甲被划
在子网129.7.3.0/24 中,这里的 网络号码为8 个bit,主机号也为8 位。但
是如果部门甲很快的增长,超过了254 台主机,而物理网络来不及增加子
网,就要在这个物理网络中运行两个 8bit子网掩码的子网。而这两个子网还
同时在一个物理网络中,shared-network 可以做如下声明。
shared-network net1 {
subnet 129.7.3.0 netmask 255.255.255.0 {
range 129.7.3.10 129.7.3.254;
}
##############################################
subnet 129.7.4.0 netmask 255.255.255.0 {
range 129.7.4.10 129.7.4.254;
}
这里的net1 是网络共享名称。
l subnet 语句
subnet subnet-number netmask {
[参数]
[声明]
}
subnet 语句用于提供足够的信息来阐明一个IP 地址是否属于该子网的
IP 地址可以动态的分配给用户,这些IP 地址必须在range 声明里指定。
Subnet number 可以是IP 地址或能被解析到这个子网的域名。Netmask 是子
网的掩码。
l subnet 语句
range [dynamic-bootp] low-address [high-adress]
对于任何一个有动态分配的IP 地址的subnet 语句中,至少有一个range
语句。用来标识要分配的IP 地址的范围。
l host 语句
l host hostname {
[参数]
[声明]
}
host 语句的作用是给一个特定客户计算机分配指定的IP 地址。
l group 语句
group {
[参数]
[声明]
}
用于给一组声明提供参数。
l allow和deny 语句
allow和deny 语句用来控制DHCPD对客户计算机的请求。
l unknown-clients关键字
allow unknown-clients;
deny unknown-clients;
allow unknown-clients;允许DHCPD 可以动态的分配IP 给位置的客户计
算机。而deny unknown-clients;则是不允许。默认为allow unknown-clients。
l bootp关键字
allow bootp;
deny bootp;
指明DHCPD是否响应BOOTP的查询,默认是允许的。
2、 参数类语句
l default-lease-time语句
语法:
default-lease-time time;
指定默认的租约时间,单位为秒。如果客户计算机在请求一个租约但是
没有租约失效时间,租约时间就是默认的租约时间。
l max-lease-time语句
语法:
max-lease-time time;
最大租约时间。如果客户计算机在请求租约时间时发出租约失效的请
求,则用最大的租约时间。
l hardware 语句
语法:
hardware hardware-type hardware-adress;
指明物理硬件接口类型和硬件地址,一般为以太网卡。硬件地址由6 个
8 位的组构成,每组之间用“:”分割。例如:00:A0:D2:1A:BE:0E
l server-name语句
语法:
server-name “name”;
告诉客户计算机服务器的名字。
l fixed-address语句
语法:
fixed-adress address [,address……];
指定一个或者多个IP 地址给固定的客户计算机,语句只能出现在host
声明中。
3、 选项类参数
这类参数以option 开头,后面跟一个选项名称,选项名称后面是选项数
据,选项很多,这里列出一些常用的选项。
l Option routers ip-adress [,ip-address];
指明在客户计算机子网内的路由器地址,可以为一个,也可以为多个。
l Option time-servers ip-address[,ip-address…….];
指明时间服务器的IP 地址。
l Opton domain-name-servers ip-address [,ip-address…….]
指明DNS 域名服务器的IP地址。
l Option host-name string;
给客户计算机指定主机名称。
l Option domain-name string;
指明服务器和客户计算机所在的域。
l Option interface-mtu 1500;
指明网络界面的MTU,这里的MTU是整数。
l Option broadcast-address ip-address;
指定子网的广播地址。
小节
以上讲述的是DHCPD 服务器的常用配置,实际的应用还要考虑到IP 地
址分配和策略的问题。为了保证网络的稳定性、健壮性,建议采用2 台DHCP
服务器偕同 工作,实现DHCP 服务器的冗余。但是要注意的是,在DHCP 协议
等相关技术中,没有多台DHCP 服务器协同工作的机制,所以多台DHCP 服务
器的IP 地 址资源必须作出合理的调整,不能有交叉的和重复的IP地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值