DHCP服务器的工作原理
本章要点
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务器的工作原理。
安装DHCP服务器。
DHCP服务器的故障排除。
DHCP用于为计算机自动提供IP地址、子网掩码和路由信息。网络管理员通常会分配某个范围的IP地址来分发给局域网上的客户机,当设备接入这个局域网时,它们会向DHCP服务器请求一个IP地址。然后DHCP服务器为每个请求的设备分配一个地址,直到分配该范围内的所有IP地址为止。已经分配的IP地址必须定时地延长借用期,这个延期的过程称做“leasing”,确保当客户机设备在正常地释放IP地址之前突然从网络断开时被分配的地址可以归还给服务器。本章以RHEL 5.0为例介绍如何建立一个完整和安全的DHCP服务器。
8.1 DHCP服务器的工作原理
8.1.1 DHCP简介
DHCP的前身是BOOTP,它工作在OSI的应用层,是一种帮助计算机从指定的DHCP服务器获取配置信息的自举协议。DHCP使用客户端/服务器模式,请求配置信息的计算机叫做“DHCP客户端”,而提供信息的叫做“DHCP服务器”。DHCP为客户端分配地址的方法有3种,即手工配置、自动配置和动态配置。DHCP最重要的功能就是动态分配,除了IP地址,DHCP还为客户端提供其他的配置信息,如子网掩码,从而使得客户端无须用户动手即可自动配置并连接网络。
8.1.2 为什么使用DHCP
DHCP在快速发送客户网络配置方面很有用,当配置客户端系统时,若管理员选择DHCP,则不必输入IP地址、子网掩码、网关或DNS服务器,客户端从DHCP服务器中检索这些信息。DHCP在网络管理员想改变大量系统的IP地址时也有用,与其重新配置所有系统,不如编辑服务器中的一个用于新IP地址集合的DHCP配置文件。如果某机构的DNS服务器改变,这种改变只须在DHCP服务器中,而不必在DHCP客户端上进行。一旦客户端的网络被重新启动(或客户端重新引导系统),改变就会生效。除此之外,如果便携电脑或任何类型的可移动计算机被配置使用DHCP,只要每个办公室都有一个允许其联网的DHCP服务器,它就可以不必重新配置而在办公室间自由移动。
8.1.3 DHCP的工作流程
1.发现阶段
即DHCP客户端查找DHCP服务器的阶段。客户机以广播方式(因为DHCP服务器的IP地址对于客户端来说是未知的)发送DHCP discover信息来查找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。
2.提供阶段
即DHCP服务器提供IP地址的阶段,在网络中接收到DHCP discover信息的DHCP服务器都会做出响应。它从尚未出租的IP地址中挑选一个分配给DHCP客户端,向其发送一个包含出租的IP地址和其他设置的DHCP offer信息。
3.选择阶段
即DHCP客户端选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户端发送DHCP offer信息,则DHCP客户端只接受第1个收到的DHCP offer信息。然后它就以广播方式回答一个DHCP request信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有DHCP服务器,它将选择某台DHCP服务器所提供的IP地址。
4.确认阶段
即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户端回答的DHCP request信息之后,它向DHCP客户端发送一个包含其所提供的IP地址和其他设置的DHCP ACK信息,告诉DHCP客户端可以使用该IP地址,然后DHCP客户端便将其TCP/IP与网卡绑定。另外,除DHCP客户端选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。
5.重新登录
以后DHCP客户端每次重新登录网络时,不需要发送DHCP discover信息,而是直接发送包含前一次所分配的IP地址的DHCP request信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户端继续使用原来的IP地址,并回答一个DHCP ACK信息。如果此IP地址已无法再分配给原来的DHCP客户端使用(比如此IP地址已分配给其他DHCP客户端使用),则DHCP服务器给DHCP客户端回答一个DHCP NACK信息。当原来的DHCP客户端收到此信息后,必须重新发送DHCP discover信息来请求新的IP地址。
6.更新租约
DHCP服务器向DHCP客户端出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回该IP地址。如果DHCP客户端要延长其IP租约,则必须更新其IP租约。DHCP客户端启动时和IP租约期限过一半时,DHCP客户端都会自动向DHCP服务器发送更新其IP租约的信息。
DHCP的设计目标
8.1.4 DHCP的设计目标
DHCP的设计目标如下。
(1)DHCP应该是一种机制而不是策略,它必须允许本地系统管理员控制配置参数,本地系统管理员应该能够对所希望管理的资源进行有效的管理。
(2)客户端不需要手工配置,而应该在不参与的情况下发现合适于本地机的配置参数,并利用这些参数加以配置。
#p#(3)不需要为单个客户端配置网络,在通常情况下,网络管理员没有必要输入任何预先设计好的用户配置参数。
(4)DHCP不需要在每个子网上配置一台服务器,出于经济原因,DHCP服务器必须可以和路由器或BOOTP转发代理一起工作。
(5)DHCP客户端必须能对多个DHCP服务器提供的服务做出响应,出于网络稳定与安全的考虑,有时需要在网络中添加多台DHCP服务器。
(6)DHCP必须静态配置,而且必须用现存的网络协议实现。
(7)DHCP必须能够和BOOTP转发代理互操作。
(8)DHCP必须能够为现有的BOOTP客户端提供服务。
(9)不允许有多个客户端同时使用一个网络地址。
(10)在DHCP客户端重新启动后仍然能够保留其原先的配置参数,如果可能,客户端应该被指定为相同的配置参数。
(11)在DHCP服务器重新启动后仍然能够保留客户端的配置参数,如果可能,即使DHCP机制重新启动,也应该能够为客户端分配原有的配置参数。
(12)能够为新加入的客户端自动提供配置参数。
(13)支持对特定客户端永久固定分配网络地址。
上面(9)~(13)的设计目标是对于网络层参数的设计而言的,在网络层参数上,DHCP必须做到这几点。
8.2 安装DHCP服务器
8.2.1 DHCP配置文件
可以使用RHEL 5.0自身携带的RPM包安装,安装结束后DHCP端口监督程序dhcpd配置文件是/etc目录中的名为dhcpd.conf的文件。下面手工建立/etc/dhcpd.conf文件,该文件通常包括3个部分,即parameters参数、declarations声明和option选项。
1.DHCP配置文件中的parameters
parameters表明如何执行任务,以及是否要执行任务或将哪些网络配置选项发送给客户端,主要参数如表8-1所示。
表8-1 DHCP配置文件中的主要参数
参 数解 释
ddns-update-style配置DHCP-DNS互动更新模式
default-lease-time指定默认租赁时间的长度,单位是秒
max-lease-time指定最大租赁时间长度,单位是秒
hardware指定网卡接口类型和MAC地址
server-name通知DHCP客户端服务器名称
get-lease-hostnames flag检查客户端使用的IP地址
fixed-address ip分配给客户端一个固定的地址
authritative拒绝不正确的IP地址的要求
2.DHCP配置文件中的declarations
declarations用来描述网络布局及提供客户的IP地址等,主要声明如表8-2所示。 声 明解 释
shared-network用来告知是否一些子网络共享相同网络
subnet描述一个IP地址是否属于该子网
range起始IP终止IP提供动态分配IP的范围
host主机名称参考特别的主机
group为一组参数提供声明
续表
声 明解 释
allow unknown-clients﹔deny unknown-client是否动态分配IP给未知的使用者
allow bootp;deny bootp是否响应激活查询
allow booting﹔deny booting是否响应使用者查询
filename开始启动文件的名称,应用于无盘工作站
next-server设置服务器从引导文件中装入主机名,应用于无盘工作站
【编辑推荐】