收藏 分享(赏)

第10章 动态主机配置ok.ppt

上传人:ysd1539 文档编号:6956681 上传时间:2019-04-28 格式:PPT 页数:39 大小:10.68MB
下载 相关 举报
第10章 动态主机配置ok.ppt_第1页
第1页 / 共39页
第10章 动态主机配置ok.ppt_第2页
第2页 / 共39页
第10章 动态主机配置ok.ppt_第3页
第3页 / 共39页
第10章 动态主机配置ok.ppt_第4页
第4页 / 共39页
第10章 动态主机配置ok.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、第10章 引导协议与动态主机配置协议,为了将软件协议做成通用的和便于移植,协议软件的编写者把协议软件参数化。这就使得在很多台计算机上使用同一个经过编译的二进制代码成为可能。 一台计算机和另一台计算机的区别,都可通过一些不同的参数来体现。 在软件协议运行之前,必须给每一个参数赋值。,协议配置,在协议软件中给这些参数赋值的动作叫做协议配置。 一个软件协议在使用之前必须是已正确配置的。 具体的配置信息有哪些则取决于协议栈。,协议配置(续),需要配置的项目(1) IP 地址(2) 子网掩码(3) 默认路由器的 IP 地址(4) 域名服务器的 IP 地址 这些信息通常存储在一个配置文件中,计算机在引导过

2、程中可以对这个文件进行存取。,协议配置(续),网络规模比较大时,静态IP分配工作量太大; 在静态分发IP地址的网络中容易出现IP地址冲突的问题。 较好的解决办法是为客户机动态分配IP地址。 BOOTP和DHCP就是为这样的目标而设计的。,第10章 引导协议与动态主机配置协议,10.1 BOOTP原理 10.2 BOOTP 报文 10.3 DHCP基本概念 10.4 DHCP运行方式 10.5 DHCP/BOOTP中继代理,10.1 BOOTP的工作过程,引导协议(BOOTStrap Protocol,BOOTP)也称为自举协议,主要设计用来为无盘工作站提供IP信息,能在一定程度上完成IP地址分

3、配的任务。它除了能分配IP地址外,还能为无盘工作站提供用于定位引导目录的路径信息。 无盘节点启动时它需要从网上获得三种信息: 自己的IP地址 文件服务器的IP地址 可运行的初始内存印象(启动映象文件名),BOOTP使用UDP进行数据传递,采用C/S工作方式,包括BOOTP Server(引导协议服务机端)和BOOTP Client(引导协议客户机端),使用两个熟知的UDP端口,即BOOTP客户机端使用68端口,BOOTP服务器使用67端口。,2019/4/28,7,BOOTP协议工作过程:,1)由ROM芯片中的BOOTP启动代码启动客户机,此时客户机还没有IP地址,它便用有限广播形式以0.0.

4、0.0的源IP地址向网络中发出BOOTP请求,这个请求中包含了客户机网卡的MAC地址。在BOOTP客户机发送请求时,使用全1的广播地址(255.255.255.255)作为目的地址。,BOOTP协议工作过程:,客户计算机除了可以通过BOOTP请求/应答包获得自身的IP地址信息外,还可以包含“通用”引导文件名,例如,“unix”或“ethertip”。服务器发送BOOTP应答包时,使用对应的引导文件的确切的路径名称来取代这个字段。为了确定路径名,服务器会查询自身的数据库,这个数据库关联了客户机地址、请求文件名和为用户定制的特殊引导文件。如果BOOTP请求文件名是空,服务器就返回一个文件名字段用于

5、表示客户机需加载的默认文件。,BOOTP协议工作过程:,2)网络中运行BOOTP服务的服务器服务器必须有一个硬件地址和IP地址对应的数据库。根据请求中的MAC地址在BOOTP数据库中查找这个MAC的记录,如果没有此MAC的记录则不响应这个请求,如果有就将有关信息发送回客户机。返回的响应中包含的主要信息有客户机的IP地址、服务器的IP地址和启动映象文件名等信息。 BOOTP服务器发送应答报文时,可以采用广播方式也可以采用单播方式,采用单播时使用收到的广播帧上的硬件地址。3)客户机根据返回信息通过TFTP服务器下载启动映象文件,并启动该文件。,客户,68,客户,68,服务器,67,服务器,67,请

