You are on page 1of 39

Lesson3 DHCP动态配置

服务
BOOTP协议介绍
DHCP协议是在BOOTP协议的基础上发展起来的,因此,在介绍
DHCP协议之前,我们先来介绍BOOTP协议。
BOOTP协议虽然简单,却可以为许多应用提供服务,主要是远程
引导(客户机不包括引导盘)。DHCP与BOOTP两者的基本原理是
一样的。
BOOTP是一个主机配置协议,在客户机启动时分配IP地址。相对
比较而言,BOOTP是静态的,而DHCP是动态的。
设计BOOTP协议的目的是用作远端引导。主要是告诉连接客户机
引导文件的位置。DHCP有一个动态IP分配策略,这个策略在整
个子网掩码范围内汇集永久和短期租借的地址。而BOOTP协议没
有这个功能。
DHCP的基本原理
什么是DHCP
DHCP的特点
DHCP中几个常用的概念
DHCP的工作原理
DHCP服务器的设置
Dhcpd进程的控制
什么是DHCP
动态主机分配协议(Dynamic Host Configuration Protocol,
DHCP)是一个简化主机IP地址分配管理的TCP/IP 标准协议。用
户可以利用DHCP服务器管理动态的IP地址分配及其他相关的环
境配置工作(如:DNS、WINS、Gateway的设置)。
在使用TCP/IP协议的网络上,每一台计算机都拥有唯一的计算机
名和IP地址。IP地址(及其子网掩码)使用与鉴别它所连接的主
机和子网,当用户将计算机从一个子网移动到另一个子网的时候,
一定要改变该计算机的IP地址。如采用静态IP 地址的分配方法将
增加网络管理员的负担,而DHCP可以让用户将DHCP服务器中
的IP 地址数据库中的IP 地址动态的分配给局域网中的客户机,从
而减轻了网络管理员的负担。用户可以利用即时服务器6.0提供的
DHCP服务在网络上自动的分配IP地址及相关环境的配置工作。
在使用DHCP时,整个网络至少有一台服务器上安装了DHCP服
务,其他要使用DHCP功能的工作站也必须设置成利用DHCP获
得IP地址。
DHCP的特点
安全而可靠的设置:DHCP 避免了因手工设置IP地址及子网掩码所产生
的错误,同时也避免了把一个IP地址分配给多台工作站所造成的地址冲
突。对于没有网络参数配置经验的人员来说,IP地址的配置并不是件简
单的工作,从而难免会发生错误,轻则影响用户的使用,重则影响整个
局域网的使用,而这些配置工作完全依赖于网络管理员也给其带来了不
小的工作强度,DHCP使用自动的配置方式,大大减少了这些方面的矛
盾。
降低了管理IP地址设置的负担:使用DHCP 服务器大大缩短了配置或重
新配置网络中工作站所花费的时间,同时通过对DHCP服务器的设置可
灵活的设置地址的租期。同时,DHCP 地址租约的更新过程将有助于用
户确定那个客户的设置需要经常更新(如:使用便携机的客户经常更换
地点),且这些变更由客户机与DHCP服务器自动完成,无需网络管理
员干涉。
增加了局域网的可管理性:使用DHCP可以指定为固定的工作站或群租
设置指定的IP地址和网络参数,这样,可以非常方便的知道整个局域网
的设置情况,加强了对局域网的管理。
DHCP中几个常用的概念
作用域:作用域是一个网络中的所有可分配的IP地址的连续范围。
作用域主要用来定义网络中单一的物理子网的IP地址范围。作用
域是服务器用来管理分配给网络客户的IP地址的主要手段。
超级作用域:超级作用域是一组作用域的集合,它用来实现同一
个物理子网中包含多个逻辑IP子网。在超级作用域中只包含一个
成员作用域或子作用域的列表。然而超级作用域并不用于设置具
体的范围。子作用域的各种属性需要单独设置。
排除范围:排除范围是不用于分配的IP地址序列。它保证在这个
序列中的IP地址不会被DHCP服务器分配给客户机。
地址池:在用户定义了DHCP范围及排除范围后,剩余的地址构
成了一个地址池,地址池中的地址可以动态的分配给网络中的客
户机使用。
DHCP中几个常用的概念
租约:租约是DHCP服务器指定的时间长度,在这个时间范围内
客户机可以使用所获得的IP地址。当客户机获得IP地址时租约被
激活。在租约到期前客户机需要更新IP地址的租约,当租约过期
或从服务器上删除则租约停止。
保留地址:用户可以利用保留地址创建一个永久的地址租约。保
留地址保证子网中的指定硬件设备始终使用同一个IP地址。
选项类型:选项类型是DHCP服务器给DHCP工作站分配服务租
约时分配的其它客户配置参数。经常使用的选项包括:默认网关
的IP地址(routers),DNS服务器等。一般在设置每个范围是这
些选项都被激活。DHCP管理器允许设置应用于服务器上所有范
围的默认选项。大多数选项都是通过RFC 2132预先设定好的,
但用户可以根据需要利用DHCP管理器定义及添加自定义选项类
型。
DHCP的工作原理
第一种:客户机第一次启动登录网络时的初始化租约过程。
当DHCP客户机启动登录网络时通过以下步骤从 DHCP 服务器获
得租约:
z 1. DHCP 客户机在本地子网中先发送DHCP discover信息,此信息
以广播的形式发送,因为客户机现在不知道DHCP服务器的IP地址。
z 2. 在DHCP服务器收到DHCP客户机广播的DHCP discover信息后,
它向DHCP客户机发送DHCP offer信息,其中包括一个可租用的IP地
址。
DHCP的工作原理
z 3. 如果没有DHCP服务器对客户机的请求作出反应,则客户机无法获
得IP地址,初始化失败。但客户机在后台每隔5分钟发送四次DHCP
discover信息直到它收到DHCP offer信息。
z 4. 一旦客户机收到DHCP offer信息,它发送DHCP request信息到服
务器表示它将使用服务器所提供的IP地址。
z 5. DHCP服务器在收到DHCP request信息后,即发送DHCP positive
确认信息,以确定此租约成立,且此信息中还包含其它DHCP选项信
息。
z 6. 客户机收到确认信息后,利用其中的信息配制它的TCP/IP属性并
加入到网络中。图3-2所示是DHCP客户机从DHCP服务器获得租约
的过程。
z 7. 当客户机请求的是一个无效的或重复的IP地址,则DHCP服务器在
第五步发送 DHCP negative确认信息,客户机收到DHCP negative
确认信息初始化失败。
DHCP的工作原理
第二种:DHCP 客户机更新租约的过程:
在客户机重新启动或租期达到50%时,客户机都需要更新租约。
z 1. 客户机直接向提供租约的电位器发送请求,要求更新及延长现有
地址的租约。
z 2. 如果DHCP服务器收到请求,它发送DHCP确认信息给客户机,更
新客户机的租约。
z 3. 如果客户机无法于提供租约的服务器取得联系,则客户机一直等
到租期达到87.5%时,客户机进入到一种重新申请的状态,它向网络
上所有的DHCP服务器广播DHCP discover请求以更新现有的地址租
约。
z 4. 如有服务器响应客户机的请求,那么客户机使用该服务器提供的
地址信息更新现有的租约。
z 5. 如果租约过期或无法与其它服务器通信,客户机将无法使用现有
的地址租约。
z 6. 客户机返回到初始启动状态,利用前面所述的步骤重新获取IP地
址租约。
DHCP服务器的设置
DHCP是使用配置文件来控制的,它的配置文件是/etc/dhcpd.conf。
#Sample /etc/dhcpd.conf
default-lease-time 1200;
max-lease-time 9200;
ddns-update-style ad-hoc;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1,192.168.1.2;
option domain-name "mydomain.org";
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
}
host haagen {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 192.168.1.222;
}
DHCP服务器的设置
default-lease-time:定义缺省的租期的时间,它的单位是秒,如
果一个dhcp申请租约没有指定时间,将使用这个时间值。
max-lease-time:定义最大租约时间,单位是秒。它定义了可以
使用的租期的最大值。
ddns-update-style:dhcp服务器可以动态的升级域名系统,这个
选项用来设置动态升级域名系统的模式,目前,可以支持的模式
有三种:ad-hoc,interim和none,none表示不支持自动升级模式。
option subnet-mask:这里定义客户机申请时,分配给它的网络
掩码。
option broadcast-address:定义分配给客户机的广播地址。
option routers:定义分配给客户机的默认网关的地址。
option domain-name-servers:定义分配给客户机的域名解析服
务器地址,可以设置多个。
option domain-name:定义分配给客户机的域名。
DHCP服务器的设置
Subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
}
定义用来给客户机分配的IP地址范围的。首先,它先声明一个子
网,并指定网络掩码,其次,在定义这个子网内,哪些IP地址是
用来分配的。使用range关键字指定可以分配的IP地址的起始和终
止范围,这个范围可以是多个,分别用range把它们定义出来。
这段配置文件将允许DHCP服务器分配两段地址范围给DHCP客
户,192.168.1.10-100 和192.168.1.150-200,如果DHCP客户在
申请租约时不请求一个特定租约失效时间,则以default-lease-
time为租约时间,如果有请求一个特定的租约失效时间,则采用
max-lease-time。
DHCP服务器的设置
host haagen {
hardware ethernet 08:00:2b:4c:59:23;
fixed-address 192.168.1.222;
}
DHCP服务器可以设定对于某台主机,总是分
配固定的IP地址。它可以根据申请DHCP服务
的客户机的MAC地址来判断,如果指定了为该
主机分配固定的IP地址,那么就把设置好的IP
地址分配给它。Hardware ethernet指定了客户
机的MAC地址,而fixed-address指定要为该主
机分配的IP地址。
DHCP服务器的设置
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
default-lease-time 1200;
max-lease-time 9200;
ddns-update-style ad-hoc;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1,192.168.1.2;
option domain-name "mydomain.org";
}
这些配置信息出现在subnet的内部,只对该子网有效,因为
dhcpd.conf可以指定多个子网。如果要对所有的子网起作用,就
要写到subnet语句的外边。
DHCP服务器的设置
share-network 用于告诉DHCP服务器某些IP子网其实是共享同一个物理
网络。任何一个在共享物理网络里的子网都必须声明在share-network语
句里。当属于其子网里的客户启动时,将获得在share-network语句里指
定参数,除非这些参数被subnet或host里的参数覆盖。用share-network
是一种权宜之计,例如某公司用B类网络145.252,公司里的部门A被划
在子网145.252.1.0里,子网掩码为255.255.255.0,这里子网号为8个bit,
主机号也为8个bit,但如果部门A急速增长,超过了254个节点,而物理
网络还来不及增加,就要在原来这个物理网络上使用两个8bit掩码的子网,
而这两个子网其实是在同一个物理网络上,这样就可以使用share-
network语句了,格式如下:
shared-network mynet {
subnet 145.252.1.0 netmask 255.255.255.0 {
range 145.252.1.10 145.252.1.253;
}
subnet 145.252.2.0 netmask 255.255.255.0 {
range 145.252.2.10 145.252.1.253;
}
}
这里的mynet是个共享网络名。
DHCP服务器的设置
host语句:上面的例子中,我们提到了host语句,它可以设定为
一台客户机设定固定的一个IP地址,这里要介绍它的另外一种格
式:
host haagen { hardware ethernet 08:00:2b:4c:59:23; fixed-
address 192.168.1.222; }
这种格式把配置内容写在一行上,简化了配置文件。
group语句:提供组设置,可以把一些信息归类成一个组,对这
个组进行设置,例如可以把host信息放在一个组里,如下:
group {
host ncd1 { hardware ethernet 00:c0:c3:49:2b:57; }
host ncd2 { hardware Ethernet 00:c0:c3:49:2b:64;}
host ncd3 { hardware Ethernet 00:c0:c3:49:2b:80;}
}
DHCP服务器的设置
server-name语句:server-name语句用
于告诉客户机DHCP服务器的名字,格
式是:
server-name “larry”;
option host-name语句:用于为客户机指
定主机名,例如
option host-name “larry”;
DHCP服务器的设置
当dhcp客户机申请了一个IP地址以后,会在系
统中生成一个租约文件,默认的是
/var/lib/dhcp/dhcpd.leases,文件包含租约声
明等内容,每次一个租约被获取、更新或释放,
它的新值就被记录到文件的的末尾。这个文件
的格式是:
lease ip-address { statements... }
每个记录包含一个提供给客户的IP地址,在花
括号里的语句包含一些租约信息。具体的租约
信息因客户发出不同的DHCP请求而稍有差别。
DHCP服务器的设置
一个典型的dhcpd.lease的内容如下:
# All times in this file are in UTC (GMT), not your local timezone. This is
# not a bug, so please don't ask about it. There is no portable way to
# store leases in the local timezone, so please don't request this as a
# feature. If this is inconvenient or confusing to you, we sincerely
# apologize. Seriously, though - don't ask.
# The format of this file is documented in the dhcpd.leases(5) manual
page.
# This lease file was written by isc-dhcp-V3.0

