家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生 家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生
当前位置: 电脑硬件维修培训网网络技术动态主机配置协议
文章内容

动态主机配置协议

作者:佚名  来源:本站整理  发布时间:2012-04-08 22:45:35
 

动态主机配置协议

动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)在TCP/IP网络上使客户机获得配置信息的协议,它是基于BOOTP协议,并在BOOTP协议的基础上添加了主动分配可用网络地址等功效。这两个协议可以通过一些机制互操作。

DHCP向网络主机供给配置参数,它由两个基础部分组成:一部分是向网络主机传送专用的配置信息,另一部分是给主机分配网络地址。DHCP是基于客户/服务器模式的,这种模式下,专门指定的主机分配网络地址,传送网络配置参数给需要的网络主机,被指定的主机称为服务器。我们以后将供给DHCP服务的主机称为服务器,把吸收信息的主机称为客户。不能随便谁都可以成为DHCP服务器,这需要管理员进行人为指定。由于网络中硬件和软件的多样性,使得任何一台主机随便响应DHCP恳求的问题得到懂得决,如果有一台机器可以随便响应的话,它也无法给用户供给正确的配置参数,而配置TCP/IP协议的参数又那么多,因此使得这种任意的响应成了不可能的事情。而散布式地分配网络地址要利用一些机制来防止地址重用,但是由于是散布式分配,有时真是防不胜防,无法从根本上杜绝网络地址冲突的问题。

DHCP支撑三种IP地址分配方法。第一种是主动分配,DHCP给用户分配一个永久的IP地址。第二种是动态分配,在这种情况下,用户可以取得一个IP地址,但是是有时间限制的。第三种是手工分配,在这种方法下,用户的IP地址是由管理员手工指定的,这种情况下,DHCP服务器只需要将这个指定的IP地址传送给用户即可。至于用什么样的分配方法,不同的网络各不雷同。

动态分配是唯一一种容许主动重用地址的机制。因此,这种方法对于有临时上网用户,而且网络的IP地址资源又不是多得没法用的时候特别有用。而手工指定对于管理不渴望利用动态IP地址的用户十分方便,不会因为手工指定而和DHCP冲突或和别的已经分配的地址冲突。这里的要害渴望大家能够懂得,DHCP是一种相对集中式的管理方法。

DHCP信息包的格式是基于BOOTP包格式的,这使得BOOTP客户可以访问DHCP服务器。DHCP中利用了BOOTP的转发代理,这样就避免了在每个物理网段都设一个DHCP服务器的情况。

有许多协议与DHCP的功效类似,也同时为DHCP供给服务。反向地址解析协议(Reverse Address Resolution Protocol,RARP)用于创造网络地址和主动IP地址分配。小文件传输协议(Trivial File Transfer Protocol,TFTP)用于从启动服务器传送启动镜象。Internet把持信息协议(Internet Control Message Protocol,ICMP)用于向主机发送有关附加路由器信息。ICMP还被用于传送子网掩码信息和其它信息。主机也可能通过ICMP的路由寻找功效定位路由器 。BOOTP是用于传送配置信息的方法,它是可扩大的,正式的扩大在一些配置参数中定义。麻省理工学院的Athena工程中利用的网络信息协议(Network Information Protocol,NIP)采用散布式动态IP地址分配。资源定位协议(Resource Location Protocol,RLP)供给了高层服务定位。由于Sun公司不爱好工作站在启动时的漫长过程,所以利用了RARP,TFTP和远程过程调用(RPC)机制,并称之为"bootparams",这种机制是用来为无硬盘主机传送配置信息和操作系统代码。一些Sun网络也在利用动态RARP(DRARP)和主动安装机制使新参加的主机主动配置。

在其它一些相干的工作中,路径最小传输单元(MTU)寻找算法使得寻找MTU的大小成为了可能。地址解析协议(Address Resolution Protocol,ARP)也被用于一种传输协议进行资源和定位和选择。