6、求,应答,UDP,UDP,UDP,UDP,服务器,67,UDP,被动打开,BOOTP与RARP的比较,两者工作模式相同,均采用请求/应答的客户-服务器方式,从而具有很大的灵活性。 两者不同之处:BOOTP服务器是作为一个应用程序而存在的,请求/应答报文在同一个IP网络内实现,易于修改和移植。而RARP服务器存在于内核中,请求/应答报文在同一个物理网络内实现,修改和移植都很困难。,返回,10.2 BOOTP 报文格式,BOOTP协议有请求和应答两种报文,被封装在UDP数据报中。,长度为300字节的BOOTP请求和应答的格式。,0 8 16 24 31,BOOTP报文各个字段含义,操作代码Op:1

7、表示是BOOTP请求(BOOTREQUEST),2表示是BOOTP应答(BOOTREPLY)。 硬件地址类型Htype:1表示10Mb/s的以太网。 硬件地址长度Hlen:对于以太网,该字段为6。 “跳数” Hops:表示当前的报文经过的RELAY(中继代理)的数目。 事务标识Xid:是一个由客户机设置的32位整数。客户机用它对请求和应答进行匹配。 客户启动时间Secs:客户机开始地址请求或续约后消耗的时间(秒数。 标记 Flags:未用,BOOTP报文各个字段含义,客户机IP地址Ciaddr:假如该客户机已经知道自身的IP地址,它将其写入本字段。否则,它将该字段设置为0。对于后面这种情况,服

8、务器用该客户机的IP地址写入Yiaddr字段。 你的IP地址Yiaddr:服务器查得该客户机的IP地址后,写入Yiaddr字段。 服务器IP地址Siaddr:在bootstrap中下一台可用服务器的IP地址,由服务器填写。 网关IP地址Giaddr:通过代理启动时代理的IP地址,假如使用了某个代理服务器,则该代理服务器就填写“网关IP地址”字段。,BOOTP报文各个字段含义,客户机硬件地址Chaddr:客户机必须设置它的“客户硬件地址”字段。尽管这个值与以太网数据帧头中的值相同。 服务器主机名Sname:其他可用服务器主机名称,是一个以NULL作终止符的字符串,由服务器填写。 引导文件名Fil

9、e:以Null作终止符的字符串; 厂商专用区Vend:供应商相关的参数字段,用于对BOOTP进行不同的扩展。,10.3 DHCP协议,BOOTP用于相对静态环境,每个主机都有一个永久的网络连接,管理人员创建一个BOOTP配置文件来定义每个主机的BOOTP参数。在计算机经常移动和实际计算机数目超过了可获得的IP地址时,这种静态映射就不适用了。 为此,发展了DHCP协议,DHCP协议兼容BOOTP协议。DHCP从两个方式上扩充了BOOTP:1)DHCP可使计算机用消息获取它所需要的所有配置信息。2)DHCP允许计算机快速动态的获取IP地址。,18,10.3 DHCP协议,BOOTP是静态的而DHC

10、P是动态的。设计BOOTP的目的是用作远端引导。而DHCP为移动工作组设计,DHCP为了能完成动态的配置工作,需要有一个动态IP分配策略,这个策略在整个子网掩码范围内管理永久和短期租借的地址。 DHCP实际上是BOOTP的改进,二者的基本原理一样。和BOOTP一样,DHCP也使用UDP封装报文,客户机使用端口68,服务器段使用端口67进行通信。二者都能在客户机启动时分配IP地址。,2019/4/28,19,DHCP支持三种类型的地址分配:1)自动分配:DHCP给主机指定一个永久的IP地址;2)动态分配:主机IP地址的动态性表现在,被分配的IP地址有时间限制或自己可以明确表示放弃本地址。3)手工