lease 192.168.0.40 {
starts 6 2002/03/23 02:15:49;
ends 6 2002/03/23 14:15:49;
binding state active;
next binding state free;
hardware ethernet 00:e0:08:00:07:16;
uid "\001\000\340\010\000\007\026";
client-hostname "larry";
}
dhcpd进程的控制
dhcpd属于服务器端程序,它以守护模式运行在系统中,进程名
字是dhcpd。要启动dhcpd服务,可以使用下面几种方法:
1. 运行命令/usr/sbin/dhcpd,如果看到下列信息,表示启动成功。
Internet Software Consortium DHCP Server V3.0
Copyright 1995-2001 Internet Software Consortium.
All rights reserved.
For info, please visit http://www.isc.org/products/DHCP
Wrote 0 leases to leases file.
Listening on LPF/eth0/00:00:e2:81:1a:e3/abc
Sending on LPF/eth0/00:00:e2:81:1a:e3/abc
Sending on Socket/fallback/fallback-net
2. 运行脚本:/etc/rc.d/init.d/dhcpd start。
dhcpd进程的控制
如果要停止dhcpd服务,使用下列方法:
z 1. 运行命令killall dhcpd;
z 2. 运行脚本/etc/rc.d/inti.d/dhcpd stop;
如果要设置客户端计算机使用dhcp协议,可以有如下几种方法:
z 1. 修改/etc/sysconfig/network-scripts/if-cfg文件,增加这样一行,
BOOTPROTO=DHCP
以后每次启动计算机,系统都会自动的进行DHCP配置。
z 2. 使用即时控制台的网络配置界面,把网络接口配置为DHCP方式。
z 3. 使用netconfig,配置网络接口为DHCP方式。
z 4. 使用netcfg,配置网络接口为DHCP方式。
z 5. 如果计算机已经进入系统,可以运行dhcpcd命令,进行DHCP查
找和获取网络配置信息。
z 6. 使用命令pump也可以获取DHCP网络配置信息。
使用webmin配置DHCP服务

