《路由交换技术与应用》课件第18章_第1页
《路由交换技术与应用》课件第18章_第2页
《路由交换技术与应用》课件第18章_第3页
《路由交换技术与应用》课件第18章_第4页
《路由交换技术与应用》课件第18章_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

第18章动态路由RIP技术18.1RIP协议概述18.2RIP协议的实现18.3RIP协议的报文格式与协议处理18.4RIP的度量值metric18.5RIP路由器路由表的建立、更新与收敛18.6RIP协议的特点小结

主要内容:

动态路由协议概述

动态路由协议RIP原理

路由器的关键作用是用于异构网络的互连,每个路由器与两个以上的实际网络相连,负责在这些网络之间转发数据报。RIP(RouteInformationProtocol)协议(也称RIP)是基于D-V算法(又称为Bellman-Ford算法)的内部动态路由协议。D-V是Distance-Vector的缩写,因此D-V算法又称为距离向量算法。这种算法在Arparnet早期就用于计算机网络的路由的计算。RIP协议在目前已成为路由器、主机路由信息传递的标准之一。就因为这个原因,RIP协议被大多数IP路由器商业卖主广泛使用。18.1RIP协议概述

相关技术解析如下:

(1)自治系统:当前的Internet网被组成一系列的自治系统,各自治系统通过一个核心路由器连到主干网上。而一个自治系统往往对应一个组织实体(比如一个公司或大学)内部的网络与路由器集合。每个自治系统都有自己的路由技术,对不同的自治系统,路由技术是不相同的。

(2)内部路由器协议:用于自治系统内部的路由协议称为内部路由器协议,简称IGP(InteriorGatewayProtocol)。内部路由器协议是一族协议。RIP协议是最广泛使用的IGP之一,著名的路径刷新程序Routed便是根据RIP实现的。RIP协议被设计用于使用同种技术的中型网络,因此适应于大多数的校园网和使用速率变化不是很大的连续线的地区性网络。对于更复杂的环境,一般不使用RIP协议。

(3)外部路由器协议:用于自治系统间接口上的单独的协议称为外部路由器协议,简称EGP(ExteriorGatewayProtocol)。外部路由协议只有一个。

内部路由器与外部路由器协议的区别在于距离制式(DistanceMetric)即距离度量标准不同,和路由刷新算法不同。

在实现时,RIP作为一个系统长驻进程(Daemon)而存在于路由器中,它负责从网络系统的其它路由器接收路由信息,从而对本地IP层路由表作动态的维护,保证IP层发送报文时选择正确的路由,同时广播本路由器的路由信息,通知相邻路由器作相应的修改。RIP协议处于UDP协议的上层,如图18-1所示。

图18-1路由协议结构

RIP所接收的路由信息都封装在UDP的数据报中,RIP在520号端口上接收来自远程路由器的路由修改信息,并对本地的路由表做相应的修改,同时通知其它路由器。通过这种方式,达到全局路由的有效。

RIP根据D-V算法的特点,将协议的参加者分为主动机和被动机两种。主动机主动向外广播路由刷新报文,被动机被动地接收路由刷新报文。一般情况下,主机作为被动机,路由器则既是主动机又是被动机,即在向外广播路由刷新报文的同时,接收来自其它主动机的D-V报文,并进行路由刷新。18.2RIP协议的实现