11、分配:网络管理员按照DHCP规则,将指定IP地址分配给主机。 动态分配:自动重用地址的机制。这种方法适合于临时上网用户,而且在网络的IP地址资源不是很多的时候特别有用。,2019/4/28,20,10.3 DHCP协议,DHCP信息包的格式是基于BOOTP包格式的,不同:标志位(1强迫服务器以广播应答)选项变长,额外的DHCP选项,10.4 DHCP运行方式,1DHCP客户机运行机制 所有支持DHCP协议并能够发起DHCP过程的终端都称之为DHCP客户机。DHCP客户机自己必须能够发出DHCPDISCOVER、DHCPREQUEST、DHCPDECLINE等报文。 DHCP客户机运行状态图如图

12、所示。 当DHCP客户机处于初始化状态即还没有获取IP地址的状态时,DHCP客户机将会发出一个广播的DHCPDISCOVER报文,从而开始DHCP过程。,10.4 DHCP运行方式,当客户机第一次启动时它进入初始化状态INIT。为了开始获取一个IP地址,客户机先广播一个DHCPDISCOVER报文并转移到SELECTING选择状态。由于协议是对BOOTP的扩充,客户机在一个UDP数据报中发送DHCPDISCOVER报文,UDP数据报中目的端口设为BOOTP端口即端口67。本地网上所有DHCP服务器接收报文,那些被设计成能响应特定客户机的服务器发送DHCPOFFER报文。因此客户机可能收到零个或

13、多个响应(DHCPOFFER)。,10.4 DHCP运行方式,处于SELECTING状态时,客户机从DHCP服务器收集DHCPOFFER响应。每个响应提供了用于客户机的配置信息,还有服务器可提供租用给客户机的一个IP地址。客户机必须选择其中一个响应如第一个到达的响应,并与服务器协商租用。为此客户机发送给服务器一个DHCPREQUEST报文,并进入请求状态。服务器为确认已接受请求并开始租用,服务器响应发出一个DHCPACK报文。客户机收到确认后转移到BOUND已绑定状态,此时客户机可开始使用此地址。,DHCP 客户机更新租约的过程,在客户机租期达到T1(50%)时,客户机需要更新租约。 1. 客

14、户机直接向提供租约的服务器发送请求,要求更新及延长现有地址的租约。 2. 如果DHCP服务器收到请求,它发送 DHCPACK给客户机,更新客户机的租约。 3. 如果客户机无法与提供租约的服务器取得联系,则客户机一直等到租期达到T2(87.5%)时,客户机进入到一种重新申请的状态,它向网络上所有的DHCP服务器广播DHCPREQUEST以更新现有的地址租约。,10.4 DHCP运行方式,4. 如有服务器响应客户机的请求,那么客户机使用该服务器提供的地址信息更新现有的租约。 5. 如果租约过期或无法与其它服务器通信,客户机将无法使用现有的地址租约。客户机返回到初始启动状态,利用前面所述的步骤重新获

15、取IP地址租约。,2DHCP服务器运行机制,DHCP 服务器行为由DHCP客户端来驱动,根据DHCP 客户机请求报文发出响应报文:1)如果收到DHCPDISCOVER报文,则从地址池中分配一个空闲IP,结合客户机请求参数,构造DHCPOFFER响应报文。2)如果收到DHCPREQUEST报文,就会根据客户机的硬件地址,查找其地址分配表,如若找到则响应DHCPACK报文,否则响应DHCPNAK报文,DHCP客户机会自动重新开始DHCP过程。,3)如果收到DHCPRELEASE报文,则会解除这个IP地址与某个DHCP客户机的绑定,等待重新分配。4)如果收到DHCPDECLINE报文,会禁用报文中客

