下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、。DHCP协议讲解华为技术有限公司版权所有侵权必究。i。目录第 1 章 DHCP协议基础知识11.1 DHCP 协议概述11.1.1 IP网络主机配置方法概述11.1.2 DHCP 协议主机配置的优缺点2第 2 章 协议的报文格式.42.1 DHCP 协议的封装42.2 DHCP 协议的报文格式52.3 DHCP 协议报文的种类8第 3 章 DHCP协议的实现过程103.1 DHCP CLIENT 的行为103.2 DHCP SERVER的行为113.3 DHCP RELAY 的行为123.4 DHCP 交互过程13第 4 章 DHCP在具体组网中的应用实例174.1 DHCP 在 MA520
2、0中的应用174.1.1组网说明及数据规划.174.1.2结合抓报所得数据分析DHCP协议实现原理184.2宽带产品相关的数据配置234.2.1 ESR8850中与 DHCP RELAY相关的数据配置234.2.2 S3526中与 DHCP RELAY相关的数据配置24第 5 章 DHCP协议的发展方向25。i。关键词 :BOOTP, DHCP,DHCP CLIENT,DHCP RELAY,DHCP SERVER摘要:DHCP协议是目前应用比较广泛的一个协议,详细的了解该协议对于问题的处理是有好处的。 本文是对IP 网络中的 DHCP协议(动态主机配置协议)一个比较全面的培训材料,详细的介绍了
3、 DHCP协议的框架结构,报文格式和实现机理,并结合在具体产品( MA5200)中的实现进行讲解,适用于从事宽带、数通的工程师作为学习性质的读物。在文章的最后, 我们介绍了目前黑客对DHCP进行攻击的常用手段及在ESR8850产品中相应的解决方法,并对DHCP协议的发展进行了一些展望。缩略语清单 :BOOTP:Bootstrap Protocol引导程序协议DHCP: Dynamic Host Configuration Protocol动态主机配置协议DHCP CLIENT: DHCP 客户端DHCP RELAY: DHCP中继DHCP SERVER: DHCP服务器参考资料清单:DHCP协
4、议相关RFC: RFC 951, RFC1541, RFC1542数据通信协议研究管理部:DHCP协议培训教材、DHCP协议说明书。2第 1 章 DHCP 协议基础DHCP 协议讲解知识第1章 DHCP协议基础知识1.1DHCP 协议概述1.1.1IP网络主机配置方法概述IP 网络是目前乃至将来可能最有前途的网络。正如同传统的电话网中要为每个电话分配一个电话号码以唯一标识这个电话一样,在IP 网络中,每一台终端要想与其他的终端进行通信,也需要为每一个接入终端分配一个唯一标识号,这就是 IP 网络上的地址 IP 地址。IP 地址是 IP 网络上唯一标识一个接入终端最原始和最有效的标识符。给终端分
5、配 IP 地址的方法有多种方式,如PPP协议的自协商方式,用户自己静态配置,管理员统一分配、配置等方式,但这些配置IP 地址的方式都有着一些这样或那样的缺点。PPP自协商方式虽然不用用户自己动手操作,但是需要安装专门的客户端软件,而且需要服务器处事先配置好用户的帐号和密码,否则用户无法上网,当然其优点是安全性高。用户自己静态配置方式对于熟悉IP网络的人来说是一件很简单的事情,但对于普通用户来说,可真是难以理解,而且还须提防 IP 地址冲突的情况。管理员统一分配、配置的方式,需要有专人维护,规划整个网络,不仅成本高,而且管理员工作量太大。更重要的是许多终端启动时不仅需要IP 地址,而且还需要动态
6、的获取更多的启动配置信息, 如无盘工作站, CABLEMODEM就需要获得启动配置文件名和TFTPSERVER的 IP 地址等信息,其他一些特殊终端还需要获取其他一些特殊的信息,如 EPHONE需要 CALL SERVER的 IP 地址, IDT 需要控制服务器的IP 地址等。这些动态信息是前面几种主机配置方式所无法完成的。正是基于这些要求, 新的主机配置方式应运而生,最早的主机配置方式就是BOOTP协议(即引导程序协议) ,它是一种较老的系统引导协议,主要用于无盘工作站启动时从服务器上获取 IP 地址和启动文件名, 多与 TFTP协议配合使用, 后来为了功能的扩展,又发展了 DHCP协议,但
7、 DHCP协议兼容 BOOTP协议。 BOOTP和 RARP类似,是用于相对静态的环境,其中每个主机都有一个永久的网络连接。管理人员创建一个 BOOTP配置文件来定义每个主机的BOOTP参数。在计算机经常移动和实际计算机数目超过了可获得的IP 主机地址时,这种只提供从主机标识到主机参数的静态映射就不适用了。1。DHCP从两个方式上扩充了BOOTP:第一, DHCP可使计算机用一个消息获取它所需要的所有配置信息,即传送配置信息的协议;第二,DHCP允许计算机快速、动态的获取IP 地址,即动态分配IP 地址的机制。 DHCP支持三种类型的地址分配: 自动分配方式中DHCP给主机指定一个永久的IP
8、地址;动态分配方式中 DHCP给主机指定一个有时间限制的IP 地址,到时间或主机明确表示放弃这个地址时,这个地址可以被其他的主机使用;手工分配 方式中主机的IP 地址是由网络管理员指定的,DHCP只是把指定的IP 地址告诉主机。 在这三种方式中,只有动态分配的方式可以对已经分配给主机但现在此主机已经不用的 IP 地址重新加以利用。这样,在给一台临时连入网络的主机分配地址或者在一组不需要永久的IP 地址的主机中共享一组有限的IP 地址时,动态分配显得特别有用。当一台新主机要永久的接入一个网络时,而网络的IP 地址非常有限,为了将来这台主机被淘汰时能回收IP 地址,这种情况下动态分配也是一个很好的
9、选择。1.1.2DHCP协议主机配置的优缺点1、DHCP协议主机配置方式最重要的特征就是整个配置过程自动实现,而且所有配置信息在一个地方集中控制,这就是DHCP SERVER的作用。2、很明显, DHCP协议采用 CLIENT-SERVER方式实现,而且 DHCP协议是基于UDP层之上的应用, DHCP CLIENT将采用知名端口号 68,DHCP SERVER采用知名端口号 67 进行交互 。3、最初的 BOOTP/DHCP协议是在同一个物理子网中使用广播方式实现的,无法穿越路由器扩展到不同的物理子网中,也就是要使用DHCP协议的每一个网络中必须配置一台 DHCP服务器,为了克服这一缺陷,采
10、用了DHCP RELAY的方式使得 BOOTP/DHCP协议能够穿越路由器实现。4、BOOTP协议主要用于一些较简单的终端设备,如无盘工作站等, 通过 BOOTP获取的信息也就相对较少,但它的CLIENT-SERVER间的交互过程比较简单。DHCP协议功能较全面,可以获取的信息也较多,但CLIENT-SERVER间的交互过程比较复杂。下面将会详细讲解。5、 DHCP协议一般采用终端的硬件地址(如果是以太网,就是我们常说的MAC地址)来唯一标识一个终端设备。6、 DHCP协议通过设置 IP 地址使用租期,可以达到IP 地址的分时复用效果,解决 IP 地址资源短缺的问题。7、 DHCP协议基本上是
11、一个单向驱动协议,SERVER完全是被动的,其动作、行为基本完全由 CLIENT的请求行为而激发, 即 SERVER端无法主动控制CLIENT。2。端。因此其交互性和安全性就没有PPP协议那么完善,这是DHCP协议的致命缺点 。3DHCP 协议讲解第 2 章 协议的报文格式第2章 协议的报文格式2.1DHCP 协议的封装DHCP协议是基于 UDP层之上的应用, DHCPCLIENT 将采用知名端口号 68,DHCP SERVER采用知名端口号 67。其报文内容的封装如图 1 所示链路层头IP 头UDP头DHCP报文图 1DHCP 报文封装格式其中:链路层头:承载报文的链路层信息头,常见的有Et
12、hernet_II格式、 802.1Q格式、 IEEE802.3格式、令牌环链路层头格式等。IP 头:标准的 IP 协议头, IPV4 中长度为 20bytes ,包括了 SrcIp ,DstIp 等信息。UDP头: 8bytes ,包括了SrcPort ,DstPort ,报文长度及UDP校验和等信息。DHCP报文:具体的 DHCP报文内容。由于 DHCP协议是初始化协议,更简单的说,就是让终端获取IP 地址的协议,既然终端连 IP 地址都没有, 何以能够发出 IP 报文呢? SERVER给 CLIENT 回送的报文该怎么封装呢?正是为了说明这个问题,上面才会介绍DHCP报文的封装格式。为了
13、解决这个问题, DHCP报文的封装采取了如下措施:1、首先链路层的封装必须是广播形式,即让在同一物理子网中的所有主机都能够收到这个报文。在Ethernet_II格式的网络中,就是DstMac 为全 1。2、由于终端没有IP 地址, IP 头中的 SrcIp规定填为全0。3、当终端发出DHCP请求报文,它并不知道DHCPSERVER的 IP 地址,因此IP头中的 DstIp填为有限的子网广播IP 全 1,以保证DHCP SERVER的 IP 协议栈不丢弃这个报文。4。4、上面的措施保证了DHCP SERVER能够收到终端的请求报文,但仅凭链路层和 IP 层信息, DHCP SERVER无法区分出
14、DHCP报文,因此终端发出的DHCP请求报文的UDP层中的 SrcPort为 68, DstPort为 67。即 DHCP SERVER通过知名端口号 67 来判断一个报文是否是DHCP报文5、 DHCPSERVER给终端的响应报文将会根据DHCP报文中的内容决定是广播还是单播, 一般都是广播形式。 广播封装时, 链路层的封装必须是广播形式,在Ethernet_II格式的网络中,就是DstMac 为全 1, IP 头中的 DstIp 填为有限的子网广播IP 全 1 。单播封装时,链路层的封装是单播形式,在Ethernet_II格式的网络中,就是DstMac 为终端的网卡MAC地址(此 MAC地
15、址存在于 DHCP报文中)。 IP 头中的 DstIp填为有限的子网广播 IP 全 1或者是即将分配给用户的IP 地址(当终端能够接收这样的IP 报文时) 。两种封装方式中的UDP层都是相同的, SrcPort为 67, DstPort 为 68。终端通过知名端口号 68 来判断一个报文是否是DHCP SERVER的响应报文。2.2DHCP 协议的报文格式DHCP使用 BOOTP的报文格式,但修改了一些字段的内容和含义。DHCP报文格式如图 2 所示:图2DHCP 协议的报文格式下面详细介绍DHCP报文内容:“op”字段:表示当前报文是 client 的请求还是 server 的应答,为 1
16、时表示是 client 的请求,为 2 时表示是 server 的应答。5。“htype ”,“hlen ”字段:分别表示 client 的网络硬件地址类型、 长度,如 “htype ” 为 1,表示 client 的网络硬件是 10MB的以太网类型, “hlen ”为 6,表示 client 的网络硬件地址长度是 6bytes (即以太网类型的 6bytes 的 MAC地址)“跳数 ”字段:表示当前的DHCP报文经过的DHCP RELAY的数目,类似于IP 头中的跳数字段,但含义完全不同,client或 server发出 DHCP报文时,此字都初始化为0,每经过一个DHCPRELAY,此字段
17、就会加1,此字段的作用是限制 DHCP报文不要经过太多的 DHCP RELAY,协议规定,当 “hops ”大于 4(现在也有规定为 16)时,这个 DHCP报文就不能再进行处理,而是丢弃。“事务ID" 字段: client每次发送DHCP请求报文时选择的随机数,用来匹配server的响应报文是对哪个请求报文的响应。client会丢弃 “xid ”不匹配的响应报文。“秒数 ”字段:用来表示 client 开始 DHCP请求后的时间流逝秒数,此字段一般没有多大意义, 最初设计此字段是为了让 DHCPSERVER在繁忙时, 优先处理此字段大的DHCP请求(因为此字段越大说明这个clien
18、t等的时间就越长)“标志 ”字段:在 BOOTP中此字段是保留不用的,在 DHCP协议中也只使用了其左边的最高位,其格式如图 3 所示:015B必须为 0图 3 DHCP 报文中 “flags ”字段格式整个字段占 16 比特,其中,最左边比特被解释为广播响应标识位,所有其它比特保留备用,必须被client设置为 0,server 和 DHCP RELAY忽略这些比特 。当 client 不能接收单播的DHCP响应报文时, 必须把广播响应标识位置1,否则置 0。而 DHCPSERVER在回响应报文时是广播还是单播,就将根据此广播响应标识位是否置位来判断,目前的client 如 WINDOWS
19、98一般都能接收单播 DHCP响应报文。“客户机 IP 地址 ”字段:表示client自己的 IP地址。可以是 server 分配给client 的 IP 地址,也可以是 client已有的 IP地址。此字段不为 0 的原则就是 client 能够使用此IP 地址接收 IP 报文 。 DHCP SERVER发现此字段不为0时,可以直接将响应报文单播给client 。“你的 IP 地址 ”字段:表示 server 分配给 client的 IP 地址。当 DHCP SERVER响应 client 的 DHCP请求时,将把分配给 client的 IP 地址填入此字段。6。“服务器 IP 地址 ”字段
20、:表示 client 获取启动配置信息的服务器 IP 地址, 一般是 TFTP SERVER的 IP 地址 。“中继代理IP 地址 ”字段: 记录第一个DHCPRELAYagent 的 IP 地址。当 client发出 DHCP请求报文后,如果网络中存在DHCP RELAY,则第一个 DHCP RELAY转发这个 DHCP请求报文时,就会把自己的IP 地址填入此字段(随后的DHCPRELAY将不再改写此字段,只是把“hops”加 1)。 DHCP将会根据此字段为用户分配IP地址 ,并把响应报文转发给此DHCP RELAYagent ,由 DHCP RELAY agent再转发给 client
21、。“客户机硬件地址 ”字段:记录 client的实际硬件地址内容。 当 client 发出 DHCP请求报文时,将把自己的网卡硬件地址填入此字段,DHCPSERVER一般都会使用此字段来唯一标识一个client。而且此字段与前面的 “htype ”“hlen ”字段必须一致。如当 “htype ”“hlen ”分别为 1 和 6时,此字段必须填入6bytes的以太网 MAC地址。“中继代理 IP 地址 ”是 DHCP RELAY的 IP 地址; “htype ”、 “hlen ”、 “客户机硬件地址 ”字段分别说明了 client 的硬件地址类型、长度和地址内容。“服务器的主机名”字段:记录c
22、lient获取启动配置信息的服务器名字。此字段由 DHCPSERVER填写,而且是可选的,如果填写,必须是一个以0 结尾的字符串。“启动文件名 ”字段:记录client的启动配置文件名。此字段由DHCP SERVER填写,而且是可选的,如果填写,必须是一个以0 结尾的字符串。“选项 ”字段:对于BOOTP,又称之为 “vendor ”字段。此字段中包含了大量可选的终端初始配置信息和网络配置信息,如决定终端的IP 特性配置信息,域名信息,标识终端的特殊信息, 终端的默认网关 IP 地址, DNS服务器的 IP 地址, WINS 服务器的 IP 地址,用户使用 IP 地址的有效租期等等信息。正是因
23、为有了此字段, DHCP协议才能够给client提供大量的配置信息,此字段采用 “CLV”方式构成,即Code:标识号,唯一标识后面的信息内容,占1bytes ;length :长度,表示后面信息内容的长度,占1bytes ; value :信息内容,其长度为length所指定,以bytes 为单位。选项字段是可选字段,它是变长的,其中对于我们最重要的一个选项是"server identifier",它标识了server的 IP 地址,并把它带给client。如图 4 所示:0816代码长度数据。7。图 4 DHCP 报文的 “option ”字段编码方式当需要新的信息时,
24、可以按照这种编码方式申请新的选项即可,目前DHCP协议已经支持即成为标准的option 已有近80 项,具体内容可以参考RFC1541。由于选项不断扩展,可以从最新的RFC 中得到最新的选项集合。其中最常用的选项包括 Dhcp message type , routerIp ,DNS Ip , Wins Ip , client id ,server id等选项。Dhcp message type : code = 53, length = 1 , value= 1-8,此字段表示 DHCP报文类型 ;router Ip: code = 3 , length = IP地址长度, value=cl
25、ient的默认网关的 IP 地址;DNS Ip: code = 6 , length = IP地址长度的倍数, value= client的 DNS服务器的 IP 地址序列;Wins Ip: code = 44 , length = IP地址长度的倍数, value= client的WINS服务器的 IP 地址序列;client id: code = 61, length = client的网络硬件地址的长度2,value= “htype ”+“hlen ”+ client的网络硬件地址;server id: code = 54, length = IP地址长度, value= DHCP SE
26、RVER 的IP 地址;对于 BOOTP协议,此字段为 64bytes ,对于 DHCP协议,此字段为 64-312bytes ,当 client 想要更长时,可以与 DHCP SERVER协商。2.3DHCP 协议报文的种类DHCP协议采用CLIENT-SERVER方式进行交互, 其报文格式共有8 种,由 “选项 ”字段中的 “Dhcp message type ”选项的 value 值来确定, 后面括号中的值即为相应类型的值,具体含义如下:1: DHCPDISCOVER(0x01),此为client开始 DHCP过程的第一个报文2: DHCPOFFER(0x02),此为server对 DH
27、CPDISCOVER报文的响应3: DHCPREQUEST(0x03),此报文是 client 开始 DHCP过程中对 server 的DHCPOFFER报文的回应,或者是 client 续延 IP 地址租期时发出的报文。8。4: DHCPDECLINE( 0x04),当 client发现 server分配给它的IP 地址无法使用,如 IP 地址冲突时,将发出此报文,通知server禁止使用IP 地址5:DHCPACK(0x05),server 对 client 的 DHCPREQUEST报文的确认响应报文, Client 收到此报文后,才真正获得了 IP 地址和相关的配置信息。6:DHCPN
28、AK(0x06),server对 client的 DHCPREQUEST报文的拒绝响应报文,Client 收到此报文后,一般会重新开始新的DHCP过程。7: DHCPRELEASE(0x07), client 主动释放 server分配给它的 IP 地址的报文,当 Server 收到此报文后,就可以回收这个IP地址,能够分配给其他的client 。8: DHCPINFORM(0x08), client 已经获得了IP 地址,发送此报文,只是为了从 DHCPSERVER处获取其他的一些网络配置信息,如route ip , DNSIp 等,这种报文的应用非常少见。既然 DHCP兼容 BOOTP,那
29、么如何从报文中区分是DHCP还是 BOOTP呢?前面说过, BOOTP协议比 DHCP简单,而且 client,server间的交互过程也简单:一个来回, 两个报文就完成了, 而且也没有IP 地址续延的问题 (因此采用 BOOTP协议进行配置时,就必须一个终端一个IP 地址的事先配置好,就没有DHCP协议那么灵活了)。 BOOTP没有 DHCP那么多的报文类型, 因此当发现在一个DHCP报文的 “选项 ”字段中没有 “Dhcp message type”选项时,那么这个报文就是 BOOTP报文 。所以可见, DHCP报文 “选项 ”字段中的 “Dhcp message type ” 选项是个非
30、常重要的参数。9第 3 章 DHCP 协议的实DHCP 协议讲解现过程第3章 DHCP协议的实现过程3.1DHCP CLIENT 的行为所有支持 DHCP协议并能够发起 DHCP过程的终端都称之为 DHCPCLIENT,包括普通 PC机,各种特殊设备如 CABLEMODEM,IDT 等。DHCP CLIENT自己必须能够发出 DHCPDISCOVER、. DHCPREQUEST、DHCPDECLINE等报文 ( DHCPINFORM报文也是 DHCPCLIENT 发出,但实际中很少见),并且必须能够处理从服务器收到的以下几种报文:DHCPOFFER、DHCPACK和 DHCPNAK。当 DHC
31、PCLIENT 处于初始化状态, 即还没有获取 IP 地址的状态时, DHCPCLIENT将会发出一个广播的 DHCPDISCOVER报文从而开始 DHCP过程,其间与 DHCP SERVER的交互过程下面详述。 DHCP CLIENT自己应该具备超时机制,当此次DHCP不成功时,再自动开始新的DHCP过程。而且 DHCPCLIENT 还要根据 “xid ”字段来检查收到的 DHCP 响应报文是否与自己发出的请求报文相匹配。一旦 DHCP CLIENT获得一个具有有限使用期限的IP 地址后,它将自动维护一个定时器,在 IP 地址使用期限的50的时刻,自动启动 单播 续延 IP 地址租期的过程,
32、如若续延成功,则使用租期相应向前延长,否则,在IP 地址使用期限的 87.5 的时刻, 自动启动 广播 续延 IP 地址租期的过程, 如若续延成功,则使用租期相应向前延长,否则在IP 地址使用期限到期时,DHCP CLIENT将不再使用此 IP 地址,而是开始新的DHCP过程再次申请 IP 地址。10。?÷?ú?3?ê?3?ê?DHCPREQUESTDHCPDISCOVERDHCPNAKDHCPNAKèy?ìó|DHCPNAK?ò×aó?ú? ?1?2¥D?óDHCPOFFE
33、R×aó?ú87.5%DHCPREQUESTDHCPACK¥2¥D?óDHCPACKDHCPREQUEST×aó?ú50%DHCPREQUEST? ?óDHCPACK?IP ?·è?×aó?/DHCPRELEASEDHCPACK图 5DHCP CLIENT行为图当 DHCP CLIENT曾经获得过IP 地址,然后重启初始化时,DHCP CLIENT仍优先想使用以前的IP 地址 ,此时, DHCPCLIENT会直接启动广播续延IP 地址租期的过程,如若续延成功,则使用租期相应向
34、前延长,否则开始新的DHCP过程再次申请IP 地址。 DHCP CLIENT的 DHCP过程状态图如图5 所示。3.2DHCP SERVER的行为DHCPCLIENT, DHCPSERVER的行为比较简单,这只是仅从DHCP协议实现的角度来说的。因为在DHCPSERVER上必须提供给DHCP CLIENT分配 IP 地址和配置相关初始配置信息的功能,也就是通常所说的地址池管理功能,这又是个比较繁杂的工作,但是,这却不是DHCP协议本身的工作。除了上述的地址池管理功能外,DHCP Server 的行为完全由DHCP客户端来驱动,因此其行为相对简单,只需根据收到的 DHCPCLIENT 的各种请求
35、报文,相应的响应不同的 DHCP 响应报文即可。当 DHCP SERVER收到 DHCPDISCOVER报文后,会从地址池中分配一个空闲IP ,并获得 DHCPCLIENT 请求的参数,构造DHCPOFFER报文响应 DHCPCLIENT;当DHCP SERVER收到 DHCPREQUEST报文时,就会根据报文中记录的DHCP CLIENT的硬件地址查找其地址分配表, 如若找到, 则响应 DHCPACK报文, DHCPCLIENT 成功获得 IP 地址和配置信息,否则,响应 DHCPNAK报文, DHCP CLIENT会自。11。动重新开始DHCP过程;当DHCP SERVER收到 DHCPR
36、ELEASE报文后,会解除这个 IP 地址与某个DHCP CLIENT的绑定,回收这个IP 地址重新分配;当DHCPSERVER收到 DHCPDECLINE报文后,会禁用报文中“客户机IP 地址 ”字段的IP地址,不再分配这个IP 地址。注意: DHCPSERVER应该把收到的请求报文中的 “xid ”字段原封不动地拷贝到响应报文的 “xid ”字段,否则 DHCP CLIENT不会接受这个响应报文 。DHCP SERVER是如何知道给DHCP CLIENT 分配哪个网段的IP地址呢? DHCPSERVER收到 DHCP请求报文后,将会首先查看 “中继代理 IP 地址 ”字段是否为0 ,如果不
37、为0,则就会根据此IP 地址所在网段从相应地址池中为CLIENT 分配 IP地址,并且把响应报文直接单播给这个“中继代理IP 地址 ”指定的 IP 地址,就是 DHCPRELAYAGENT,而且 UDP的目的端口号填为 67,而不是 68,如果为 0,则 DHCPSERVER认为 CLIENT与自己在同一子网中, 将会根据自己的 IP 地址所在网段从相应地址池中为CLIENT 分配 IP 地址。3.3DHCP RELAY的行为由于 DHCP报文都采用广播方式, 是无法穿越多个子网的, 当要想 DHCP报文穿越多个子网时,就要有 DHCPRELAY的存在。 DHCPRELAY可以是路由器,也可以
38、是一台主机,总之,在具有 DHCP RELAY功能的设备中,所有具有 UDP目的端口号是 67 的局部传递的 UDP信息,都被认为是要经过特殊处理的,所以, DHCP RELAY要监听 UDP目的端口号为 67 的所有报文。当 DHCP RELAY收到一个这样的报文时,会首先判断是否是用户的请求报文,如果是用户的请求报文,它会先查看 “跳数 ”字段的值, 如果该值超过了16,这个报文会被丢弃,目前一般“跳数 ”字段的缺省值被设置为4,即如果 “跳数 ”的值大于 4,就将用户的请求报文丢弃。如果 “跳数 ”字段的值在规定范围之内,并且DHCP RELAY决定传播该报文,它必须检查 “中继代理 I
39、P 地址 ”字段的值, 如果这个字段的值为0,则 DHCPRELAY就会将接受到请求报文的端口的IP 地址填入此字段,如果该端口有多个IP地址, DHCPRELAY会挑选其中的一个并持续用它传播全部的DHCP报文;如果这个字段的值不是 0,则这个字段的值不能被修改,也不能被填充为广播地址。在这两种情况下,报文都将被单播到新的目的地(或DHCPSERVER),当然这个目的地(或 DHCP SERVER)是可以配置的,以实现DHCP报文穿越多个子网的目的。当 DHCPRELAY发现这是 DHCPSERVER的响应报文时,它也应当检查 “中继代理 IP 地址 ”字段、“你的 IP 地址 ”字段和 “
40、客户机硬件地址 ”字段等,这些字段给 DHCP RELAY提供了足够的信息将响应报文传送给客户机。12。“中继代理IP 地址 ”字段的值 (非 0)常常被用来标示一个用来传播响应报文的逻辑端口,如果这个值不能匹配任何一个与DHCP RELAY直连的逻辑端口,则这个响应报文将被丢弃。同样 DHCPRELAY也会检查 “标志 ”字段中的广播标志位的值,如果为1,将广播封装好的报文,否则单播封装好报文后,传送给DHCP CLIENT,标准的DHCPRELAY的功能相对来说也比较简单,只是重新封装、续传DHCP报文。下面的图6 很好的标示出了对于不同的请求报文,其相应的响应报文的方式。图 6不同的请求
41、报文多对应的响应报文方式其中: B 表示广播的标志位X 表示并不关心相应的字段取什么值normal表示从给定的IP 地址进行正常的IP 路由转发或用ARP转发3.4DHCP 交互过程标准的 DHCP server和 client的交互过程如图7 所示:。13。图 7DHCP 交互过程时序图下面首先讲解DHCP SERVER与 CLIENT的标准交互过程:1、CLIENT 首先发出 广播 的 DHCPDISCOVER报文, 广播的目的是让DHCPSERVER能够收到这个请求报文。在这个报文中,CLIENT 可以在 “选项 ”字段中加入“request paramter list”选项,表明自己想
42、要获得的各种参数,而且四个IP地址字段都必须为0。2、由于 DHCPDISCOVER报文是广播,那么所有的DHCPSERVER都能够收到,所有的 DHCP SERVER都会响应一个 DHCPOFFER报文,其中 “你的 IP 地址 ”字段就是 DHCPSERVER能够提供给 CLIENT 使用的 IP 地址,而且 DHCPSERVER会把自。14。己的 IP 地址放在 “选项 ”字段中以便 CLIENT 区分不同的 DHCP SERVER,发出此报文后,在 DHCP SERVER上就会存在一个已分配 IP 地址的记录。3、 CLIENT 能够收到所有的 DHCPOFFER报文,但 CLIEN
43、只能处理其中的一个,一般的原则是 CLIENT接收、 处理最先收到的那个 DHCPOFFER报文 。CLIENT 会再发出一个广播 的 DHCPREQUEST报文,在 “选项 ”字段中会加入选中的DHCPSERVER的 IP 地址和用户想要的IP 地址,之所以广播是因为要通知所有的DHCPSERVER进行相应的处理。4、 DHCP SERVER收到DHCPREQUEST报文,判断 “选项 ”字段中的DHCP SERVER的 IP 地址是否与自己的地址相同,不相同,则不做任何处理,如果自己发出过 DHCPOFFER报文,则清除相应IP 地址记录;当 “选项 ”字段中的DHCPSERVER的 IP
44、 地址是与自己的 IP 地址相同时, DHCPSERVER就会响应一个 DHCPACK报文,其内容同 DHCPOFFER类似,并在 “选项 ”字段中增加了 IP 地址使用租期选项。5、 CLIENT 收到 DHCPACK报文后(经过上面的处理后,有且只有一个DHCPACK报文),会检查DHCP SERVER分配给自己的 IP 地址是否能够使用,如在以太网类型的网络中,CLIENT 会发出免费的 ARP请求来确定 DHCP SERVER分配的IP 地址是否已经被别人使用,如果可以使用,则CLIENT 成功获得 IP 地址,并根据 IP 地址使用租期自动启动续延过程。6、如果 CLIENT 发现
45、DHCPSERVER分配的 IP 地址已经被别人使用,则CLIENT会发出 DHCPDECLINE报文通知 DHCPSERVER禁用这个 IP 地址以免引起IP 地址冲突。然后 CLIENT 又开始新的 DHCP过程,从第1 步开始。7、当 CLIENT 成功获取 IP 地址后,会根据 IP 地址使用租期自动启动续延过程,在使用租期过去50时刻处,向 DHCP SERVER发送单播 DHCPREQUEST报文续延租期,如果成功即收到DHCP SERVER的 DHCPACK报文,则租期相应向前延长,如果失败即没有收到DHCPACK报文,则 CLIENT 继续使用这个 IP 地址。在使用租期过去87.5 时刻处,向 DHCP SERVER发送广播 DHCPREQUEST报文续延租期,如果成功即收到DHCP SERVER的 DHCPACK报文,则租期相应向前延长;如果失败即没有收到DHCPACK报文,则 CLIENT继续使用这个IP 地址。在使用租期到期时, CLIENT 应自动放弃使用这个IP 地址,并开始新的DHCP过程,从第 1 步开始 。8、 CLIENT 在成功获取 IP 地址后,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大班教学计划家长工作
- 2026年职业技能培训提升行动计划书
- 2026年国内外节事活动研究现状
- 物联网时代农机交易去中心化平台的安全性研究-洞察与解读
- 2026年防洪防汛培训测试题及答案
- 2026年性格分析测试题目及答案
- 2026年数据挖掘统计测试题及答案
- 2026年感情缺失症测试题及答案
- 2026年压力蒸汽灭菌测试题及答案
- 2026年事业编的测试题及答案
- 设计变更确认单范本
- 《资治通鉴》与为将之道知到课后答案智慧树章节测试答案2025年春武警指挥学院
- 信息技术资源配置安全管理计划
- 三农产品市场营销策划作业指导书
- DB51T 2772-2021 四川省医疗护理员服务规范
- 2023-2024学年苏教版二年级数学下学期期末乐考A卷
- 基本穿搭指南(穿衣法则)
- 跟踪审计服务 投标方案(技术方案)
- 木制品加工有限公司双体系资料之风险分级管控体系实施手册范本
- 2024年非生产岗位职责
- 陕西榆林能源集团有限公司招聘考试题库2023
评论
0/150
提交评论