Professional Documents
Culture Documents
服务
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服务。重启客
户端的网络服务。