RIP规定,路由器每30秒向外广播一个D-V报文,报文信息来自本地路由表。RIP的D-V报文中,其距离以驿站计:与信宿网络直接相连的路由器规定为一个驿站,相隔一个路由器则为两个驿站,以此类推。一条路由的距离为该路由(从信源机到信宿机)上的路由器数。为防止寻径环长期存在,RIP规定,长度为16的路由为无限长路由,即不存在的路由。所以一条有效的路由长度不得超过15。正是这一规定限制了RIP的使用范围,使RIP局限于中小型的网络网点中。为了保证路由的及时有效性,RIP采用触发刷新技术和水平分割法。当本地路由表发生修改时,触发广播路由刷新报文,以迅速达到最新路由的广播和全局路由的有效。水平分割法是指当路由器从某个网络接口发送RIP路由刷新报文时,其中不包含从该接口获取的路由信息。这是由于从某网络接口获取的路由信息对于该接口来说是无用信息,同时也解决了两路由器间的慢收敛问题。对于局域网的路由,RIP规定了路由的超时处理。主要是考虑到这样一个情况,如果完全根据D-V算法,一条路由被刷新是因为出现一条路由开销更小的路由,否则路由会在路由表中一直保存下去,即使该路由崩溃。这势必造成一定的错误路由信息。为此,RIP规定,所有机器对其寻径表中的每一条路由都设置一个时钟,每增加一条新路由,就相应设置一个新时钟。在收到的D-V报文中假如有关于此路由的表目,则将时钟清零,重新计时。假如在120秒内一直未收到该路由的刷新信息,则认为该路由崩溃,将其距离设为16并广播该路由信息。如果再过60秒后仍未收到该路由的刷新信息,则将它从路由表中删除。如果某路由在距离被设为16后,在被删除前路由被刷新,亦将时钟清零,重新计时,同时广播被刷新的路由信息。至于路由被删除后是否有新的路由来代替被删除路由,取决于去往原路由所指信宿有无其它路由。假如有,相应路由器会广播之。机器一旦收到其它路由的信息,自然会利用D-V算法建立一条新路由。否则,去往原信宿的路由不再存在。

RIP启动和运行的整个过程如下所描述:

某路由器刚启动RIP时,以广播的形式向相邻路由器发送请求报文,相邻路由器的RIP收到请求报文后,响应请求,回发包含本地路由表信息的响应报文。RIP收到响应报文后,修改本地路由表的信息,同时以触发修改的形式向相邻路由器广播本地路由修改信息。相邻路由器收到触发修改报文后,又向其各自的相邻路由器发送触发修改报文。在一连串的触发修改广播后,各路由器的路由都得到修改并保持最新信息。同时,RIP每30秒向相邻路由器广播本地路由表,各相邻路由器的RIP在收到路由报文后,对本地路由进行维护,在众多路由中选择一条最佳路由,并向各自的相邻网广播路由修改信息,使路由达到全局的有效。同时,RIP采取一种超时机制对过时的路由进行超时处理,以保证路由的实时性和有效性。RIP作为内部路由器协议,正是通过这种报文交换的方式,提供路由器了解本自治系统内部各网络路由信息的机制。

RIP-2支持版本1和版本2两种版本的报文格式。在版本2中,RIP还提供了对子网的支持和提供认证报文形式。版本2的报文提供子网掩码域,来提供对子网的支持;另外,当报文中的路由项地址域值为0xFFFF时,默认该路由项的剩余部分为认证。

RIP协议是允许路由器(或相关产品)通过基于IP网络交换有关计算路由信息的一种距离向量协议。RIP传送路由信息给信宿,信宿可以是路由器和主机。当信宿是主机时,主机必须有多个接口。18.3RIP协议的报文格式与协议处理

RIP作为一个系统常驻进程(Daemon)存在,它负责从网络信筒中其它路由器接收路由更改的信息,从而对本地IP层的路由进行动态的维护,保证IP层发送报文时选择正确的路由。RIP协议处于UDP协议的上层,RIP所接收的路由修改信息都封装在UDP的数据报中,RIP在520号端口上接收来自远程路由器的路由修改信息,并对本地的路由表做相应的修改,同时通知其它路由器。通过这种方式,达到全局路由的有效。18.3.1RIPv1的报文格式

RIPv1协议在实现过程中支持RIPVersion1和RIPVersion2两种格式的报文。RIP数据报一共有五类,由Command域确定数据报的类型,如表18-1所示。

表18-1RIP报文类型表18-1中,第1、2类报文是最重要的一对,后者是从发送该报文的路由器的寻径表中取出的D-V报文。各种RIP报文的格式相同,包括一个固定的报头和一个可选的D-V表。

