2.2.1 学习要点
1.知识点:明确在何种情况下使用DHCP理解IP地址的静态分配和动态分配,了解DHCP获得IP租约和更新IP租约的过程
2.技能点:掌握DHCP配置文件的参数设置,能按任务需求正确配置DHCP服务器
2.2.2 任务描述
安装DHCP软件,配置IP失效时间为1小时(3600秒),配置子网掩码为255.255.255.0,网关为172.17.4.254,DNS为61.128.192.68,分配IP范围172.17.4.210~172.17.4.220,通过172.17.4.210与某个MAC绑定,让该MAC的计算机得到固定的IP地址。
2.2.3 相关知识
1.DHCP概述
在TCP/IP网络上,每台工作站在能存取网络上的资源之前,都必须进行基本的网络配置,一些主要参数诸如IP地址、子网掩码、缺省网关、DNS等必不可少,还可能需要一些附加的信息,如IP管理策略之类。对于一个稍微大点的网络而言,网络的管理和维护的任务是相当繁重的。一台计算机从一个子网转移到另一个子网,就要重新对系统进行配置。对于普通水平的工作站用户是不能赋予他们配置自己的工作站网络的权限,而且也没有这个必要。因此,需要有一种机制来让TCP/IP的配置和管理从用户端转移到网络管理端,实现IP的集中式管理。解决方案就是用DHCP。
DHCP的全称是动态主机配置协议(Dynamic Host Configuration Protocol),由IETF(Internet网络工程师任务小组)设计,详尽的协议内容在RFC文档RFC2131和RFC1541里。目的就是为了减轻TCP/IP网络的规划、管理和维护的负担,解决IP地址空间缺乏问题。运行DHCP的服务器把TCP/IP网络设置集中起来,动态处理工作站IP地址的配置,用DHCP租约和预置的IP地址相联系,DHCP租约提供了自动在TCP/IP网络上安全地分配和租用IP地址的机制,实现IP地址的集中式管理,基本上不需要网络管理人员的人为干预。
2.DHCP的工作过程
DHCP分为两个部分:一个是服务器端,另一个是客户端。所有客户机的IP地址设定资料都由DHCP服务器集中管理,并负责处理客户端的DHCP要求;而客户端则会使用从服务器分配下来的IP地址。
DHCP服务器提供三种IP分配方式:自动分配(Automatic Allocation)、动态分配(Dynamic Allocation)和手动分配。自动分配是当DHCP客户端第一次成功地从DHCP服务器端分配到一个IP地址之后,就永远使用这个地址。动态分配是当DHCP客户端第一次从DHCP服务器分配到IP地址后,并非永久地使用该地址,每次使用完后,DHCP客户端就得释放这个IP地址,以给其他客户端使用,而手动分配是由DHCP服务器管理员专门指定IP地址。
DHCP客户机在启动时,会搜寻网络中是否存在DHCP服务器。如果找到,则给DHCP服务器发送一个请求。DHCP服务器接到请求后,为DHCP客户机选择TCP/IP配置的参数,并把这些参数发送给客户端。如果已配置冲突检测设置,则DHCP服务器在将租约中的地址提供给客户机之前会试用Ping测试作用域中每个可用地址的连通性。这可确保提供给客户的每个IP地址都没有被使用手动TCP/IP配置的另一台非DHCP计算机使用。
根据客户端是否第一次登录网络,DHCP的工作形式会有所不同。客户端从DHCP服务器上获得IP地址的整个过程分为以下六个步骤:
(1)寻找DHCP服务器
当DHCP客户端第一次登录网络的时候,计算机发现本机上没有任何IP地址设定,DHCP客户机初始化TCP/IP,通过UDP端口67向网络中发送一个DHCP DISCOVER广播包,请求租用IP地址,如图2.2.1所示。该广播包中的源IP地址为0.0.0.0,目标IP地址为255.255.255.255;包中还包含客户机的MAC地址和计算机名。网络上每一台安装了TCP/IP协议的主机都会介绍这个广播信息,但只有DHCP服务器才会做出响应。