DHCP是用于向客户传送配置信息的,客户从DHCP服务器那里获得配置信息后应当可以和Internet上任何一台主机通信。TCP/IP协议栈参数请在本文后面寻找。在初始化一台主机时并不需要配置所有这些参数,客户和服务器可以通过一种切磋机制决定传送哪些参数。DHCP容许(不恳求)客户参数配置不直接与IP协议相干,而且它也不将最参加的主机参加域名系统(DNS)中。

有一些名词需要解释一下,DHCP客户和DHCP服务器已经在前面说过了,这里就不再阐明了。BOOTP转发代理或转发代理是一台Internet主机或路由器,它用于在DHCP客户和DHCP服务器间传送配置信息。绑定是一些配置参数,它至少应当包含IP地址,绑定由DHCP服务器管理。

DHCP的设计目标如下:

1.DHCP应当是一种机制而不是策略,它必须容许本地系统管理员把持配置参数,本地系统管理员应当能够对所渴望管理的资源管理进行有效地管理。

2.客户不需要进行手工配置,客户应当在不参与的情况下创造合适于本地机的配置参数,并利用这些参数加以配置。

3.不需要对单个客户配置网络。在通常情况下,网络管理员没有必须输入任何预先设计好的用户配置参数。

4.DHCP不需要在每个子网上要一个服务器,为了经济的原因,它DHCP服务器必须可以和路由器和BOOTP转发代理一起工作。

5.DHCP客户必须可能对多个DHCP服务器供给的服务作出响应。出于网络牢固与安全的考虑,有时需要为网络参加多个DHCP服务器。

6.DHCP必须静态配置,而且必须以现存的网络协议实现。

7.DHCP必须能够和BOOTP转发代理互操作。

8.DHCP必须能够为现有的BOOTP客户供给服务。

 

下面几个设计目标是对于网络层参数的设计而言的,在网络层参数上,DHCP必须可以做到以下几点:

9.不容许有几个客户同时利用一个网络地址。

10.在DHCP客户重新启动后仍然能够保存它本来的配置参数,如果可能,客户应当被指定为雷同的配置参数。

11.在DHCP服务器重新启动后仍然能够保存客户的配置参数,如果可能,即使DHCP机制重新启动,也应当能够为客户分配原有的配置参数。

12.能够为新参加的客户主动供给配置参数。

13.支撑对特定客户永久固定分配网络地址。

 

在下面我们看一下DHCP的具体问题。从客户的观点来看,DHCP不过是BOOTP的扩大。这样就可以使现有的BOOTP用户在不进行任何修正的情况下利用DHCP。图一和表一描写了DHCP信息包的格式和信息包内每个字段的意义。请注意括号内的数字,它表现此字段的大小。我们老是提到BOOTP,它和DHCP的重要差别有两点,一点是DHCP对客户分配网络地址时不是无穷期的,第二点是DHCP在供给网络地址时还供给了其它配置参数。熟悉BOOTP协议的可以对照一下两个协议的不同点。下图定义了DHCP消息格式:

DHCP消息格式

DHCP定义了一个新的“客户标识”选项,它是用来显式地将客户标识传送给DHCP服务器的。这个转变是针对BOOTP信息包中'chaddr'域即作为BOOTP转发信息的硬件地址又作为用户信息的情况而进行的。这个标记对于DHCP服务器来说没有什么意义,它可以是硬件地址,也可以是什么别的东西,反正只要是对于这个DHCP服务器管理的每个子网段内的客户是唯一的就可以了。客户一旦在一个信息包中利用了这个选项,以后的信息包内的这个选项必须和第一次利用时一致,这样DHCP服务器才可以正确地辨识客户。

 

字节

描写

op

1

消息op代码/消息类型1 = BOOTREQUEST, 2 = BOOTREPLY

htype

1

硬件地址类型

hlen

1

硬件地址长度

hops

1

客户需要将这一项设置为零,当通过转发代理启动时可以供转发代理利用。

xid

4

操作ID,这是一个随机数,用于客户和服务器之间同步消息和消息的响应。