打开webmin设置DHCP服务器的窗口(点击“服务”模
块,在点击“DHCP服务器”组件),如图。
使用webmin配置DHCP服务

要设置DHCP服务器,先增加一个子网。点击“增加一个新的子
网”,这将出现图的设置窗口。
z 网络地址:输入局域网的网络地址,例如可以输入192.168.0.0。
z 网络掩码:输入网络掩
码,例如255.255.255.0。
z 地址范围:输入要为主机
动态分配的地址范围,例
如可以输入192.168.0.20
-192.168.0.40,这段网
络地址就会为使用DHCP
协议的主机分配IP地址。
使用webmin配置DHCP服务

在创建子网的窗口中,还有很多可以设置的项目,它
们都是可选的设置信息,用来控制DHCP服务器的行
为,我们只说明其中的几个:
z 缺省租赁时间:设置default-lease-time值。
z 最大租赁时间:设置max-lease-time值。
z 启动文件名:客户机申请一个DHCP服务后,可以从服务器端
获取一个启动信息相关的文件,这里设置这个文件的名字。
z 服务器名:告诉客户机服务器的名字,相当于server-name语
句。
z dynamic DNS enabled:设置是否支持DDns,相当于在配置
文件中增加一条语句ddns-updates on。
使用webmin配置DHCP服务

