




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 1 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 动态主机配置协议(动态主机配置协议(DHCPDHCP) 分析报告分析报告 版本号版本号生成日期生成日期作者作者部门部门 1.02002.7.5杨恬交换机中心 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 2 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 目目 录录 1. 前言前言4 1.1 目的4 1.2 版本描述4 1.3 词典4 1.4 引用的标准、规范及其它文档4 2. DHCP 概述概述.5 3. DHCP 的设计目标的设计目标.6 4. 协议内容协议内容7 5. 主要功能主要功能11 5.1 配置参数11 5.2 动态分配网络地址11 6. 服务器客户协议服务器客户协议11 6.1 服务器客户之间的交互12 6.2 服务器客户机交互重新使用原先分配的网络地址15 6.3 已经配置了网络地址的客户机获取参数17 6.4 DHCP 客户机参数17 6.5 在有多个网络接口的客户机使用 DHCP.18 6.6 何时客户应该使用 DHCP 协议18 7. DHCP 的客户的客户/服务器协议服务器协议18 7.1 建立和发送 DHCP 消息18 7.2 DHCP 服务器管理控制20 7.3 DHCP 服务器动作20 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 3 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 7.3.1 DHCPDISCOVER 消息.21 7.3.2 DHCPREQUEST 消息.23 7.3.3 DHCPDECLINE 消息 .24 7.3.4 DHCPRELEASE 消息.24 7.3.5 DHCPINFORM 消息.24 7.4 客户机的行为25 7.4.1 客户机初始化.28 7.4.2 用已知的网络地址初始化.29 7.4.3 在已分配网络地址时的初始化.30 7.4.4 重新获得租用和租用到期.30 7.4.5 DHCPRELEASE 消息.31 8. 单播和广播单播和广播31 9. 安全安全32 10. BOOTP 中继代理中继代理32 10.1 中继代理与路由器33 10.2 中继代理的一般操作:33 10.3 BOOTREQUEST 消息 34 10.4 BOOTREPLY 消息.35 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 4 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 1. 前言前言 1.1 目的目的 本文档主要分析了动态主机配置协议的原理,为开发 DHCP 服务器及中继代理提供理论 依据。 1.2 版本描述版本描述 版本号版本号描描 述述 1.0 1.3 词典词典 DHCP:动态主机配置协议。 DHCP服务器:服务器: 为客户机动态分配 IP 地址及提供 IP 地址租用期和其他网络配置参数的 网络设备。 DHCP中继代理:中继代理:这种网络设备的主要功能是接收客户机的 DHCP 请求报文,并向服务 器转发请求报文;同时,接收服务器的响应报文,并向客户机转发报文。 1.4 引用的标准、规范及其它文档引用的标准、规范及其它文档 RFC2131 Dynamic Host Configuration Protocol. RFC0951 Bootstrap Protocol. 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 5 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 2. DHCP 概述概述 动态主机配置协议(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 控制信息协议 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 6 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved (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 服务器管理。 3. DHCP 的设计目标的设计目标 1DHCP 应该是一种机制而不是策略,它必须允许本地系统管理员控制配置参数,本地系统管理员 应该能够对所希望管理的资源进行有效地管理。 2客户不需要进行手工配置,客户应该在不参与的情况下发现合适于本地机的配置参数,并利用 这些参数加以配置。 3不需要对单个客户配置网络。在通常情况下,网络管理员没有必须输入任何预先设计好的用户 配置参数。 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 7 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 4DHCP 不需要在每个子网上都要一个服务器,为了经济的原因,它 DHCP 服务器必须可以和路由 器和 BOOTP 中继代理一起工作。 5DHCP 客户必须可能对多个 DHCP 服务器提供的服务作出响应。出于网络稳定与安全的考虑,有 时需要为网络加入多个 DHCP 服务器。 6.DHCP 必须静态配置,而且必须以现存的网络协议实现。 7DHCP 必须能够和 BOOTP 中继代理互操作。 8DHCP 必须能够为现有的 BOOTP 客户提供服务。 下面几个设计目标是对于网络层参数的设计而言的,在网络层参数上,DHCP 必须可以做到以下几 点: 9不允许有几个客户同时使用一个网络地址。 10在 DHCP 客户重新启动后仍然能够保留它原先的配置参数,如果可能,客户应该被指定为相同 的配置参数。 11在 DHCP 服务器重新启动后仍然能够保留客户的配置参数,如果可能,即使 DHCP 机制重新启 动,也应该能够为客户分配原有的配置参数。 12能够为新加入的客户自动提供配置参数。 13支持对特定客户永久固定分配网络地址。 4. 协议内容协议内容 在下面我们看一下 DHCP 的具体问题。从客户的观点来看,DHCP 不过是 BOOTP 的扩展。这样就可以 使现有的 BOOTP 用户在不进行任何改动的情况下使用 DHCP。图一和表一描述了 DHCP 信息包的格式 和信息包内每个字段的意义。请注意括号内的数字,它表示此字段的大小。BOOTP 和 DHCP 的主要 区别有两点,一点是 DHCP 对客户分配网络地址时不是无限期的,允许将网络地址重新分配给不同 的客户机;第二点是 DHCP 在提供网络地址时还提供了其它配置参数。下图定义了 DHCP 消息格式: 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 8 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 图 1、DHCP 报文格式 在 DHCP 中,将 BOOTP 的 vendor extensions 字段重新命名为 option(选项)字段,而原来在 BOOTP 中的 vendor extensions 字段现在在 DHCP 中仅仅是一个选项。DHCP 定义了一个新的“客户 标识”选项(client identifier),它是用来显式地将客户标识传送给 DHCP 服务器的。这个改 变是针对 BOOTP 信息包中chaddr域即作为 BOOTP 转发信息的硬件地址又作为用户信息的情况而 进行的,消除 chaddr 的重载。这个标记对于 DHCP 服务器来说没有什么意义,它可以是硬件地址, 也可以是什么别的东西,反正只要是对于这个 DHCP 服务器管理的每个子网段内的客户是唯一的就 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 9 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 可以了。客户一旦在一个信息包中使用了这个选项,以后的信息包内的这个选项必须和第一次使 用时一致,这样 DHCP 服务器才可以正确地辨识客户。 域域字节字节描述描述 Op1 消息 op 代码/消息类型 1 = BOOTREQUEST, 2 = BOOTREPLY htype1 硬件地址类型 hlen1 硬件地址长度 hops1 客户需要将这一项设置为零,当通过中继代理启动时可以供中 继代理使用。 xid4 操作 ID,这是一个随机数,用于客户和服务器之间同步消息和 消息的响应。 secs2 由客户指定的时间,指的是开始地址获取和更新进行后的时间。 flags2 请参阅图 2。 ciaddr4 用户 IP 地址,此字段仅当用户处于 BOUND,RENEW 或 REBINDING 状态和能够响应 ARP 请求时使用。 yiaddr4 客户 IP 地址,由服务器为客户指定的 IP 地址。 siaddr4 用于 bootstrap 过程中使用的下一个服务器的 IP 地址,由服务 器在 DHCPOFFER 和 DHCPACK 中返回,在通常情况下,填入本地 服务器的 IP 地址。 giaddr4 中继代理 IP 地址,由中继代理在转发 DHCP 消息时填入接收消 息的网络接口的 IP 地址,如果在此字段不为 0,则保持不变。 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 10 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved chaddr16 客户硬件地址 sname64 可选的服务器主机名 file128 启动文件名 options 不定可选的参数字段 表 1 DHCP 报文格式字段描述 在 DHCP 中 siaddr 字段用来说明客户机作下一步处理使用的网络地址,如果服务器准备提供下一 步启动服务,在此字段中由服务器返回它自己的地址(比如,传送一个操作系统可执行文件)。 DHCP 服务器总是在 server identifier 选项中返回它自己的地址。 options 字段的长度不定,DHCP 客户必须准备接收 312 字节的带有选项字段的 DHCP 消息,这就意 味着客户机准备从服务器那里接收到长度大于 576 字节的包。DHCP 客户也可以使用最大 DHCP 包长 度选项(maximum DHCP message size)要求服务器传送的包长度在一定限度之内,这个选项可能 扩展到 file 和 sname 字段。在客户使用 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: 广播标记位 图 2、flag 字段格式 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 11 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 5. 主要功能主要功能 5.1 配置参数配置参数 前面已经提到过了,DHCP 的一个重要功能就是能够向客户提供网络配置参数,这种存储模型实际 上就是 DHCP 服务为每个客户保存了一个关键字,这个关键字中保存了用户特有的标记和客户的配 置参数。关键字可能是一个二元组(IP 子网号,硬件地址),这种设计考虑到不同子网内的硬件 地址可能是一样的,所以要加入一个子网号加以区别。当然关键字也可以是(IP 子网号,主机名) ,这是为了照顾客户机会经常在不同子网间转换,或者经常改变物理地址的情况。在协议规定是, 关键字需要是(IP 子网号,物理地址),当然了,如果客户在信息包中显式地应用了“客户标记” 选项的话就不这样使用了。客户可以通过查询 DHCP 服务器取得配置信息。 5.2 动态分配网络地址动态分配网络地址 DHCP 的另外一个重要特点就是能够动态地分配网络地址,这种动态分配的机制是很简单的:客户 会要求使用某一网络地址一段时间,服务器在这一段时间内不会把这个地址分配给别的客户机。 当客户使用完这一地址后再次申请时,服务器总是优先将它使用过的地址再次分配给它。我们把 这种分配称为一种“租用”。说到租用,当然了,客户也可以要求增加租用期,当客户不再使用 这一地址时,就把它还给服务器。客户也可以要求永久租用,这个永久可不是永远,当服务器觉 得客户机可能已经不存在时,它可以再次把这一地址分配给别的机器使用。当网络内地址不够用 的时候,永久的分配就不可能了,当地址不够用的时候,由客户归还的地址还要被继续使用,这 几乎是人人都可以想得到的,服务器可以使用配置信息库内的信息帮助它决定分配哪一个地址, 比如说它可以选择最近最少使用的地址进行分配。为了安全起见,服务器应该在分配前使用 ICMP 协议进行探测,保证这个地址没有机器使用,客户也应该能够使用一些协议(如 ARP)探测新接收 的地址是不是被人使用。 6. 服务器客户协议服务器客户协议 下面我们来说一下服务器客户协议的内容。DHCP 使用 BOOTP 消息格式,这种格式请见表 1 和图 1。在每个由客户发送到服务器消息的op字段中包括了一个 BOOTREQUEST,而在服务器发送到客 户消息内的op字段则包括了一个 BOOTREPLY。DHCP 信息包内options字段包含了十进制数 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 12 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 99,130,83 和 99,这几个值。其余的地方是称为“选项”的标记参数。应该注意其中的一个重 要的选项“DHCP 消息类型”选项,这一项必须在每个 DHCP 信息包中存在,其它的选项有的是必须 的,有的不是必须的,有的根本就是可有可无。在下文中,消息格式就以这一选项的内容决定。 6.1 服务器客户之间的交互服务器客户之间的交互 在下面的表 2 和图 3 中描述了 DHCP 协议包中信息的意义以及 DHCP 客户与服务器交换信息的流程 图。下面我们就过程简述如下: 1. 客户会首先进行广播,它在本子网段内广播一个 DHCPDISCOVER 消息,这个消息内可能包括了 它希望租用的网络地方和租用时间。BOOTP 中继代理可以将这个消息传送到不在这个网段内的 DHCP 服务器上。 2. 每个有空闲地址的 DHCP 服务器都响应这个消息,在响应消息中包括了可用的地址,这个地址 在消息的yiaddr字段中,其它的配置参数在 DHCP 选项中。服务器无需要保留已经分配的地址, 虽然这样可能想起来更有效率。在分配时,因为未保留已经分配的地址,服务器必须想办法知道 这个地址未被别的客户使用,服务器可以使用 ICMP 协议的回应请求进行。在分配地址时,服务器 有时候可能需要使用 BOOTP 中继代理,这一点要在实现上给予支持。下表是各种消息及其应用: 消息 功能 - - DHCPDISCOVER - 客户进行广播以确定本地可用的服务器。 DHCPOFFER - 服务器给客户的应答,在其中包括了配置参数。 DHCPREQUEST - 此消息是客户发送给服务器的,作用有三个:客户从一台服务器上请求配置信息 (在这个时候客户也就拒绝了其它服务器发来的地址,客户就用这个地址了);在系统重新启动 后,客户利用这个消息确认原来分配的网络地址仍然有效,客户还可以复用这个地址;对特定的 网络地址租用时间要求延期。 DHCPACK - 服务器发向用户的消息,包括了配置参数和网络地址。 DHCPNAK - 服务器发向用户的消息,告知客户当前使用的网络地址无效或租期已满。 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 13 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved DHCPDECLINE - 客户发向服务器的消息,告知服务器此地址已被使用。 DHCPRELEASE - 客户发向服务器的消息,告知服务器此地址不再使用。 DHCPINFORM - 客户发向服务器的消息,要求服务器发送本地配置信息,客户已经配置好了网络 地址,不需要再发送网络地址了。 表 2、DHCP 消息 图 3、在分配新的网络地址时 DHCP 客户机与服务器之间消息交换的时间图 3. 客户将会接收到一个或多个服务器发来的地址和配置参数。客户可以不用那么急于回应哪一个 地址,它也可以挑的。当选择好了以后,客户广播 DHCPREQUEST 消息,在这个消息中的“服务器 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 14 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 标记”选项字段中必须包括选定的服务器的标记,此消息中也可以包括希望获得的网络配置参数, 而“请求 IP 地址”选项则要填写服务器发来信息包中yiaddr的内容,也就是服务器给客户提供 的 IP 地址。DHCPREQUEST 消息在本网段广播,并通过 DHCP/BOOTP 中继代理向不同网段转发,为了 保证中继代理将 DHCPREQUEST 消息转发到接收 DHCPDICOVER 消息的服务器,必须在 DHCPREQUET 消 息中使用与 DHCP 消息头的 secs 字段相同的值,并用与原来 DHCPDISCOVER 消息相同的广播地址发 送。如果客户在规定时间内没有收到任何服务器的回应,它会再次发送 DHCPDISCOVER。 4. 许多服务器会接收到 DHCPREQUEST 广播,那些没有被选择的服务器将 DHCPREQUEST 视为拒绝包。 那个被选择的服务器会记录这个地址已经有人用了,并以包含配置参数的 DHCPACK 包返回给客户。 “客户标记”(client identifier)选项和指定的网络地址用以唯一确定一个客户。服务器发送 的 DHCPACK 包内的参数不应该和原来发送的 DHCPOFFER 包内的内容有冲突,服务器也不在这时再 次检测提供的网络地址,在 DHCPACK 包内的yiaddr字段包括了选择的网络地址。如果被选的主 机不能满足 DHCPREQUEST 包内的要求,它应该以 DHCPNAK 包回复。服务器可以将 DHCPOFFER 包内 包括的地址设置为不可用,也可以不设置,但是如果服务器没有从客户那儿接收到 DHCPREQUEST 包,此地址一定要保证是可用的。 5. 客户接收到包括配置参数的 DHCPACK 包,它应该对此参数进行最后一次检查,当没有发现冲突 时客户才算真正配置好了。如果客户发现有人已经使用了这个地址,它需要向服务器发送 DHCPDECLINE 包,并重新开始配置过程,客户机必须等待一段时间后才能进行重要的配置过程,如 果紧接着就进行会对网络造成巨大的压力。不但在地址冲突的时候要重新开始配置过程,在接收 到 DHCPNAK 包时也要进行重要配置过程。如果超时而未接收到 DHCPACK 或 DHCPNAK 包,客户需要 再次发送 DHCPREQUEST。当然这个发送的过程要有一定的时间,不要服务器还没接收到呢,这边就 放弃了。如果重新发送后还是没有收到 DHCPACK 或 DHCPNAK 包,客户要返回初始(INIT)状态, 并通知用户,初始化过程失败,正在重新开始。 6. 客户可以通过发送 DHCPRELEASE 包取消租用。客户在消息中放置“客户标记”(client identifier)或”chaddr”和网络地址。如果客户在租用的时候使用了“客户标记”,在取消租 用的时候必须还使用这一标记项。 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 15 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 6.2 服务器客户机交互服务器客户机交互重新使用原先分配的网络地址重新使用原先分配的网络地址 如果客户希望再次使用过去使用过的网络地址,客户就不需要进行上面说的一些步骤,对老客户 的服务要方便一些。下面的时间图就能够帮助您理解这一过程。 图 4 重新使用原先分配的网络地址 1客户在自己的子网里广播一个 DHCPREQUEST 消息,在此消息的“请求 IP 地址”(request IP address)选项中包括了客户现在的网络地址。(这里要注意一点,如果客户目前没有网络地址, ciaddr域绝对不能填写)。BOOTP 中继代理把这个消息发送到不在同一子网内的 DHCP 主机上。 如果客户当初申请租用地址的时候使用了“客户标记”选项,这个新发的包内也必须使用相同的 “客户标记”选项。 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 16 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 2. 这个时候服务器已经知道客户是个老客户,也知道了它的配置参数,就返回一个 DHCPACK 消息。 此时服务器不负责检查网络地址是否已经被使用,这个工作要客户自己完成。 如果客户的请求无效(可以客户已经移到另外一个子网内了),服务器应该以 DHCPNAK 返回,如 果服务器不能确认发送到的消息是否准确,它干脆什么都不返回,如果一个服务器接收到一个应 该属于别的服务器管理的网络地址,它就不要返回 DHCPNAK 包了。 如果包内的giaddr域为 0 说明客户和服务器处于同一子网内,它会发向 0xffffffff 发送广播, 它担心这个客户已经离开这个子网,或者它的子网掩码不正确,即使客户接收到了这个消息,也 不需要发送 ARP。如果服务器知道客户不在这个子网内,它只需要按照giaddr内记录的地址发送 一个消息给 BOOTP 中继代理就是了,中继代理会将服务器发送的包发到客户手中,即使客户此时 已经处于新的子网中了。 3. 客户接收了带配置参数的 DHCPACK 信息,客户最后对参数进行检查,标记租用时间。指定的租 用时间由消息包内的“客户标记”(client identifier)或chaddr字段确定,这时客户也就配 置好了。如果客户检测到地址冲突,客户必须以 DHCPDECLINE 包通知服务器并重新开始请求网络 地址。如果客户接收到 DHCPNAK 包,它不能再使用当前地址了,它必须重新开始配置过程以获得 新的网络地址。如果客户既没有收到 DHCPACK 也没有收到 DHCPNAK,它必须重新发送 DHCPREQUEST 包以进行配置。客户应该在一定时间再次发送 DHCPREQUEST 请求(时间由后面描述的重传算法决 定)。在使用重传算法后,如果客户既没有收到 DHCPACK 也没有收到 DHCPNAK,而先前分配的地址 没有过期,客户可以继续使用这个地址及相应的参数。 4. 客户可能通过 DHCPRELEASE 包取消租用。在这个取消的包中包括了“客户标记”或chaddr和 网络地址。 客户租用某一地址是有时间限制的,当然也可以是无期限限制的。在整个 DHCP 中,时间的单位是 秒,而 0xffffffff 表示无限。在分布式系统中有一个重要的问题就是时间的同步,服务器和客户 的时间可能是不同步的,为了实现时间的同步,要靠在一定时间内发送 DHCP 包以客户本地时间来 表示。这个时间是由一个无符号的 32 位数表示,它可以表示 0 到 100 年,这对于现行的系统来说 够用了。在上面的图中,我们假定客户机和服务器的时间是相对稳定的,如果两者时间上有一点 差别,服务器可以给客户发一个把租期稍微延长一点,这样就可以了。 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 17 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 6.3 已经配置了网络地址的客户机获取参数已经配置了网络地址的客户机获取参数 如果客户通过别的手段获得了网络地址,它可以使用 DHCPINFORM 请求获得其它配置参数,服务器 接收到 DHCPINFORM 包,并建立一个 DHCPACK 消息,在其中包括一些合适客户的配置参数,只是不 包括分配网络地址、检查现有的绑定,在信息中不填充yiaddr字段或租用时间参数。服务器应 该检查 DHCPINFORM 中网络地址的一致性,但不能检查其租用期。服务器取得 DHCPINFORM 包内的 ciaddr地址,而返回 DHCPACK 包。 6.4 DHCP 客户机参数客户机参数 并不是所有客户需要初始化所有在附表内的参数。有两种方法可以减少服务器到客户发送参数的 数目。客户可以使用默认参数,如果服务器不发送任何参数,客户就使用默认参数。第二种方法 是让客户在 DHCPDISCOVER 和 DHCPREQUEST 包内给服务器发送一个自己觉得合适的参数表,让服务 器在这个表中选择,如果客户在 DHCPDISCOVER 内使用了这个表,在其后的 DHCPREQUEST 包内也要 包括这个列表。客户应该包括“最大 DHCP 包大小”(maximum DHCP message size)选项使服务 器预先知道 DHCP 消息的大小。而返回客户的参数有可能超过给 DHCP 包分配的空间。在这种情况 下,两个额外的选项标记指示file和sname域可以用做选项使用。 客户可以通过 parameter request list 选项,在发送到服务器的包内指示自己希望得到哪一个参 数项,这部分的数据包含一个期望得到的选项标记号,这样也就减少了 DHCP 消息的大小。 当然客户也可以自己把希望得到网络地址和租用时间包括在包内发送到包内,这样就减少了服务 器发向客户的数据量,这是因为服务器是中心结点,如果它的处理速度下降会影响到整个网络的 性能。其它一些选项也可以在包内使用,但是服务器可能不理会这些消息,在多个服务器响应的 时候,返回的值可能根本就不一样。当客户确认自己获得的网络地址时,“请求的 IP 地址”项可 以仅在 DHCPREQUEST 包内包括。当客户处于 BOUND,RENEWING 或 REBINDING 状态而正确配置了 IP 地址时,客户可以填充ciaddr域。如果服务器接收到一个包括无效请求地址的“请求的 IP 地址” 包时,服务器应该向客户返回 DHCPNACK 包,如果需要可以向管理员报告。在 message 选项中可能 包含出错的消息。 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 18 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 6.5 在有多个网络接口的客户机使用在有多个网络接口的客户机使用 DHCP 如果客户有多个网络接口,各个接口必须独立地以 DHCP 方式获得自己的配置参数。 6.6 何时客户应该使用何时客户应该使用 DHCP 协议协议 客户在本地网络参数发生改变时应该使用 DHCP,例如在系统重新启动时或在与网络失去联系一段 时间之后,本地网的参数可以在用户不知情的情况下发生改变。如果客户(机)还记得住自己的 IP 地址而且无法联系本地的 DHCP 服务器,它可以继续使用这一地址,直到租期到期为止,如果在 地址失效前客户(机)仍然不能联系到 DHCP 服务器,在租期过期时,它应该立即放弃对此网络地 址的使用,并向用户通告错误情况。 7. DHCP 的客户的客户/服务器协议服务器协议 在下面,我们要具体介绍一下 DHCP 协议的客户/服务器协议内容,这里我们假设服务器有一些可 供使用的地址,使用这些地址可以满足客户对地址的需求。每个服务器也支持一个分配的地址的 数据库及租用情况。 7.1 建立和发送建立和发送 DHCP 消息消息 在建立和传送 DHCP 消息的问题上,DHCP 客户和服务器都向消息中的特定字段填充来建立 DHCP 消 息。选项区域包括头四个字节的magic cookie,在其后是选项,而最后的选项必须是end选项。 DHCP 使用 UCP 协议传送信息,服务器方接收此消息的端口是端口 67,而客户在端口 68 接收服务 器方面的消息。如果服务器有多个网络地址,它可以使用其中任何一个来传送 DHCP 消息。 “服务器标记”(server identifier)字段用于 DHCP 服务器发送的 DHCP 消息,也用于客户来确 定服务器。如果服务器有多个网络地址,那么哪个地址来的请求它也不应该拒绝。为了照顾到网 络使用的实际情况,服务器必须选择一个地址来专门接收客户发送来的请求。比如一个服务器和 客户处于同一个子网(此时,来自客户机消息中 giaddr 字段为 0),服务器应该使用这个子网内 的地址作为“服务器标记”使客户便于发送请求。同样客户也应该使用提供的“服务器标记”向 特定的服务器发送请求。如果服务器在此子网上使用多个 IP 地址,则任何一个地址都可以使用。 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 19 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 如果服务器从中继代理接收一个消息,服务器应该选择一个作为“服务器标记”的地址接收消息 (除非服务器有更好的选择)。客户机必须使用“服务器标记”所提供的 IP 地址来向服务器单播 请求。 在客户获得网络地址之前向服务器的广播请求包中的 IP 地址中源地址的 IP 报头应该被设为 0。 如果在 DHCP 消息中的giaddr域不为 0,服务器就会向giaddr中指示的 BOOTP 中继代理发送。 如果giaddr为 0,而ciaddr不为 0,服务器将 DHCPOFFER 和 DHCPACK 发向ciaddr中指示的地 址。如果giaddr和ciaddr为 0,而广播域被设置,应该将返回信息广播,也就是向 0xffffffff 发送。如果广播域也未被设置,那只好向客户的硬件地址发送了。无论发生何种情况, 只要giaddr为 0,服务器都应该广播 DHCPNAK 信息。 如果在 DHCP 信息中的选项扩展到了sname和file域,在“选项”域中必须有option overload选项。如果option overload在options中出现,那后面的选项必须以end选项结 束,不足的地方以特定的填充字符填充。客户在接收到相应的选项,如果有相同的选项,客户将 它们变为一个。 DHCP 客户全权负责消息的再次传送。客户必须采用混合的随机指数退避算法的重传策略决定重传 延迟。这个时间要选择的合适,不要服务器的应答还没有来,客户就不烦麻而重新发送了。这个 时间是由服务器和客户机之间网络性质决定的。比如:在 10Mb/sec 的以太网中,在第一次重传时, 延迟应该是 41 秒的随机的范围内;在下一次重传时,延迟应该在 81 秒的随机范围内;以后 的重传延迟应该增加一倍,直到最大值 64 秒。 客户机用 xid 字段来匹配接收来的 DHCP 消息。必须选择一个最不可能被其它客户机使用的 xid 字 段。比如,每次重新启动客户机都选择一个不同的、随机的 xid,并在以后都使用连续的 xid 直到 下一次重新启动。为每次重传选择一个新的 xid 是一种实现决定。每次重传时,客户机可能选择 相同的 xid,也能选择一个新的 xid。 通常情况下,DHCP 服务器和 BOOTP 中继代理试图把 DHCPOFFER,DHCPACK 和 DHCPNAK 直接传送给客 户。IP 目的地址被设备在 DHCP yiaddr域内,而数据链路层地址设置在chaddr域内。但是, 请注意,如果客户还没有设置 IP 时,它不会接收这种传送的。这样的客户需要在发送给客户的包 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 20 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserved 内将广播位设置为 1,这样服务器和中继代理就会在客户所在子网内广播这个消息。如果能够直接 接收,就不要为网络造成不必要的负担,不要采用广播的形式了。 如果客户要求广播,服务器和中继代理应该向 IP 广播地址发送这个包。如果客户未要求广播,则 直接使用 IP 协议传送就是了,这时需要使用yiaddr域内的 IP 地址和chaddr域内的数据链路 层地址。 7.2 DHCP 服务器管理控制服务器管理控制 DHCP 服务器不必理会所有的请求,管理员可以对服务器采用严格的管理机制,只对这个网络中注 册的客户响应。 在一些环境中,DHCP 服务器将必须考虑 DHCPDISCOVER 或 DHCPREQUEST 消息内的 vendor class 选 项,以决定为特定的客户配置正确的参数。 服务器在为客户服务时必须保留客户的唯一标记,客户可以直接在发送的请求包内设置“客户标 记”域,这样服务器和客户的所有消息中都必须包括这个唯一的标记,也靠这个标记来识别客户。 如果客户未使用这个域,服务器使用chaddr域来达到唯一标记的目的,但这样做可能会有意想 不到的结果,因为这个域一般和网络适配器相关,是硬件地址,这个适配器却可以被别的客户使 用。有时候可以选择 DNS 名和一个客户相关,这时候网络就是被分配给 DNS 域而不是一个硬件单 元。而客户在识别服务器方面就没这么麻烦了,反正从谁那儿用都一样。 在从发送 DHCPOFFER 消息的服务器中选择一个服务器,客户机可以自由地采用任何一种策略。 DHCP 客户机实现应该为用户提供一种直接选择 vendor class identifier 选项值的机制。 7.3 DHCP 服务器动作服务器动作 DHCP 服务器的动作要视客户的响应而定,服务器可能从客户那儿接收如下几种包: o DHCPDISCOVER o DHCPREQUEST o DHCPDECLINE 四川迈普数据通信股份有限公司研究院四川迈普数据通信股份有限公司研究院 动态主机配置协议(DHCP)分析报告1.0 交换机中心7.5.2002 文档编号 第 21 页 共 36 页 迈普通信版权所有 翻印必究 Copyright 1993 2001 All Rights Reserv
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论