ImageVerifierCode 换一换
格式:DOC , 页数:21 ,大小:178KB ,
资源ID:4047404      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-4047404.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(动态主机配置协议.doc)为本站会员(hw****26)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

动态主机配置协议.doc

1、动态主机配置协议动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)在 TCP/IP网络上使客户机获得配置信息的协议,它是基于 BOOTP协议,并在 BOOTP协议的基础上添加了自动分配可用网络地址等功能。这两个协议可以通过一些机制互操作。DHCP向网络主机提供配置参数,它由两个基本部分组成:一部分是向网络主机传送专用的配置信息,另一部分是给主机分配网络地址。DHCP是基于客户/服务器模式的,这种模式下,专门指定的主机分配网络地址,传送网络配置参数给需要的网络主机,被指定的主机称为服务器。我们以后将提供 DHCP服务的主机称为服务器,把接收信息的

2、主机称为客户。不能随便谁都可以成为 DHCP服务器,这需要管理员进行人为指定。由于网络中硬件和软件的多样性,使得任何一台主机随便响应 DHCP请求的问题得到了解决,如果有一台机器可以随便响应的话,它也无法给用户提供正确的配置参数,而配置 TCP/IP协议的参数又那么多,因此使得这种任意的响应成了不可能的事情。而分布式地分配网络地址要使用一些机制来防止地址重用,但是由于是分布式分配,有时真是防不胜防,无法从根本上杜绝网络地址冲突的问题。 DHCP支持三种 IP地址分配方法。第一种是自动分配,DHCP 给用户分配一个永久的 IP地址。第二种是动态分配,在这种情况下,用户可以取得一个 IP地址,但是

3、是有时间限制的。第三种是手工分配,在这种方法下,用户的 IP地址是由管理员手工指定的,这种情况下,DHCP 服务器只需要将这个指定的 IP地址传送给用户即可。至于用什么样的分配方法,不同的网络各不相同。动态分配是唯一一种允许自动重用地址的机制。因此,这种方法对于有临时上网用户,而且网络的 IP地址资源又不是多得没法用的时候特别有用。而手工指定对于管理不希望使用动态 IP地址的用户十分方便,不会因为手工指定而和DHCP冲突或和别的已经分配的地址冲突。这里的关键希望大家能够理解,DHCP是一种相对集中式的管理方式。DHCP信息包的格式是基于 BOOTP包格式的,这使得 BOOTP客户可以访问 DH

4、CP服务器。DHCP 中使用了 BOOTP的转发代理,这样就避免了在每个物理网段都设一个 DHCP服务器的情况。有许多协议与 DHCP的功能相似,也同时为 DHCP提供服务。反向地址解析协议(Reverse Address Resolution Protocol,RARP)用于发现网络地址和自动IP地址分配。小文件传输协议(Trivial File Transfer Protocol,TFTP)用于从启动服务器传送启动镜象。Internet 控制信息协议(Internet Control Message Protocol,ICMP)用于向主机发送有关附加路由器信息。ICMP 还被用于传送子网掩

5、码信息和其它信息。主机也可能通过 ICMP的路由寻找功能定位路由器 。BOOTP 是用于传送配置信息的方法,它是可扩展的,正式的扩展在一些配置参数中定义。麻省理工学院的 Athena工程中使用的网络信息协议(Network Information Protocol,NIP)采用分布式动态 IP地址分配。资源定位协议(Resource Location Protocol,RLP)提供了高层服务定位。由于Sun公司不喜欢工作站在启动时的漫长过程,所以使用了 RARP,TFTP 和远程过程调用(RPC)机制,并称之为“bootparams“,这种机制是用来为无硬盘主机传送配置信息和操作系统代码。一些

6、 Sun网络也在使用动态 RARP(DRARP)和自动安装机制使新加入的主机自动配置。在其它一些相关的工作中,路径最小传输单元(MTU)寻找算法使得寻找 MTU的大小成为了可能。地址解析协议(Address Resolution Protocol,ARP)也被用于一种传输协议进行资源和定位和选择。DHCP是用于向客户传送配置信息的,客户从 DHCP服务器那里获得配置信息后应该可以和 Internet上任何一台主机通信。TCP/IP 协议栈参数请在本文后面寻找。在初始化一台主机时并不需要配置所有这些参数,客户和服务器可以通过一种商讨机制决定传送哪些参数。DHCP 允许(不要求)客户参数配置不直接