如果要增加一个共享网络,要在“网络名”里输入一个共享的网络
名,这可以自定义,例如输入“myshare”。然后,在右下角的
“subnets in this shared
network”选项里选择为这个共享
网络增加的子网。我们曾经新建
过一个192.168.0.0的子网,它显
示在列表中,选中它,就为这个
共享网络增加了一个子网。如果
DHCP server中定义了多个子网,
它们都会显示在这个列表中,可
以为共享网络选择多个子网。
使用webmin配置DHCP服务

新增共享网络和子网后,DHCP服务器界面将变成如图所示。它
显示了两个图标,一个是子网的,一个是共享网络的,如果要对
已经添加的子网或共享网络进行修改,点击这两个图标就可以了。
使用webmin配置DHCP服务

要增加一个主机,点击“增加一个新的主机”,配置界面如图。
在“主机名”一栏中,填入要增加的主机名,例如haagen,然后在
下面的hardware Address中选择网络类型,一般是ethernet,表
示以太网,接着在后面的输入框里输入该客户机的MAC地址,例
如00:c0:c3:49:2b:57;在
“固定的IP地址”栏里输入要
分配的IP地址,例如
192.168.0.25,在点击下面
的“新建”按钮就可以了。
使用webmin配置DHCP服务

在添加主机的界面中,有一个Host assigned to选项,它是一个下
拉列表,包括四项:Toplevel、Shared network、Subnet、group
Toplevel表示把host语句作为全局选项,不包括在任何选项中;
shared network,如果选择了这个项目,表示把host语句写入
shared-network语句内,这时,它右边的列表将显示目前系统中
可供选择的shared-network名;subnet,表示把host语句写入
subnet语句内,同样,选择它后,右边的列表框内将显示可供选
择的subnet名;group,
表示把host语句写入
group语句内。输入完这
些信息以后,保存设置。
这时已经增加了一个新的
主机,如图。
使用webmin配置DHCP服务