secs

2

由客户指定的时间,指的是开始地址获取和更新进行后的时间。

flags

2

请参阅图2。

ciaddr

4

用户IP地址,此字段仅当用户处于BOUND,RENEW或REBINDING状态和能够响应ARP恳求时利用。

yiaddr

4

客户IP地址

siaddr

4

用于bootstrap过程中的IP地址

giaddr

4

转发代理IP地址

chaddr

16

客户硬件地址

sname

64

可选的服务器主机名

file

128

启动文件名

options

不定

可选的参数字段

options字段的长度不定,DHCP客户可能会从服务器那里吸收到长度大于576字节的包。DHCP客户也可以利用最大DHCP包长度字段恳求服务器传送的包长度在必定限度之内。在客户利用DHCP进行配置的时候,DHCP需要利用TCP/IP软件,在配置好IP地址之前,TCP/IP软件应当能够吸收并转发发送到客户硬件地址上的IP包;DHCP服务器和BOOTP转发代理在TCP/IP软件未配置好之前不能向未吸收硬件单播报文的客户传送DHCP消息。如果客户在TCP/IP软件未能配置好之前实在不能吸收IP单播报文,DHCP可以利用“标记”域进行工作。请注意下图中的那个B,它代表广播标记。至于这个标记的具体内容,我们在文章的后面几节内讨论。至于其它各位,它们是保存的,它们的值只能由客户设置为0。服务器和转发代理不会理会这一字段的内容。

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|B|                     全为0                            |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

B: 广播标记位

上图表现了标记位的格式。前面已经提到过了,DHCP的一个重要功效就是能够向客户供给网络配置参数,这种存储模型实际上就是DHCP服务为每个客户保存了一个要害字,这个要害字中保存了保存了用户特有的标记和客户的配置参数。要害字可能是一个二元组(IP子网号,硬件地址),这种设计考虑到不同子网内的硬件地址可能是一样的,所以要参加一个子网号加以差别。当然要害字也可以是(IP子网号,主机名),这是为了照顾客户机会经常在不同子网间转换,或者经常转变物理地址的情况。在协议规定是,要害字需要是(IP子网号,物理地址),当然了,如果客户在信息包中显式地利用了“客户标记”这一字段的话就不这样利用了。客户可以通过查询DHCP服务器取得配置信息。

DHCP的另外一个重要特点就是能够动态地分配网络地址,这种动态分配的机制是很简略的:客户会恳求利用某一网络地址一段时间,服务器就对客户说:“好的,在这一段时间内,这个地址我不给别人。”当客户利用完这一地址后再次申请时,服务器总是优先将它利用过的地址再次分配给它。我们把这种分配称为一种“租用”。说到租用,当然了,客户也可以恳求增长租用期,当客户不再利用这一地址时,它就把它还给服务器。客户也可以恳求永久租用,这个永久对可不是永远,当服务器感到客户机可能已经不存在时,它可以再次把这一地址分配给别的机器利用。当网络内地址不够用的时候,永久的分配就不可能了,当地址不够用的时候,由客户归还的地址还要被持续利用,这几乎是人人都可以想得到的,服务器可以利用配置信息库内的信息援助它决定分配哪一个地址,比如说它可以选择最近最少利用的地址进行分配。为了安全起见,服务器应当在分配前利用ICMP协议进行探测,保证这个地址没有机器利用,客户也应当能够利用一些协议(如ARP)探测新吸收的地址是不是被人利用。

下面我们来说一下服务器客户协议的内容。DHCP利用BOOTP消息格式,这种格式请见表1和图1。在每个由客户发送到服务器消息的'op'字段中包含了一个BOOTREQUEST,而在服务器发送到客户消息内的'op'字段则包含了一个BOOTREPLY。DHCP信息包内'options'字段包含了十进制数99,130,83和99,这几个值。其余的处所是称为“选项”的标记参数。有几个参数定义也没几天,大家应当注意其中的一个重要的选项“DHCP消息类型”选项,这一项必须在每个DHCP信息包中存在,其它的选项有的是必须的,有的不是必须的,有的根本就是可有可无。在下文中,消息格式就以这一选项的内容决定。

