第12章 动态主机配置协议DHCP
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第12 章动态主机配置协议DHCP
Intenet互联网使用TCP/IP协议进行相互通信,在使用TCP/IP协议进行通信的网络上,每一台计算机都需要一个唯一的IP地址。
网络上使用IP地址和子网掩码区分互联的不同的计算机。
12.1 DHCP概述
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用来自动给客户机器分配TCP/IP信息的网络协议,减轻TCP/IP网络的规划、管理和维护的负担。
每个DHCP 客户端向DHCP服务器发起请求,该服务器会返回包括IP地址、网关和DNS服务器信息在内的客户端网络配置信息,DHCP的应用有效的解决IP地址空间缺乏的问题。
使用DHCP服务的网络需要一台服务器安装DHCP服务,其它要使用DHCP服务的客户机只需要设置成利用DHCP获得IP地址就可以动态的从DHCP服务器中获取IP地址,DHCP服务器支持多网段IP地址分配,可以同时为多个网段的DHCP客户机分配IP地址。
图12-1表示是一个DHCP服务动态分配IP地址的网络基本结构。
图12-1
12.1.1 DHCP地址分配方式
如果需要使用DHCP方式自动获取IP信息,必须在网络上安装至少一台DHCP 服务器。
DHCP服务器监听网络中的所有DHCP 请求,并与客户端商议TCP/IP 的设定环境。
常用的IP地址分配方式有自动分配(Automatic Allocation)和动态分配(Dynamic Allocation)两种分配方式。
(1)自动分配
使用自动分配方式时,一旦DHCP 客户端第一次成功的从DHCP服务器端租用到IP 地址之后,就永远使用这个地址。
(2)动态分配
使用动态分配方式时,当DHCP 第一次从HDCP服务器端租用到IP 地址之后,并非永久的使用该位,只要租约到期,客户端就释放这个IP 地址这时其它工作站就可以重新申请到该地址,在申请的过程中,原来的客户端可以比其它主机更优先的延续租约,或是租用其它的不同的IP地址。
12.1.2 DHCP 的工作原理
当客户端第一次登录的时候按照下面的步骤工作:
(1)当DHCP 客户端第一次登录网路的时候﹐这时候客户发现本机上没有任何IP 设置参数时﹐它会向网络发出一个DHCPDISCOVER 封包。
这时由于客户端还不知道自己属于哪一个网路﹐所以封包的源地址设置位为0.0.0.0 ,目的址设置为255.255.255.255,然后附加上DHCPDISCOVER封包信息后向整个网络进行广播。
当客户端将第一个DHCPDISCOVER封包送出去之后﹐在设定的间隔内如果没有得到回应就进行第二次DHCPDISCOVER广播。
如果重复一定的次数(Windows 设置为4次)一直得不到回应,客户端显示错误信息,宣布DHCPDISCOVER的失败。
(2)当DHCP 服务器监听到客户端发出的DHCPDISCOVER广播后,服务器从那些还没有租出的位址范围内选择最前面的的空置IP连同其它TCP/IP 设定,回应给客户端一个DHCPOFFER 封包。
由于客户端在开始的时候还没有IP 位址﹐所以在其DHCPDISCOVER封包内会带有其机器地址信息和一个XID 编号来辨别该封包,DHCP服务器回应的DHCPOFFER 封包会根据这些资料传递给要求租约的客户,根据服务器端的设定,DHCPOFFER 封包包含一个租约期限的信息。
(3)如果客户端收到网路上多台DHCP 服务器的回应,挑选最先抵达的那个DHCPOFFER封包,并且向网路发送一个DHCPREUEST广播封包﹐告诉所有DHCP 服务器它将指定接受哪一台服务器提供的IP 位址。
同时,客户端还向网络发送一个ARP 封包查询网路上面有没有其它机器使用该IP位址,如果发现该IP 已经被占用,客户端则会发出一个DHCPDECLINE 封包给DHCP服务器,拒绝接受其DHCPOFFER封包﹐并重新发送DHCPDISCOVER信息。
(4)当DHCP服务器收到客户端的DHCPREQUEST封包之后向客户端发出一个DHCPACK 回应以确认IP 租约的正式生效,结束了一个的DHCP 工作过程。
如图12-2所示。
图12-2
12.2 配置DHCP服务器
12.2.1 安装DHCP服务包
DHCP服务的安装包一般提供的是RPM安装包,主要包含:dhcp,dhclient和dhcp-devel 三个包,其中dhcp是DHCP服务的安装包,dhclient是客户端工具。
dhclient包文件dhclient-3.0pl1-23.i386.rpm 在RedHat9发行盘的第一张碟上,如果想查看已经安装的版本或者查看是否安装dhclient服务,可以使用rmp -qa dhclient命令:[root@localhost RPMS]$rpm -qa dhclient
dhclient-3.0pl1-23
[root@localhost RPMS]$
如果想卸载已经安装的版本可以使用:rpm -e dhclient命令:
[root@localhost RPMS]$rpm -e dhclient
如果想重新安装dhclient服务,使用如下命令:
[root@localhost RPMS]$rpm -ivh dhclient-3.0pl1-23.i386.rpm
warning: dhclient-3.0pl1-23.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%] 1:dhclient ########################################### [100%] [root@localhost RPMS]$
dhcp和dhcp-devel包在Redhat发行盘的第二章光碟上,相应的RPM包文件为:dhcp-3.0pl1-23.i386.rpm 和dhcp-devel-3.0pl1-23.i386.rpm。
安装的过程与dhclient相似,一
般在安装之前要查询已经安装的版本,或者使用rpm -Uvh进行升级安装。
[root@localhost RPMS]$ls dhcp*
dhcp-3.0pl1-23.i386.rpm dhcp-devel-3.0pl1-23.i386.rpm
[root@localhost RPMS]$rpm -ivh dhcp*
warning: dhcp-3.0pl1-23.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%] 1:dhcp ########################################### [ 50%]
2:dhcp-devel ########################################### [100%] 与DHCP相关的文件主要有以下一些:
12.2.2 配置DHCP
DHCP配置文件/etc/dhcpd.conf,在该文件中某些参数必须以option关键字开头,它们也被称为选项。
选项配置DHCP的可选选项,参数配置的是必选的或控制DHCP服务器行为的值。
在使用大括号({})的部分之前声明的参数(包括选项)通常被当做全局参数。
初始安装dhcpd服务时,不会创建/etc/dhcpd.conf,但是提供一份样本,可以在此样本的基础上修改,样本文件为:/usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample。
[root@localhost root]$cp /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample /etc/dhcpd.conf 缺省的样本文件的内容如下:
1 ddns-update-style interim;
2 ignore client-updates;
3
4 subnet 192.168.0.0 netmask 255.255.255.0 {
5
6 # --- default gateway
7 option routers 192.168.0.1;
8 option subnet-mask 255.255.255.0;
9
10 option nis-domain "";
11 option domain-name "";
12 option domain-name-servers 192.168.1.1;
13
14 option time-offset -18000; # Eastern Standard Time
15 # option ntp-servers 192.168.1.1;
16 # option netbios-name-servers 192.168.1.1;
17 # --- Selects point-to-point node (default is hybrid). Don't change this unless
18 # -- you understand Netbios very well
19 # option netbios-node-type 2;
20
21 range dynamic-bootp 192.168.0.128 192.168.0.255;
22 default-lease-time 21600;
23 max-lease-time 43200;
24
25 # we want the nameserver to appear at a fixed address
26 host ns {
27 next-server ;
28 hardware ethernet 12:34:56:78:AB:CD;
29 fixed-address 207.175.42.254;
30 }
31 }
配置文件说明:(所有以#开头的是注释)
第1行:指明 DNS更新方案,目前主要有两种特殊的DNS更新模式(ddns-update-style ad-hoc;)和过渡性DHCP-DNS互动草图更新模式(ddns-update-style interim;)第4-31行:定义一个子网断以及子网掩码
第7行:指定路由器地址
第12行:该行是一个可选参数,指定域名服务器的地址,入股有多个用逗号“,”隔开
第21行:指明可分配的IP地址范围
第22行:指明缺省的租赁时间
第23行:指明最长的租赁时间
地26-30行:指明分配固定IP地址的机器的硬件地址(MAC ADDRESS)和固定的IP 地址信息,如果有多台主机需要分配固定的IP地址可以重复26-30行。
必须为网络中的每个子网声明一个subnet,否则dhcp服务器可能无法启动,可以类似子网subnet声明组群group和共享网络shared-network,group 声明可以用来把全局
参应用到一组声明中,我们可以组合共享的网络、子网、主机或者其它群组。
所有共享通以武力网络的子网应该在shred-network声明之内声明,在shared-network之内,但是在被“{}”包围的subnet声明之外的参数全部被当作全局参数。
12.2.3 DHCP实例说明
例题:假设我们为192.168.0.0网段分配一个28位的子网,该子网采用DHCP
subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.0.1;#路由器地址
option subnet-mask 255.255.255.240;#分配一个28位的子网
option nis-domain "";
option domain-name ";#域名
option domain-name-servers 192.168.0.1;#域名服务器地址
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.0.1 192.168.0.15;#分配的IP地址范围
default-lease-time 21600;#租赁的IP地址的有效时间的缺省值
max-lease-time 43200;#最长租赁时间
#有时候需要长期分配给某些主机固定的IP地址,可以采用下面的方法
host bluebaby { #固定ip地址的主机名
option host-name "";#分配给客户机的主机名
hardware ethernet 00:0D:56:78:0B:29;#欲分配的主机的物理网卡地址
fixed-address 192.168.0.254;#分配的IP地址
}
}
对于欲固定分配的IP地址,一定要设置主机的物理地址,同时,分配的IP地址要在subnet节指定的IP范围内。
12.2.4 启动和停止DHCP服务
可以像其它的Linux服务一样启动和停止或者重起dhcpd 服务,如:
[root@localhost root]#service dhcpd start
或者使用启动脚本启动:
[root@localhost root]#/etc/rc.d/init.d/dhcpd start
如果系统连接了不止一个网卡,但是只想让DHCP服务器启动其中一块网卡,可以配置DHCP服务器只在那个设备上启动。
在/etc/sysconfig/dhcpd中,把接口的名称添加到DHCPDARGS的列表中:
#Command line options here
DHCPDARGS=eth0
如果希望系统启动时自动启动dhcp服务,可以使用chkconfig或者ntsysv将服务设置为自动启动。
[root@localhost root]# /sbin/chkconfig --level 345 dhcpd on
[root@localhost root]# /sbin/chkconfig --list |grep dhcpd
dhcpd 0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭
[root@localhost root]#
12.3 配置DHCP客户机
手工配置DHCP客户,需要修改/etc/sysconfig/network文件,并修改/etc/sysconfig/network-scripts目录中每个网络设备的配置文件。
在该目录中,每个设备都应该有一个叫做ifcfg-eth0的配置文件,eth0表示是第一块网卡。
文件应该包含以下行:
NETWORKING=yes
编辑/etc/sysconfig/network-scripts/ifcfg-eth0
文件应该包含以下几行:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
习题十二
选择题
操作题。