可以为系统增加一个主机组,点击“增加一个新的主机组”,进入
如图界面,这里不需要填入任何信息,只要保存就可以了。
使用webmin配置DHCP服务

返回的界面中,可以看到,已经新增了一个组。如图。组图标的
下面显示“没有成员”。要给该组增加成员,可以再点击图标
“haagen”,在“host assigned to”选项中选择“group”,那么它右
边的输入框中将显示“没有成员”项,选中,保存设置,就可以把
haagen主机填入到新定义的组中。
使用webmin配置DHCP服务

webmin配置DHCP服务器的最后几个项目是:编辑客户选项、列
出活动的租赁和启动DHCP服务。
编辑客户选项:这个按钮允许用户对dhcpd.conf文件中的全局选
项进行编辑和设置。例如
定义网络掩码,默认网关,
广播地址等等。其设置界
面如图。
使用webmin配置DHCP服务

列出活动的租赁:这个设置页中将列示目前系统中已经存在的租
约,它把这些租约以列表的形式分别显示出来,如图。点击该IP
地址,将删除这一条租约,这只是删除dhcpd.lease文件中的信息,
客户机的IP地址仍然有效,直到租约过期。
使用webmin配置DHCP服务

启动dhcp服务:点击此按钮,启动系统
的dhcpd服务。如果该服务已经启动,这
个标签将变成“应用改变”,它表示重新
启动dhcpd服务。
使用webmin配置DHCP服务

在DHCP服务配置页里,最后一个要介绍的内容是当前模块的配
置。在DHCP配置页的左上部,有一个链接,“当前模块配置”,
点击这个链接,可以进入配置当前模块页。如图。
使用webmin配置DHCP服务

在这个页面上,主要是配置dhcpd服务的系统文件,具
体项目如下:
z DHCP服务器配置文件:这个项目指定dhcpd服务的配置文件
的位置和文件名,缺省的文件是/etc/dhcpd.conf,如果用户有
另外的配置文件,可以在这里指定。注意,要指定该文件的
绝对路径。
z DHCP服务器执行文件:指定dhcpd程序的位置,这是DHCP
运行的主程序,一般的,它是/usr/sbin/dhcpd,如果用户的系
统中的dhcpd文件位置与此不同,要详细指定。
z DHCP服务器pid文件的路径:用于记录dhcpd进程在系统中的
进程号,这在终止dhcpd服务的时候需要,缺省的文件是
/var/run/dhcpd.pid。
z DHCP服务器租赁文件:用于记录本系统中已经存在的租约的
文件,此文件缺省是/var/lib/dhcp/dhcpd.leases。
使用webmin配置DHCP服务

z Sort leases by:设置在“列出活动的租赁”界面中显示当前租
约的顺序,它有三种选择,分别为:按dhcpd.leases文件中的
先后顺序显示;按照租约的IP地址排序显示;按照租约的客户
机主机名排序显示。
z Display subnets and hosts:设置显示当前系统中的子网和主
机名时,是以图标来显示,还是以列表的形式来显示,缺省
的是以图标的格式显示。
z icons in row:设置当以图标的格式显示主机名时,每行上的
图标的个数。这只有在上一个项目中选择了icons时才起作用。
z Display leases times in:设置显示租约的时间格式,有两个
选项,一种是以GMT(Greenwich mean time,格林尼治时间)
显示,另一种是以服务器的本地时间显示。
课后练习
dhcp服务的缺省配置文件是什么?
怎么给一台客户机配置固定的IP地址?
有几种方法可以启动dhcpd服务?
练习实验
设置DHCP服务器
z 相关信息:本实验需要两台计算机,一台作为
DHCP服务器,另一台作为DHCP客户端。
z 步骤:
z 1. 修改/etc/dhcpd.conf文件,设置IP地址范围为
192.168.11.11到192.168.11.15,子网掩码为
255.255.255.0。
z 2. 配置客户端计算机使用DHCP获得IP地址。重启
network服务,并记录获得的IP地址。
z 3. 设置DHCP服务器网关和DNS服务器选项为
192.168.11.254和12.34.45.56。重启DHCP服务。重启客
户端的网络服务。

You might also like