引导协议与动态主机配置.ppt_第1页
引导协议与动态主机配置.ppt_第2页
引导协议与动态主机配置.ppt_第3页
引导协议与动态主机配置.ppt_第4页
引导协议与动态主机配置.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10章 引导协议与动态主机配置协议,引导协议BOOTP(BOOTstrap Protocol)是TCP/IP协议族的应用层协议,它的主要作用是使无盘站点从服务器上获得引导信息。 动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是在BOOTP协议基础上发展起来的协议,它使客户机能够在TCP/IP网络上获得相关的配置信息。,第10章 引导协议与动态主机配置协议,10.1 BOOTP原理 10.2 BOOTP 报文 10.3 启动配置文件 10.4 DHCP基本概念 10.5 DHCP运行方式 10.6 DHCP/BOOTP中继代理,10.1 BOOTP原理,引导协议BOOTP是针对网络上无盘节点而设计的启动协议,无盘节点启动时它需要从网上获得三种信息: 自己的IP地址 文件服务器的IP地址 可运行的初始内存印象(启动映象文件名) 利用RARP只能获得自己的IP地址。,BOOTP协议工作过程: 1)由ROM芯片中的BOOTP启动代码启动客户机,此时客户机还没有IP地址,它便用有限广播形式以的源IP地址向网络中发出BOOTP请求,这个请求中包含了客户机网卡的MAC地址。 2)网络中运行BOOTP服务的服务器接收到这个请求,根据请求中的MAC地址在BOOTP数据库中查找这个MAC的记录,如果没有此MAC的记录则不响应这个请求,如果有就将有关信息发送回客户机。返回的响应中包含的主要信息有客户机的IP地址、服务器的IP地址和启动映象文件名等信息。 3)客户机根据返回信息通过TFTP服务器下载启动映象文件,并启动该文件。,客户,68,客户,68,服务器,67,服务器,67,请求,应答,UDP,UDP,UDP,UDP,服务器,67,UDP,被动打开,BOOTP协议的实现要点如下: 1)使用一个单独的包交换信息; 使用超时重发机制,直到发送方收到应答信息为止。 请求和应答使用相同的包字段结构格式; 使用(最大可能长度的)固定长度的字段,以简化结构定义和分析的需要。 2)客户端广播引导请求(boot request)包,其包含客户端的硬件地址,如果知道的话,还包含它的IP地址。服务器单播引导应答(boot reply)包。,3)请求可以包含客户端指定的响应服务器的名称。这样客户端可以强制从一个指定的主机引导。如果一个相同的引导文件存在多种版本或服务器属于一个远距离的网络/域,客户端不必处理名称/域服务,而是由BOOTP服务器实现这种情况下的相应功能。 4) 请求可以包含通用(generic)引导文件名。例如unix 。但服务器发送引导应答时,它使用对应的引导文件的确切路径名称来取代这个字段。 5) 服务器必须有一个硬件地址和IP地址对应的数据库。此类客户端IP地址被放在引导应答的对应字段中。 6) 某些网络拓扑可能在一个物理网上没有一个直接可以访问的TFTP服务器,BOOTP允许客户端通过使用相邻的网关从几跳外的服务器上引导。,引导协议BOOTP的特点: 1)BOOTP协议基于UDP,不和硬件直接打交道,易于实现且移植性好; 2)协议交换的信息量较大,可以充分利用硬件的能力。 BOOTP与RARP的比较: 两者工作模式相同,均采用请求/应答的客户-服务器方式,从而具有很大的灵活性。 两者不同之处:BOOTP服务器是作为一个应用程序而存在的,请求/应答报文在同一个IP网络内实现,易于修改和移植。而RARP服务器存在于内核中,请求/应答报文在同一个物理网络内实现,修改和移植都很困难。,返回,10.2 BOOTP 报文,10.2.1 BOOTP 报文格式 BOOTP协议有请求和应答两种报文,被封装在UDP数据报中,如图10-1所示。,图10-2显示了长度为300字节的BOOTP请求和应答的格式。,300字节,0 8 16 24 31,特定厂商区域字段由两部分组成: 第一部分叫做魔饼(magic cookie),长度为4个字节,用于定义其后面部分内容的格式(9): 第二部分是一个项目表,每个项目包含: 一个长度为1字节的类型域(type) 一个可选的1个字节的长度域(length) 一个由长度域定义的多字节的值域(value),10.2.2 BOOTP 报文传输,BOOTP报文通过无连接UDP传输,其可靠性由应用程序完成。 主要处理步骤: 客户端传送请求 客户端重传请求 服务器接收引导请求 客户端接收应答 通过网关引导,1客户端传送引导请求 客户在第一次建立数据包前,最好把整个包的缓冲区清零;这将所有的字段设置成默认状态。 IP目的地址被设置成55(广播地址)或服务器的IP地址。 IP源地址设置成客户端IP地址,如果此时客户端IP地址未知,则置为0。 UDP头使用适当的长度设置,源端口设置为BOOTP客户端端口68,目标端口设置为BOOTP服务器端口67。,操作码字段设置成1,表示引导请求。 硬件类型字段设置成所在物理网络硬件地址类型。 硬件地址长度设置成硬件地址长度,例如,以太网是6。 事务标识字段设置成一个随机事务ID。 秒数字段设置成客户端引导开始后过去的秒数。设置这个数值是为了让服务器知道客户端已经尝试的时间多少。 客户IP地址字段和IP源地址值相同。 客户硬件地址字段根据客户端硬件地址填写。 如果客户端希望限制从一个特定服务器引导,就可以在服务器IP地址字段和服务器主机名字段中填写相应内容。,客户端在填写引导文件名字段时有以下几种选择: 1)设置成空,即使用默认的文件来引导。 2)这个字段也可以是一般常用的名字,例如unix。 3)这个字段还可以是具体的目录路径名字。 特定厂商区域字段可以由客户端填写卖主的字符串或结构。如果使用了特定厂商区域字段,该字段中第一个条目为一个4字节的魔饼,以便让服务器确定在这个字段中是什么类型的信息。,2客户端重传 BOOTP报文通过重传策略实现可靠性,主要包括时间片与重传技术。 在一长段时间内没有收到应答,客户端应该重传请求。 时间间隔必须仔细选择不要引起网络拥塞。BOOTP推荐延迟一个随机时间(0-4秒),延迟算法采用二进制指数后退方法。 每次重传前,客户端应该修改秒数字段。,3服务器接收引导请求 如果UDP目的端口不匹配BOOTP服务器端口,则丢弃数据包。 如果服务器名字字段是空(没有指定特定的服务器),或者该字段是指定的并且匹配服务器名字或别名,继续包的处理。 如果服务器名字字段是指定的,但不匹配本服务器,则有多种选择: 1)可以选择简单丢弃这个包。 2)如果通过查询服务器名字字段名称,显示其在某网络中,可以丢弃这个包,你也可以选择转发这个包到那个地址。 转发:检查网关地址字段。如果其值为0,填入本服务器地址或可以用来到达那个网络的网关的地址。然后转发这个包。,如果客户端IP地址是0,那么客户端不知道自己的IP地址,此时,在本服务器的数据库中查找客户端的硬件地址。如果找到该客户端IP地址,便填入你的IP地址字段。如果没有匹配,则丢弃数据包。 接着检查引导文件名字段。 1)如果客户端不关注文件名或想要默认引导文件,则这个字段是空。 2)当这个字段非空,可以将它和客户端的IP地址做为数据库的查询关键字。 如果有默认的文件或通用文件或一个匹配的指定的路径名称,就在引导文件名字段中填入选择的引导文件的指定的路径名称。 如果引导文件名字段是非空并且没有匹配,那么客户端要一个本服务器没有的文件,丢弃这个包。,然后检查特定厂商区域字段。如果提供一种可识别类型的数据,应该进行客户端指定的动作,并且回应要填入应答包中的特定厂商区域字段数据字段。 服务器IP地址字段填入本服务器对应值。 设置操作码字段字段为2,表示引导应答。 UDP目的端口设置成BOOTP客户端端口。如果客户端地址非0,把包发送到那里;否则,查看网关地址,如果网关地址非0,则把包发送到网关地址。,4.客户端接收应答 客户端丢弃以下的包: UDP相关的端口不是引导定位端口 不是BOOTP引导应答 不匹配客户端自己IP地址或硬件地址 不匹配客户端自己发出的事务标识ID 除这些以外,客户端便收到一个成功的应答。 如果客户端以前不知道自己IP地址,查询相关IP地址字段便知道自己的IP地址。,5通过网关引导 侦听BOOTP引导请求广播的网关可能确定转发这些请求。 转发立即开始 等客户端确定的秒数字段超过某个阀值。 当一个网关确定转发请求时,网关IP地址字段如果是0,它就在这个字段中加入自己的IP地址。也可以使用跳数字段来可控制包可以转发多远,每次转发应该增加跳数,以便决定何时终止转发。,返回,10.3 启动配置文件,IP地址是IP网络上唯一标识一个接入终端最原始和最有效的标识符。 分配IP地址的方法: 自协商方式 用户自己静态配置 管理员统一分配配置等方式 更重要的是:很多终端启动时不仅需要IP地址,而且还需要动态地获取更多的启动配置信息。,以协议机制工作的配置方式 BOOTP是最早的主机配置协议。BOOTP服务器上有一个关于本网络上各无盘结点的启动配置文件。 BOOTP请求的引导文件名字段中填入“UNIX”等通用名称,服务器收到请求后,从启动配置文件中查找,当找出适合于该客户硬件体系结构的启动文件名,便填入BOOTP响应中同一域,返回客户机。 采用启动配置文件有两大优点: 1)管理员可以对客户机的引导文件进行配置。 2)方便客户机用户,使他们不必记住确切的引导文件名,也不必记住客户机的硬件结构。,BOOTP用于相对静态环境,每个主机都有一个永久的网络连接,管理人员创建一个BOOTP配置文件来定义每个主机的BOOTP参数。在计算机经常移动和实际计算机数目超过了可获得的IP地址时,这种静态映射就不适用了。 为此,发展了DHCP协议,DHCP协议兼容BOOTP协议。DHCP从两个方式上扩充了BOOTP: 1)DHCP可使计算机用消息获取它所需要的所有配置信息。 2)DHCP允许计算机快速动态的获取IP地址。,DHCP支持三种类型的地址分配: 1)自动分配:DHCP给主机指定一个永久的IP地址; 2)动态分配:主机IP地址的动态性表现在,被分配的IP地址有时间限制或自己可以明确表示放弃本地址。 3)手工分配:网络管理员按照DHCP规则,将指定IP地址分配给主机。 动态分配:自动重用地址的机制。这种方法适合于临时上网用户,而且在网络的IP地址资源不是很多的时候特别有用。,返回,10.4 DHCP基本概念,动态主机配置协议DHCP是在TCP/IP网络上使客户机获得配置信息的协议。 图10-3 表示典型DHCP网络。,DHCP信息包的格式是基于BOOTP包格式的。 不同:标志位(1强迫服务器以广播应答) 选项变长,额外的DHCP选项:,使用DHCP的好处: 1安全而可靠的设置 DHCP避免了因手工设置IP地址及子网掩码所产生的错误,同时也避免了把一个IP地址分配给多台工作站所造成的地址冲突。 2降低了管理IP地址设置的负担 使用DHCP服务器大大缩短了配置或重新配置网络中工作站所花费的时间,通过对DHCP服务器的设置可灵活的设置地址的租期。 DHCP地址租约的更新过程将有助于确定哪个客户的设置需要经常更新,且这些变更由客户机与DHCP服务器自动完成,无需网络管理员人工干预。,返回,10.5 DHCP运行方式,1DHCP客户机运行机制 所有支持DHCP协议并能够发起DHCP过程的终端都称之为DHCP客户机。DHCP客户机自己必须能够发出DHCPDISCOVER、DHCPREQUEST、DHCPDECLINE等报文。 DHCP客户机运行状态图如图所示。 当DHCP客户机处于初始化状态即还没有获取IP地址的状态时,DHCP客户机将会发出一个广播的DHCPDISCOVER报文,从而开始DHCP过程。,当客户机第一次启动时它进入初始化状态INIT。为了开始获取一个IP地址,客户机先广播一个DHCPDISCOVER报文并转移到SELECTING选择状态。 由于协议是对BOOTP的扩充,客户机在一个UDP数据报中发送DHCPDISCOVER报文,UDP数据报中目的端口设为BOOTP端口即端口67。 本地网上所有DHCP服务器接收报文,那些被设计成能响应特定客户机的服务器发送DHCPOFFER报文。因此客户机可能收到零个或多个响应(DHCPOFFER)。,处于SELECTING状态时,客户机从DHCP服务器收集DHCPOFFER响应。每个响应提供了用于客户机的配置信息,还有服务器可提供租用给客户机的一个IP地址。客户机必须选择其中一个响应如第一个到达的响应,并与服务器协商租用。 为此客户机发送给服务器一个DHCPREQUEST报文,并进入请求状态。 服务器为确认已接受请求并开始租用,服务器响应发出一个DHCPACK报文。客户机收到确认后转移到BOUND已绑定状态,此时客户机可开始使用此地址。,DHCP 客户机更新租约的过程: 在客户机租期达到T1(50%)时,客户机需要更新租约。 1. 客户机直接向提供租约的服务器发送请求,要求更新及延长现有地址的租约。 2. 如果DHCP服务器收到请求,它发送 DHCPACK给客户机,更新客户机的租约。 3. 如果客户机无法与提供租约的服务器取得联系,则客户机一直等到租期达到T2(87.5%)时,客户机进入到一种重新申请的状态,它向网络上所有的DHCP服务器广播DHCPREQUEST以更新现有的地址租约。,4. 如有服务器响应客户机的请求,那么客户机使用该服务器提供的地址信息更新现有的租约。 5. 如果租约过期或无法与其它服务器通信,客户机将无法使用现有的地址租约。客户机返回到初始启动状态,利用前面所述的步骤重新获取IP地址租约。,2DHCP服务器运行机制 DHCP 服务器行为由DHCP客户端来驱动,根据DHCP 客户机请求报文发出响应报文: 1)如果收到DHCPDISCOVER报文,则从地址池中分配一个空闲IP,结合客户机请求参数,构造DHCPOFFER响应报文。 2)如果收到DHCPREQUEST报文,就会根据客户机的硬件地址,查找其地址分配表,如若找到则响应DHCPACK报文,否则响应DHCPNAK报文,DHCP客户机会自动重新开始DHCP过程。 3)如果收到DHCPRELEASE报文,则会解除这个IP地址与某个DHCP客户机的绑定,等待重新分配。 4)如果收到DHCPDECLINE报文,会禁用报文中客户机IP地址字段的IP地址,不再分配这个IP地址。,3. DHCP交互过程,1) 首先,客户机发出DHCPDISCOVER广播报文,以便DHCP服务器能够知道客户机想要获得的各种参数。 2) 所有的DHCP服务器都会为DHCPDISCOVER广播报文响应一个DHCPOFFER报文,同时,DHCP服务器会保存已分配IP地址的记录。 3) 客户机能够收到每个DHCPOFFER报文,但一次只能处理一个,一般处理最先收到的DHCPOFFER报文。接着,客户机会再发出DHCPREQUEST广播报文。 4) DHCP服务器收到DHCPREQUEST报文,判断报文中服务器地址是否与自己的地址相同:如果相同,DHCP服务器响应DHCPACK报文,并在选项字段中增加了IP地址使用租期选项。,5) 客户机收到DHCPACK报文后,判断DHCP服务器分配给自己的IP地址是否一致,如果是,则表明客户机成功获得IP地址;如果否,则通知DHCP服务器禁用这个IP地址以免引起IP地址冲突,然后客户机从第1步重新开始。 6) 客户机根据IP地址使用租期自动启动续延过程,在使用租期过去的一定时刻处(T1,T2),向DHCP服务器发送DHCPREQUEST报文续延租期,如果成功,则租期相应向前延长;如果没有,则客户机继续使用这个IP地址。使用租期一到,客户机应自动放弃使用这个IP地址,并重新从第1步开始。 7) 客户机在成功获取IP地址后,随时可以释放自己的IP地址,DHCP服务器收到DHCPRELEASE后,会回收相应的IP地址进行重新分配。,返回,10.6 DHCP/BOOTP 中继代理,如果DHCP服务器与客户机分别位于不同的子网上,则用户的路由器必须具备DHCP/BOOTP中继代理(Relay Agent)的功能(RFC1542) 。 DHCP中继代理是一个程序,它能够把 DHCP/BOOTP广播信息从一个子网转播到另一个子网上。,如前图 在子网 2 中的客户机 C 从子网 1 中的DHCP服务器上获得 IP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论