图2.2.1 广播IP请求
(2)分配IP地址
在网络中接收到DHCP DISCOVER发现信息的DHCP服务器都会做出相应,它从尚未分配的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含分配的IP地址和其他设置的DHCP OFFER提供信息,如图2.2.2所示。

图2.2.2 DHCP服务器响应
(3)选择阶段
即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCP OFFER提供信息,则DHCP客户机只接受第一个收到的DHCP OFFER提供信息,然后它就以广播方式回答一个DHCP REQUEST请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容,如图2.2.3所示。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。

图2.2.3 广播IP选择结果
(4)IP地址分配确认
当DHCP服务器收到DHCP客户端回答的DHCP REQUEST请求信息之后,便向DHCP客户端发送一个包含它所提供的IP地址和其他设置的DHCP ACK确认信息,告诉DHCP客户端可以使用它提供的IP地址,如图2.2.4所示。然后,DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除了DHCP客户机选中的服务器外,其他的DHCP服务器将收回曾经提供的IP地址。

图2.2.4 IP地址确认
(5)重新登录
以后DHCP客户端每次重新登录网络时,就不需要再发送DHCPDISCOVER发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP REQUEST请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ACK确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时,则DHCP服务器给DHCP客户机回答一个DHCP NACK否认信息。当原来的DHCP客户机收到此DHCP NACK否认信息后,它就必须重新发送DHCP DISCOVER信息来请求新的IP地址。
(6)更新租约
DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。
3.DHCP服务器的配置文件
DHCPd默认的配置文件是/etc/dhcpd.conf。系统安装完成,并没有这个文件,需要自己从sample样板文件里拷贝。这是一个文本文件,DHCPd里有一个语法分析器,能对这个文件进行语法分析,获得配置参数。dhcpd.conf格式是递归下降的,关键字大小写敏感,可以有注释,注释以#开头,一直到该行结束。这里给出一个简单的dhcpd.conf的例子。
ddns-update-style interim;
//打开动态DNS的更新,如果想关闭,可以把参数interim改为none
ignore client-updates;
//不允许客户机更新DNS记录
subnet 172.17.4.0 netmask 255.255.255.0{
#—default gateway
option routers 172.17.4.254;
//指明在客户子网内的路由器的地址,可以有多个,中间用逗号分隔
option subnet-mask 255.255.255.0;
//设置本地的子网掩码
# option nis-domain “domain.org”;
# option domain-name “domain.org”;
//提供给客户机的域名
option domain-name-servers 172.17.4.232;
//提供给客户机的DNS地址
option time-offset -18000;#Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
#—Selects point-to-point node(default is hybrid).Don’t change this unless
#—you understand Netbios very well
# option netbios-node-type 2;range dynamic-bootp 172.17.4.128 172.17.4.250;
//设定地址范围
default-lease-time 21600;
//指定缺省租约时间,这里的time是以秒为单位的。如果DHCP客户在请求一个租约但没有指定租约的失效时间,租约时间就是缺省租约时间。
max-lease-time 43200;
//最大的租约时间。如果DHCP在请求租约时间时有发出特定的租约失效时间的请求,则用最大租约时间。
#we want the nameserver to appear at a fixed address
#host ns{
//对于单台主机的固定地址
#next-servermarvin.redhat.com;
#hardware ethernet 00:A0:B0:00:09:36;
//主机的网卡的硬件(MAC)地址
#fixed-address 172.17.4.230;
//静态指定的地址
#}
}
4.DHCP服务器的启动
要启动DHCPd,简单地键入service dhcpd start既可。
以上就是DHCPd常用配置,实际应用DHCP还要考虑IP分配的一些策略问题,同时要保证网络的健壮性,必须至少要有两台DHCP服务器一起工作,如果一台出了故障,另一台可以继续为DHCP客户服务。然而目前DHCP协议里并没有能让两台DHCP服务器协同工作的机制,不能保证分配的地址的唯一性,所以这两台DHCP服务器里的可分配地址空间必须进行调整,不能有交叉重复的IP地址。
2.2.4 任务实施
安装DHCP软件,配置IP失效时间为1小时(3600秒),配置子网掩码为255.255.255.0,网关为172.17.4.254,DNS为61.128.192.68,分配IP范围172.17.4.210~172.17.4.220,通过172.17.4.210与某个MAC绑定,让该MAC的计算机得到固定的IP地址。任务步骤如下:
1.下载安装DHCP服务软件
(1)从RedHat安装盘上把dhcp-3.0.5-13.el5.i386.rpm文件拷贝到本地的Linux服务器上。
(2)用rpm指令安装DHCP服务软件,会看到如图2.2.5所示的安装的进度显示。