RIPv1的报文格式如表18-2所示。

表18-2RIPv1的报文格式每个RIP报文都以由4个字节组成的一个公用头开始,紧跟在后面的是一系列路由条目,反映了其路由信息。具体内容如下:

(1)

Command:区分RIP报文类型。Command=1,是一个路由请求报文;Command=2,是一个路由响应报文。

(2)

Version:RIP的版本号。

(3)在一个RIP报文中,最多可通告25条路由条目。若路由条目数多于25条,则需要用多个RIP报文来交换路由信息。每条路由条目所包含的信息用以下字段来描述:①

AddressFamilyIdentifier:地址族标识。对一般的路由条目,取值为2;若是跟在RIP报文头后面的第一条路由条目,则取值为0xFFFF,表示是一个安全认证;若是对所有路由的请求报文,取值为0。

②RouteTag:路由标识,用于描述由其它路由协议所导入的外部路由信息。该字段域在扩散过程中保持不变,使所携带的外部路由信息在经过RIP路由域时得以保存,并导入到另一自治系统中。RouteTag一般要保存产生该路由的AS值,RIP协议本身不需要该属性值。③IPAddress:可达的目的地址,一般是指网络地址。

④Metric:到可达路由所需经过的路由器数,其取值范围为1~16。度量值为1~15内为可达路由,大于或等于16表示路由已不可达。18.3.2RIPv2的报文格式

RIPv2的报文格式如表18-3所示。

表18-3RIPv2的报文格式

RFC1723(1994)包含RIP版本1的扩展(即RIPv2)。最显著的是RIP消息格式。路由标志可用于指出从其他RIP路由器,从另一个IGP,如OSPF,或从EGP,如BGP,得知的路由。子网掩码允许设计者在RIPv2中使用VLSM。

(1)

SubnetMask:可达目的地址的掩码。IPAddress和SubnetMask是一个地址/掩码对,共同标识一个可达的网络地址前缀。当取值为0.0.0.0时,该路由条目没有子网掩码。

(2)

NextHop:到达该可达路由的更好的下一跳的IP地址。对一般可达路由,NextHop=0.0.0.0,表示下一跳的IP地址就是发布该路由信息的路由器地址;在公共访问介质(如以太网、FDDI等)上的路由器扩散路由信息时,若某路由信息是由该公共访问介质上的某路由器传送来的,则在该公共访问介质上往其它路由器进一步扩散该路由信息时,下一跳IP地址NextHop应为先前的路由器地址,而不是目前发布该路由信息的路由器地址,以使该路由上的IP报文在途经公共访问介质时,直接送往前一个路由器,不需经由这个多余的中转路由器。此时,NextHop不再为0.0.0.0,而是前一个路由器的IP地址。

(3)认证:确认合法的信息包,目前支持纯文本的口令形式。在RIPv2中,增加了口令和MD5的安全认证机制,认证是每一报文的功能,因为在报文头中只提供两字节的空间,而任一合理的认证表均要求多于两字节的空间,故RIPv2认证表使用一个完整的RIP路由项。如果在报文中最初路由项AddressFamilyIdentifier域的值是0xFFFF,路由项的剩余部分就是认证。包含认证RIP报文的路由项采用如下格式:

这样一个RIP报文最多可通告24条路由信息。

(4)组播:为了降低那些没有监听RIPv2报文的主机的不必要的开销,IP多目传送地址被用于定时广播。IP多目地址是224.0.0.9。为了支持向后兼容,多目地址的使用是可配置的。如果能够多目传送,则它将被支持它的所有接口使用。

(5)管理信息库:允许在路由软件内部对RIP操作进行监听和控制。如果RIPv2路由器接收RIP

v1的请求,它将以RIPv1的响应方式响应。如果路由器被配置成只发送RIPv2的报文,它将不响应RIPv1的请求。 不幸的是,RIPv2仍然受到RIPv1的其他限制。RIP可安全地用于小网络,但若有其他选择,则应当使用别的路由协议。18.3.3协议处理