在下面的表2和图3中描写了DHCP协议包中信息的意义以及DHCP客户与服务器交换信息的流程图。下面我们就过程简述如下:

1. 客户会首先进行广播,它要地址当然是它先开口,它在本子网段内广播一个DHCPDISCOVER消息,这个消息内可能包含了它渴望租用的网络处所和租用时间。BOOTP转发代理可以将这个消息传送到不在这个网段内的DHCP服务器上。

2. 每个有空闲地址的DHCP服务器都响应这个消息,在响应消息中包含了可用的地址,这个地址在消息的'yiaddr'字段中,其它的配置参数在DHCP选项中。服务器无需要保存已经分配的地址,虽然这样可能想起来更有效率。在分配时,因为未保存已经分配的地址,服务器必须想措施知道这个地址未被别的客户利用,服务器可以利用ICMP协议的回应恳求进行。在分配地址时,服务器有时候可能需要利用BOOTP转发代理,这一点要在实现上给予支撑。下表是各种消息及其利用:

 

消息          功效

-------       ---

DHCPDISCOVER - 客户进行广播以断定本地可用的服务器。

DHCPOFFER    - 服务器给客户的应答,在其中包含了配置参数。

DHCPREQUEST  - 此消息是客户发送给服务器的,作用有三个:客户从一台服务器上恳求配置信息(在这个时候客户也就拒绝了其它服务器发来的地址,客户就用这个地址了);在系统重新启动后,客户利用这个消息确认本来分配的网络地址仍然有效;客户还可以腹这个地址对特定的网络地址租用时间恳求延期。

DHCPACK      - 服务器发向用户的消息,包含了配置参数和网络地址。

DHCPNAK      - 服务器发向用户的消息,告诉客户当前利用的网络地址无效或租期已满。

DHCPDECLINE  - 客户发向服务器的消息,告诉服务器此地址已被利用。

DHCPRELEASE  - 客户发向服务器的消息,告诉服务器此地址不再利用。

DHCPINFORM   - 客户发向服务器的消息,恳求服务器发送本地配置信息,客户已经配置好了网络地址,不需要再发送网络地址了。

时间流图

3. 客户将会吸收到一个或多个服务器发来的地址和配置参数。客户可以不用那么急于回应哪一个地址,它也可以挑的。当选择好了以后,客户广播DHCPREQUEST消息,在这个消息中的“服务器标记”字段中必须包含选定的服务器的标记,此消息中也可以包含渴望获得的网络配置参数,而“恳求IP地址”选项则要填写服务器发来信息包中'yiaddr'的内容,也就是服务器给客户供给的IP地址。DHCPREQUEST消息在本网段广播,并通过DHCP/BOOTP转发代理向不同网段转发。如果客户在规定时间内没有收到任何服务器的回应,它会再次发送DHCPDISCOVER。

 

4. 许多服务器会吸收到DHCPREQUEST广播,那些没有被选择的服务器将DHCPREQUEST视为拒绝包。那个被选择的服务器会记载这个地址已经有人用了,并以包含配置参数的DHCPACK包返回给客户。“客户标记”字段和指定的网络地址用以唯一断定一个客户。服务器发送的DHCPACK包内的参数不应当和本来发送的DHCPOFFER包内的内容有冲突,服务器也不在这时再次检测供给的网络地址,在DHCPACK包内的'yiaddr'字段包含了选择的网络地址。如果被选的主机不能满足DHCPREQUEST包内的恳求,它应当以DHCPNAK包回复。服务器可以将DHCPOFFER包内包含的地址设置为不可用,也可以不设置,但是如果服务器没有从客户那儿吸收到DHCPREQUEST包,此地址必定要保证是可用的。

)

本消息共2页,当前在第1页  1  2  

在线报名
友情链接