7、与 IP协议相关,而且它也不将最加入的主机加入域名系统(DNS)中。有一些名词需要解释一下,DHCP 客户和 DHCP服务器已经在前面说过了,这里就不再说明了。BOOTP 转发代理或转发代理是一台 Internet主机或路由器,它用于在 DHCP客户和 DHCP服务器间传送配置信息。绑定是一些配置参数,它至少应该包括 IP地址,绑定由 DHCP服务器管理。DHCP的设计目标如下:1DHCP 应该是一种机制而不是策略,它必须允许本地系统管理员控制配置参数,本地系统管理员应该能够对所希望管理的资源管理进行有效地管理。2客户不需要进行手工配置,客户应该在不参与的情况下发现合适于本地机的配置参数,并利

8、用这些参数加以配置。3不需要对单个客户配置网络。在通常情况下,网络管理员没有必须输入任何预先设计好的用户配置参数。4DHCP 不需要在每个子网上要一个服务器,为了经济的原因,它 DHCP服务器必须可以和路由器和 BOOTP转发代理一起工作。5DHCP 客户必须可能对多个 DHCP服务器提供的服务作出响应。出于网络稳定与安全的考虑,有时需要为网络加入多个 DHCP服务器。6.DHCP必须静态配置,而且必须以现存的网络协议实现。7DHCP 必须能够和 BOOTP转发代理互操作。8DHCP 必须能够为现有的 BOOTP客户提供服务。下面几个设计目标是对于网络层参数的设计而言的,在网络层参数上,DHC

9、P 必须可以做到以下几点:9不允许有几个客户同时使用一个网络地址。10在 DHCP客户重新启动后仍然能够保留它原先的配置参数,如果可能,客户应该被指定为相同的配置参数。11在 DHCP服务器重新启动后仍然能够保留客户的配置参数,如果可能,即使DHCP机制重新启动,也应该能够为客户分配原有的配置参数。12能够为新加入的客户自动提供配置参数。13支持对特定客户永久固定分配网络地址。在下面我们看一下 DHCP的具体问题。从客户的观点来看,DHCP 不过是 BOOTP的扩展。这样就可以使现有的 BOOTP用户在不进行任何改动的情况下使用DHCP。图一和表一描述了 DHCP信息包的格式和信息包内每个字段

10、的意义。请注意括号内的数字,它表示此字段的大小。我们老是提到 BOOTP,它和 DHCP的主要区别有两点,一点是 DHCP对客户分配网络地址时不是无限期的,第二点是DHCP在提供网络地址时还提供了其它配置参数。熟悉 BOOTP协议的可以对比一下两个协议的不同点。下图定义了 DHCP消息格式:DHCP定义了一个新的“客户标识”选项,它是用来显式地将客户标识传送给DHCP服务器的。这个改变是针对 BOOTP信息包中chaddr域即作为 BOOTP转发信息的硬件地址又作为用户信息的情况而进行的。这个标记对于 DHCP服务器来说没有什么意义,它可以是硬件地址,也可以是什么别的东西,反正只要是对于这个

11、DHCP服务器管理的每个子网段内的客户是唯一的就可以了。客户一旦在一个信息包中使用了这个选项,以后的信息包内的这个选项必须和第一次使用时一致,这样 DHCP服务器才可以正确地辨识客户。域 字节 描述op 1 消息 op代码/消息类型 1 = BOOTREQUEST, 2 = BOOTREPLYhtype 1 硬件地址类型hlen 1 硬件地址长度hops 1 客户需要将这一项设置为零,当通过转发代理启动时可以供转发代理使用。xid 4 操作 ID,这是一个随机数,用于客户和服务器之间同步消息和消息的响应。secs 2 由客户指定的时间,指的是开始地址获取和更新进行后的时间。flags 2 请参

12、阅图 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包长度字段要求服务器传送的包长度在一定限度之内。在客户使用 DHC

13、P进行配置的时候,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