16、户机IP地址字段的IP地址,不再分配这个IP地址。,2019/4/28,31,3. DHCP交互过程,1) 首先,客户机发出DHCPDISCOVER广播报文,以便DHCP服务器能够知道客户机想要获得的各种参数。2) 所有的DHCP服务器都会为DHCPDISCOVER广播报文响应一个DHCPOFFER报文,同时,DHCP服务器会保存已分配IP地址的记录。3) 客户机能够收到每个DHCPOFFER报文,但一次只能处理一个,一般处理最先收到的DHCPOFFER报文。接着,客户机会再发出DHCPREQUEST广播报文。,4) DHCP服务器收到DHCPREQUEST报文,判断报文中服务器地址是否与自己

17、的地址相同:如果相同,DHCP服务器响应DHCPACK报文,并在选项字段中增加了IP地址使用租期选项。 5) 客户机收到DHCPACK报文后,判断DHCP服务器分配给自己的IP地址是否一致,如果是,则表明客户机成功获得IP地址;如果否,则通知DHCP服务器禁用这个IP地址以免引起IP地址冲突,然后客户机从第1步重新开始。,6) 客户机根据IP地址使用租期自动启动续延过程,在使用租期过去的一定时刻处(T1,T2),向DHCP服务器发送DHCPREQUEST报文续延租期,如果成功,则租期相应向前延长;如果没有,则客户机继续使用这个IP地址。使用租期一到,客户机应自动放弃使用这个IP地址,并重新从第

18、1步开始。 7) 客户机在成功获取IP地址后,随时可以释放自己的IP地址,DHCP服务器收到DHCPRELEASE后,会回收相应的IP地址进行重新分配。,返回,35,10.5 DHCP/BOOTP 中继代理,如果DHCP服务器与客户机分别位于不同的子网上,则用户的路由器必须具备DHCP/BOOTP中继代理(Relay Agent)的功能(RFC1542) 。DHCP中继代理是一个程序,它能够把 DHCP/BOOTP广播信息从一个子网转播到另一个子网上。,在子网 2 中的客户机 C 从子网 1 中的DHCP服务器上获得 IP 地址租约。 DHCP客户机C在子网2上广播DHCP/BOOTP dis

19、cover消息(DHCPDISCOVER) 。 当中继代理(在本例中是一个具有DHCP/BOOTP中继代理功能的路由器)接收到这个消息后,它检查包含在这个消息报头中的网关IP地址,如果IP地址为 0.0.0.0,则用中继代理或路由器的IP地址替换它,然后将其转发到DHCP服务器所在的子网 1上。 当在子网 1 中的 DHCP服务器收到这个消息后,它开始检查消息中的网关IP地址是否包含在DHCP范围内,从而决定它是否可以提供IP地址租约。,如果DHCP服务器含有多个DHCP范围,消息中的网关IP地址是用来确定从那个DHCP范围中挑选IP地址并提供给客户。 DHCP服务器1将它所提供的IP地址租约

20、 (DHCPOFFER)直接发送到中继代理 。 路由器将这个租约利用广播的形式转发给 DHCP 客户机。注意:如果要配置多台DHCP服务器,最好将它们分别放在不同的子网中,且每个 DHCP 服务器上都应建立独立的地址池,在地址池中应包含各个子网的IP地址。,本章要点,BOOTP协议是针对网络上无盘结点而设计的引导协议,网络启动时它需要从服务器获得自己的IP地址、文件服务器的IP地址、可运行的引导文件名等信息。一般与文件传输协议配合使用来获取引导文件。 BOOTP/DHCP协议有请求和应答两种报文,被封装在UDP数据报中传输。 动态主机配置协议DHCP是在TCP/IP网络上使客户机获得配置信息的协议,它基于BOOTP协议,并在BOOTP协议的基础上添加了自动分配可用网络地址等功能。 BOOTP/DHCP客户端的UDP端口号为68,BOOTP/DHCP服务器的UDP端口号为67。 BOOTP是一个静态配置协议,而DHCP是一个动态配置协议。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑环境 > 建筑资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报