RIP协议的运行过程就是路由器软件对消息输入和输出的处理过程,其输入和输出处理大致如以下所描述:

1.输入处理

输入处理主要是指路由器协议软件对在520号UDP端口收到的数据报进行的处理。对于输入处理,首先必须进行一定的格式检查,检查通过后,再分别对几种输入消息做相应的处理。

(1)请求报文:路由器在开始运行时,为了从邻机处获取路由表的初始值,通常会发一个请求。报文的Command字段为(request)。对所有或部分路由表的请求,一般以广播形式从520号UDP端口发送。实际中,这种请求有两种格式:请求获取路由表的全部和请求获取路由表的某些特定路由项。路由软件先逐个路由项地处理请求,如果没有任何路由项,也就没有响应;如果请求中恰好只有一个路由项,并且AddressFamilyIdentifier为0,metric为16,则表示需要接收方发送所有路由表的请求。除此之外,则是要求部分路由,处理很简单,沿着请求路由项表一个一个看,在主机路由数据库中查找每个路由项,如果找到,则将该路由的metric值填入数据报的metric字段,如果没有,则向其中填16。一旦所有路由项均已处理,则将Command字段设为响应(response),并将该数据报发回其来自的端口。注意,根据请求是关于指定的一批目的地,还是关于整个路由表,处理有所不同。如果关于整个路由表,输出作普通的处理即可,包括水平分割和子网隐藏,因此来自路由表的某些路由项将被隐藏;如果是指定路由项,则将查找结果返回,不作水平分割;如果需要,还要返回子网信息。

(2)响应报文:因为指定查询、路由修改等原因而收到响应。不论收到什么样的响应,RIP处理程序就开始更新它的路由表。路由表的每一项至少都要包括如下内容:

①目的站点的地址;

②通往目的站点的量度值;

③“下一个路由器”的地址;

④“最近更新过”的标志;

⑤几个定时器。因为处理响应可能修改主机路由表,所以必须作严格的有效性检查。对于RIPv1数据报,对mustbezero域必须进行查零处理,对RIPv2数据报则可忽略。数据报验证有效后,还要对其路由项逐个进行验证。全部通过后,我们设置metric=MIN(metric+cost,16),16代表无限长,然后检查是否已有路由到达该地址,如果没有,则加入路由表,但是如果metric是无限长,则不要将其加入路由表;如果现有路由不比新加的路由差,我们也不将其加入路由表。对此,需要执行以下动作:

①根据收到的数据报设置目的地和metric;

②根据数据报的来源主机设置路由器;

③为该路由设置超时值,如果垃圾回收定时器正在运行,则将其停止;

④设置路由改变标志,给输出进程发信号,触发一次修改;

⑤如果现存一个路由,首先比较路由器,如果来自同一路由器,则对超时值重新进行初始化,然后比较metric。如果数据报来自与现存路由同样的路由器且新的metric值与旧的不同,或者新的比旧的低,则进行如下动作:

将新的metric填入,并将该路由器设置为数据报的来源;

为此路由初始化超时值;

设置路由改变标志,给输出进程发信号,触发一次修改;

如果新metric是16,则启动删除进程(只是在metric刚刚被设为16时启动);

如果新的metric值与旧的相等,则除了重新初始化超时值外,什么也不干。

2.输出处理

输出处理用于产生包含全部或部分路由表的响应信息的处理,可能由于输入进程发现请求或路由修改而触发。先看后两种情况下如何选择目的地址。如果一个响应要发送给所有目的地,则响应信息发送给每个点到点连接的网络的对端,而且响应在支持广播的网络上进行广播。

但是如果网络不支持广播,或者在沉默的路由器,就有必要指定一张实际的临近主机和路由器表,显式地向每一个发送数据报。触发的修改因为两个方面需要处理:

(1)触发的修改在容量有限或有许多路由器的网络上可能导致格外大的负载,因此协议要求实现方在限制触发式修改出现的频率上采取一定的措施,触发式修改发送后,需要随机地将一个定时器设置成1~5秒,如果在定时器超时前发生其它修改,需要到定时器超时才触发其中之一,然后定时器再随机地设置成1~5秒,触发式修改可能被一般修改所禁止。

(2)触发式修改可能不必包括整个路由表,原则上说,只有改变过的路由才需要包括,作为触发式修改一部分的信息,至少包括设置了路由修改标志的路由,也可以包括附加路由和全部路由。如果完整的修改需要多个数据报,则发送全部路由极有可能被打断;而触发式修改处理时,需要产生每个直连网络的信息。产生触发式修改或一般修改时,都需要进行水平分割操作。如果产生输出的同时也允许输入处理,则必须建立相应的互斥机制,产生触发式修改信息时,路由改变标志不得因处理输入而改变。触发式修改与其它修改的唯一不同之处在于:可能会忽略某些改变过的路由,今后推出的其它机制恐怕要适应触发式修改。

RIP一个比较大的缺陷是metric只是简单的用跳数来表示,并不能准确地反映路径的真实状况。如图18-2所示,有三条路径的跳数是一样的,所以RIP就认为这三条路径是一样的路径,但实际上三条路径的带宽差异很大。18.4RIP的度量值metric

图18-2RIP的度量值

18.5.1RIP路由器路由表的建立

(1)

RIP启动时的初始路由表仅包含本路由器的一些直连接口路由。

(2)

RIP协议启动后向各接口广播一个Request报文。

(3)邻居路由器的RIP协议从某接口收到Request报文后,根据自己的路由表,形成Response报文,向该接口对应的网络广播。18.5RIP路由器路由表的建立、更新与收敛

(4)

RIP接收邻居路由器回复的包含邻居路由器路由表的Response报文,形成自己的路由表。

RIP根据D-V算法的特点,将协议的参加者分为主动机和被动机两种。主动机主动向外广播路由刷新报文,被动机被动地接收路由刷新报文。一般情况下,主机作为被动机,路由器则既是主动机又是被动机,即在向外广播路由刷新报文的同时,接收来自其它主动机的D-V报文,并进行路由刷新。

RIP协议以30秒为周期用Response报文广播自己的路由表。

收到邻居发送而来的Response报文后,RIP协议计算报文中的路由项的度量值,比较其与本地路由表路由项度量值的差别,更新自己的路由表。

报文中路由项度量值的计算:metric'=MIN(metric+cost,16),metric为报文中携带的度量值信息;cost为接收报文的网络的度量值开销,缺省为1(1跳),16代表不可达。18.5.2RIP路由器路由表的更新

RIP路由表的更新原则如下:

(1)对本路由表中已有的路由项,当发送报文的网关相同时,不论度量值增大或是减少,都更新该路由项(度量值相同时只将其老化定时器清零);

(2)对本路由表中已有的路由项,当发送报文的网关不同时,只在度量值减少时更新该路由项;

(3)对本路由表中不存在的路由项,在度量值小于不可达(16)时,在路由表中增加该路由项;

(4)路由表中的每一路由项都对应一老化定时器,当路由项在180秒内没有任何更新时,定时器超时,该路由项的度量值变为不可达(16);

(5)某路由项的度量值变为不可达后,该度量值在Response报文中发布四次(120秒)之后从路由表中清除。18.5.3RIP路由器路由表的收敛

RIP路由器路由表的收敛如图18-3所示,收敛过程如下:

(1)路由器C检测到链路故障;更新自己的路由表,发送更新给路由器D和B;发送带毒性逆转的路由;接收到的路由器会把此路由从路由表里禁用。

(2)路由器C向邻居请求失效,路由器C可以选择其他可行路径。

-v1通过广播发送该请求,v2通过组播发送该请求。

(3)

D回应报告没有可行路径;B报告有条新的路径;路由器C立即把新的路由安装到路由表里。

(4)

C在更新周期到达之后,向D通告新的路由;其它路由器的路由

温馨提示

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

评论

0/150

提交评论