14、 9 0 1 2 3 4 5+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|B| 全为 0 |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B: 广播标记位上图表示了标记位的格式。前面已经提到过了,DHCP 的一个重要功能就是能够向客户提供网络配置参数,这种存储模型实际上就是 DHCP服务为每个客户保存了一个关键字,这个关键字中保存了保存了用户特有的标记和客户的配置参数。关键字可能是一个二元组(IP 子网号,硬件地址),这种设计考虑到不同子网内的硬件地址可能是一样的,所以要加入一个子网号加以区别。当然关键字也可以是(IP 子网号,主机名),这是为了照顾客

15、户机会经常在不同子网间转换,或者经常改变物理地址的情况。在协议规定是,关键字需要是(IP 子网号,物理地址),当然了,如果客户在信息包中显式地应用了“客户标记”这一字段的话就不这样使用了。客户可以通过查询 DHCP服务器取得配置信息。DHCP的另外一个重要特点就是能够动态地分配网络地址,这种动态分配的机制是很简单的:客户会要求使用某一网络地址一段时间,服务器就对客户说:“好的,在这一段时间内,这个地址我不给别人。”当客户使用完这一地址后再次申请时,服务器总是优先将它使用过的地址再次分配给它。我们把这种分配称为一种“租用”。说到租用,当然了,客户也可以要求增加租用期,当客户不再使用这一地址时,它

16、就把它还给服务器。客户也可以要求永久租用,这个永久对可不是永远,当服务器觉得客户机可能已经不存在时,它可以再次把这一地址分配给别的机器使用。当网络内地址不够用的时候,永久的分配就不可能了,当地址不够用的时候,由客户归还的地址还要被继续使用,这几乎是人人都可以想得到的,服务器可以使用配置信息库内的信息帮助它决定分配哪一个地址,比如说它可以选择最近最少使用的地址进行分配。为了安全起见,服务器应该在分配前使用 ICMP协议进行探测,保证这个地址没有机器使用,客户也应该能够使用一些协议(如 ARP)探测新接收的地址是不是被人使用。下面我们来说一下服务器客户协议的内容。DHCP 使用 BOOTP消息格式

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

18、客户与服务器交换信息的流程图。下面我们就过程简述如下:1. 客户会首先进行广播,它要地址当然是它先开口,它在本子网段内广播一个DHCPDISCOVER消息,这个消息内可能包括了它希望租用的网络地方和租用时间。BOOTP转发代理可以将这个消息传送到不在这个网段内的 DHCP服务器上。2. 每个有空闲地址的 DHCP服务器都响应这个消息,在响应消息中包括了可用的地址,这个地址在消息的yiaddr字段中,其它的配置参数在 DHCP选项中。服务器无需要保留已经分配的地址,虽然这样可能想起来更有效率。在分配时,因为未保留已经分配的地址,服务器必须想办法知道这个地址未被别的客户使用,服务器可以使用 ICM

19、P协议的回应请求进行。在分配地址时,服务器有时候可能需要使用 BOOTP转发代理,这一点要在实现上给予支持。下表是各种消息及其应用:消息 功能- -DHCPDISCOVER - 客户进行广播以确定本地可用的服务器。DHCPOFFER - 服务器给客户的应答,在其中包括了配置参数。DHCPREQUEST - 此消息是客户发送给服务器的,作用有三个:客户从一台服务器上请求配置信息(在这个时候客户也就拒绝了其它服务器发来的地址,客户就用这个地址了);在系统重新启动后,客户利用这个消息确认原来分配的网络地址仍然有效;客户还可以腹这个地址对特定的网络地址租用时间要求延期。DHCPACK - 服务器发向用

20、户的消息,包括了配置参数和网络地址。DHCPNAK - 服务器发向用户的消息,告知客户当前使用的网络地址无效或租期已满。DHCPDECLINE - 客户发向服务器的消息,告知服务器此地址已被使用。DHCPRELEASE - 客户发向服务器的消息,告知服务器此地址不再使用。DHCPINFORM - 客户发向服务器的消息,要求服务器发送本地配置信息,客户已经配置好了网络地址,不需要再发送网络地址了。3. 客户将会接收到一个或多个服务器发来的地址和配置参数。客户可以不用那么急于回应哪一个地址,它也可以挑的。当选择好了以后,客户广播DHCPREQUEST消息,在这个消息中的“服务器标记”字段中必须包括