图2.2.5 DHCP安装进度
2.编辑dhcpd配置文件
(1)查看/etc/dhcpd.conf配置文件
[root@localhost/]#cd/etc
[root@localhost etc]#cat dhcpd.conf
#DHCP Server Configuration file.
#see/usr/share/doc/dhcp∗/dhcpd.conf.sample
表明dhcpd.conf文件内容要从以上的dhcpd.conf.sample中得到
(2)拷贝dhcpd.conf.sample文件为dhcpd.conf
[root@localhost etc]#cp/usr/share/doc/dhcp∗/dhcpd.conf.sample dhcpd.conf
cp:是否覆盖“dhcpd.conf”?y
(3)编辑dhcpd.conf
[root@localhost etc]#vim dhcpd.conf
根据任务需求修改文件参数
ddns-update-style interim;
ignore client-updates;
subnet 172.17.4.0 netmask 255.255.255.0{//指定DNS网络地址与子网掩码

3.启动dhcpd服务器
[root@localhost dhcpd]#service dhcpd start
启动dhcpd: [确定]
4.设定dhcpd服务的启动模式
[root@localhost etc]#chkconfig—list|grep dhcpd//查询dhcpd服务状态
dhcpd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
[root@localhost etc]#chkconfig—level 35 dhcpd on//在运行级别3,5下开启dhcpd服务
[root@localhost etc]#chkconfig—list|grep dhcpd
dhcpd 0:关闭 1:关闭 2:关闭 3:启用 4:关闭 5:启用 6:关闭
通过chkconfig指令把dhcpd服务在开机3与5模式下就自动启动服务
5.客户机Linux的配置
#vim/etc/sysconfig/network
NETWORKING=yes (让引导的时候启动联网)
然后再修改你的网卡配置文件
#vim /etc/sysconfig/network-scriptes/ifcfg-eth0文件
应该包含这几行
DEVICE=eth0//网卡设备名
BOOTPROTO=dhcp//设置IP地址获得方式为DHCP
ONBOOT=yes//系统启动时自动激活该网卡
6.客户机Windows下配置
将客户机IP地址获取设置为自动,如图2.2.6所示。

图2.2.6 客户机Windows下的配置
2.2.5 考核要点
表2.2.1 DHCP服务器架设考核要点

2.2.6 能力拓展
一、填空
1.DHCP服务器的主要功能是:动态分配( )。
2.DHCP服务器安装好后并不是立即就可以给DHCP客户端提供服务,它必须经过一个“__________”步骤。未经此步骤的DHCP服务器在接收到DHCP客户端索取IP地址的要求时,并不会给DHCP客户端分派IP地址。
二、选择
1.使用“DHCP服务器”功能的好处是( )。
A.降低TCP/IP网络的配置工作量
B.增加系统安全与依赖性
C.对那些经常变动位置的工作站DHCP能迅速更新位置信息
D.以上都是
2.要实现动态IP地址分配,网络中至少要求有一台计算机的网络操作系统中安装( )。
A.DNS服务器
B.DHCP服务器
C.IIS服务器
D.PDC主域控制器
三、问答
1.如何安装DHCP服务器?
2.简述DHCP的工作过程?