21、选定的服务器的标记,此消息中也可以包括希望获得的网络配置参数,而“请求 IP地址”选项则要填写服务器发来信息包中yiaddr的内容,也就是服务器给客户提供的 IP地址。DHCPREQUEST 消息在本网段广播,并通过 DHCP/BOOTP转发代理向不同网段转发。如果客户在规定时间内没有收到任何服务器的回应,它会再次发送 DHCPDISCOVER。4. 许多服务器会接收到 DHCPREQUEST广播,那些没有被选择的服务器将DHCPREQUEST视为拒绝包。那个被选择的服务器会记录这个地址已经有人用了,并以包含配置参数的 DHCPACK包返回给客户。“客户标记”字段和指定的网络地址用以唯一确定一

22、个客户。服务器发送的 DHCPACK包内的参数不应该和原来发送的 DHCPOFFER包内的内容有冲突,服务器也不在这时再次检测提供的网络地址,在 DHCPACK包内的yiaddr字段包括了选择的网络地址。如果被选的主机不能满足 DHCPREQUEST包内的要求,它应该以 DHCPNAK包回复。服务器可以将 DHCPOFFER包内包括的地址设置为不可用,也可以不设置,但是如果服务器没有从客户那儿接收到 DHCPREQUEST包,此地址一定要保证是可用的。)5. 客户接收到包括配置参数的 DHCPACK包,它应该对此参数进行最后一次检查,不要和人家的冲突了,当没有发现冲突时客户才算真正配置好了。如

23、果客户发现有人已经使用了这个地址,它需要向服务器发送 DHCPDECLINE包,并重新开始配置过程,当然了,客户机必须等待一段时间后才能进行重要的配置过程,如果紧接着就进行会对网络造成巨大的压力。不但在地址冲突的时候要重新开始配置过程,在接收到 DHCPNAK包时也要进行重要配置过程。如果超时而未接收到 DHCPACK或 DHCPNAK包,客户需要再次发送 DHCPREQUEST。当然这个发送的过程要有一定的时间,不要人家服务器还没接收到呢,这边就放弃了。如果重新发送后还是没有收到 DHCPACK或 DHCPNAK包,客户要返回初始状态,并通用用户,初始化过程失败,正在重新开始。6. 客户可以

24、通过发送 DHCPRELEASE包取消租用。客户在消息中放置“客户标记”或”chaddr”和网络地址。如果客户在租用的时候使用了“客户标记”,在取消租用的时候必须还使用这一标记项。如果客户希望再次使用过去使用过的网络地址,客户就不需要进行上面说的一些步骤,对老客户的服务要方便一些吗。下面的时间图就能够帮助您理解这一过程。1. 客户在自己的子网里广播一个 DHCPREQUEST消息,在此消息的“请求 IP地址”选项中包括了客户现在的网络地址。(这里要注意一点,如果客户目前没有网络地址,ciaddr域绝对不能填写)。BOOTP 转发代理把这个消息发送到不在同一子网内的 DHCP主机上。如果客户当时

25、申请租用地址的时候使用了“客户标记”,这个新发的包内也必须使用相同的“客户标记”,说自己是老客户总要有证据。2. 这个时候服务器已经知道客户是个老客户,也知道了它的配置参数,就返回一个 DHCPACK消息。此时服务器不负责检查网络地址是否已经被使用,这个工作要客户自己完成。既然说自己是老客户了,那有些事情自己办了。如果客户的请求无效(可以客户已经移到另外一个子网内了),服务器应该以DHCPNAK返回,如果服务器不能确认发送到的消息是否准确,它干脆什么都不返回。我们可以想象一个,如果一个服务器接收到一个应该属于别的服务器管理的网络地址,它就不要返回 DHCPNAK包了,自己不知道的事情就不要说不。如果包内的giaddr域为零说明客户和服务器处于同一子网内,服务器不会轻信这样的好事的,它会发向 0xffffffff发送广播,它担心这个客户已经离开这个子网,或者它的子网掩码不正确,即使客户接收到了这个消息,也不需要发送 ARP。如果服务器知道客户不在这个子网内,它只需要按照giaddr内记录的地址发送一个消息给 BOOTP转发代理就是了,转发代理会将服务器发送的包发到客户手中,即使客户此时已经处于新的子网中了。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。