路由及OSPFRIP.docx
- 文档编号:15986659
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:27
- 大小:38.02KB
路由及OSPFRIP.docx
《路由及OSPFRIP.docx》由会员分享,可在线阅读,更多相关《路由及OSPFRIP.docx(27页珍藏版)》请在冰点文库上搜索。
路由及OSPFRIP
距离矢量算法
距离矢量路由算法是动态路由算法。
它是这样工作的:
每个路由器维护一张矢量表,表中列出了当前已知的到每个目标的最佳距离,以及所使用的线路。
通过在邻居之间相互交换信息,路由器不断地更新它们内部的表。
距离矢量路由算法最常见的是Ford-Fulkerson算法。
该算法的核心思想是使用标号的方法不断寻找一个图上的可增广路径并且进行调整,直到找不到可增广路径为止。
距离矢量路由算法号召每个路由器在每次更新时发送它的整个路由表,但仅仅给它的邻居。
距离矢量路由算法倾向于路由循环,但比链路状态路由算法计算更简单。
算法描述如下:
给定带杈有向图G和源点s,求从s到G中任意顶点v的最短路径,该算法通过在一个路由中重申跳数的个数九来寻找一个最短路径生成树。
在距离矢量路由选择算法中,每个路由器维持有一张子网中每一个以其他路由器为索引的路由选择表,表中的每一个项目都对应于子网中的每个路由器。
此表项包括两个部分,即希望使用的到目的地的输出线路和估计到达目的地所需时间或距离。
用度量标准可为站点,估计的时间延迟(ms),该路出排队的分组估计总数或类似的值。
假定路由器知道它到每个相邻路由器的“距离”。
如果度量标准为站点,其距离就为一个站点;如果度量标准是队列长度,则路由器会简单地检查每个队列;如果度量标准是延迟,路由器可以直接发送一个特别“响应”(ECHO)分组来测出延迟,接收者只对它加上时间标记后就尽快送回。
距离矢量路由协议
1、IP路由信息协议–RIP
2、Xerox网络系统的XNSRIP
3、Novell的IPXRIP
4、Cisco的Internet网关路由选择协议–IGRP
5、DEC的DNA阶段4
6、AppleTalk的路由选择表维护协议–RTMP
距离矢量的特点(通用属性)
1、定期更新(PeriodicUpdates)
既然说到了是定期,那么它们都会在到达某一个时间点上“同时”发送更新信息,更新信息指的是各路由器各自的直连网络信息。
一般这个时间周期为10S到90S。
这个周期依照路由协议的不同而不同,常用的RIP为30S,而IGRP为90S。
这里引发争议的是如果更新信息在网络中过于频繁就会浪费带宽,造成拥塞,如果更新信息发送太慢频率不高,收敛时间又会变长。
2、邻居(Neighbours)
邻居通常意味着共享相同的数据链路的路由器。
距离矢量路由协议向邻居路由器发送更新信息,并依赖邻居向它的邻居传递更新信息,因此,距离矢量路由协议可以被看成是以“逐跳更新方式”来进行路由更新的协议。
3、包含整个路由表的更新
就好象两个知心好友一样,推心置腹……把自己知道的什么玩意儿都掏出来告诉对方。
基本上所有的距离矢量路由协议都会采用这种简便的办法来向邻居路由器通告自己所知道的所有信息——告诉其他路由器自己的整张路由选择表,邻居在收到该信息后,去其糟粕,取其精华……完善自己的路由表。
4、依照传闻进行路由选择
5、路由计时器(在后面讲解RIP的时候会将到)。
讲述距离矢量的几种计时器
6、水平分割(SplitHorizon)详见CCNP-BSCI002距离矢量路由协议–水平分割
7、计数到无穷大(在后面讲解RIP的时候会将到)
8、触发更新(TriggeredUpdate)
触发更新又名快速更新:
当路由收敛后,如果某台路由器得知自己直连的一条链路的度量变化了,(无论好或者坏)那么该路由器将立即发送更新信息,不必等到更新计时器的到期。
9、抑制计时器(HolddownTimer)
触发更新为正在进行收敛的网络增加了应变能力,为了降低接受错误路由信息的可能性,抑制计时器引入了某种程度的怀疑量
如果到一个目标的度量发生改变(无论是增大还是减小),那么路由器将会将该路由条目置为抑制状态——即加上一个抑制计时器。
直到计时器超时,路由器才会接受有关此路由的信息。
它虽然降低了错误路由的可能性,但是收敛时间却会因此而变长,因为在对其进行配置的时候,一定要根据全网的情况来配置一个合适的值。
10、异步更新(AsynchronousUpdate)
假设有一组连接在以太网段上的路由器群,大家都记得,以太网的工作方式。
如果每台路由器都共享一个广播网络的时候,很可能会出现更新同步的情况——几台路由器的更新时间同时到期,同时更新。
那么就会造成报文的碰撞,然后根据CSMA/CD,它们会回退,但是,很可能这样一来影响到整个系统的时延,最终会造成整个网络的同步。
所以,我们通常使用两种办法来防止同步保持异步更新:
·每台路由器的更新计时器都独立于路由进程,因为不会受到路由器处理负载的影响
·在每个更新周期中加入一个小的随机偏移量。
OSPF(OpenShortestPathFirst)是一个内部网关协议(InteriorGatewayProtocol,简称IGP),用于在单一自治系统(autonomoussystem,AS)内决策路由。
与RIP相对,OSPF是链路状态路由协议,而RIP是距离向量路由协议。
作用
链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。
OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表。
开放最短路径协议(OSPF)协议不仅能计算两个网络结点之间的最短路径,而且能计算通信费用。
可根据网络用户的要求来平衡费用和性能,以选择相应的路由。
在一个自治系统内可划分出若干个区域,每个区域根据自己的拓扑结构计算最短路径,这减少了OSPF路由实现的工作量;OSPF属动态的自适应协议,对于网络的拓扑结构变化可以迅速地做出反应,进行相应调整,提供短的收敛期,使路由表尽快稳定化。
每个路由器都维护一个相同的、完整的全网链路状态数据库。
这个数据库很庞大,寻径时,该路由器以自己为根,构造最短路径树,然后再根据最短路径构造路由表。
路由器彼此交换,并保存整个网络的链路信息,从而掌握全网的拓扑结构,并独立计算路由。
更多说明
为了解决RIP协议的缺陷,1988年RFC成立了OSPF工作组,开始着手于OSPF的研究与制定,并于1998年4月在RFC2328中OSPF协议第二版(OSPFv2)以标准形式出现。
OSPF全称为开放式最短路径优先协议(OpenShortest-PathFirst),OSPF中的O意味着OSPF标准是对公共开放的,而不是封闭的专有路由方案。
OSPF采用链路状态协议算法,每个路由器维护一个相同的链路状态数据库,保存整个AS的拓扑结构(AS不划分情况下)。
一旦每个路由器有了完整的链路状态数据库,该路由器就可以自己为根,构造最短路径树,然后再根据最短路径构造路由表。
对于大型的网络,为了进一步减少路由协议通信流量,利于管理和计算,OSPF将整个AS划分为若干个区域,区域内的路由器维护一个相同的链路状态数据库,保存该区域的拓扑结构。
OSPF路由器相互间交换信息,但交换的信息不是路由,而是链路状态。
OSPF定义了5种分组:
Hello分组用于建立和维护连接;数据库描述分组初始化路由器的网络拓扑数据库;当发现数据库中的某部分信息已经过时后,路由器发送链路状态请求分组,请求邻站提供更新信息;路由器使用链路状态更新分组来主动扩散自己的链路状态数据库或对链路状态请求分组进行响应;由于OSPF直接运行在IP层,协议本身要提供确认机制,链路状态应答分组是对链路状态更新分组进行确认。
相对于其它协议,OSPF有许多优点。
OSPF支持各种不同鉴别机制(如简单口令验证,MD5加密验证等),并且允许各个系统或区域采用互不相同的鉴别机制;提供负载均衡功能,如果计算出到某个目的站有若干条费用相同的路由,OSPF路由器会把通信流量均匀地分配给这几条路由,沿这几条路由把该分组发送出去;在一个自治系统内可划分出若干个区域,每个区域根据自己的拓扑结构计算最短路径,这减少了OSPF路由实现的工作量;OSPF属动态的自适应协议,对于网络的拓扑结构变化可以迅速地做出反应,进行相应调整,提供短的收敛期,使路由表尽快稳定化,并且与其它路由协议相比,OSPF在对网络拓扑变化的处理过程中仅需要最少的通信流量;OSPF提供点到多点接口,支持CIDR(无类型域间路由)地址。
OSPF的不足之处就是协议本身庞大复杂,实现起来较RIP困难。
RIP协议的全称是一种内部网关协议(IGP),是一种动态路由选择,用于一个自治系统(AS)内的路由信息的传递。
RIP协议是基于距离矢量算法(DistanceVectorAlgorithms)的,它使用“跳数”,即metric来衡量到达目标地址的路由距离。
这种协议的路由器只关心自己周围的世界,只与自己相邻的路由器交换信息,范围限制在15跳(15度)之内,再远,它就不关心了。
RIP应用于OSI网络七层模型的网络层。
概况
RIP协议采用距离向量算法,是当今应用最为广泛的内部网关协议。
在默认情况下,RIP使用一种非常简单的度量制度:
距离就是通往目的站点所需经过的链路数,取值为1~15,数值16表示无穷大。
RIP进程使用UDP的520端口来发送和接收RIP分组。
RIP分组每隔30s以广播的形式发送一次,为了防止出现“广播风暴”,其后续的的分组将做随机延时后发送。
在RIP中,如果一个路由在180s内未被刷,则相应的距离就被设定成无穷大,并从路由表中删除该表项。
RIP分组分为两种:
请求分组和相应分组。
历史演化
RIP-1被提出较早,其中有许多缺陷。
为了改善RIP-1的不足,在RFC1388中提出了改进的RIP-2,并在RFC1723和RFC2453中进行了修订。
RIP-2定义了一套有效的改进方案,新的RIP-2支持子网路由选择,支持CIDR,支持组播,并提供了验证机制。
随着OSPF和IS-IS的出现,许多人认为RIP已经过时了。
但事实上RIP也有它自己的优点。
对于小型网络,RIP就所占带宽而言开销小,易于配置、管理和实现,并且RIP还在大量使用中。
但RIP也有明显的不足,即当有多个网络时会出现环路问题。
为了解决环路问题,IETF提出了分割范围方法,即路由器不可以通过它得知路由的接口去宣告路由。
分割范围解决了两个路由器之间的路由环路问题,但不能防止3个或多个路由器形成路由环路。
触发更新是解决环路问题的另一方法,它要求路由器在链路发生变化时立即传输它的路由表。
这加速了网络的聚合,但容易产生广播泛滥。
总之,环路问题的解决需要消耗一定的时间和带宽。
若采用RIP协议,其网络内部所经过的链路数不能超过15,这使得RIP协议不适于大型网络。
报文格式
071531
命令字(1字节)版本(1字节)必须为0(2字节)
地址类型标识符(2字节)必须为0(2字节)
IP地址
必须为0
必须为0
Metric值(1—16)
(最多可以有24个另外的路由,与前20字节具有相同的格式)
“命令字”字段为1时表示RIP请求,为2时表示RIP应答。
地址类型标志符在实际应用中总是为2,即地址类型为IP地址。
“IP地址”字段表明目的网络地址,“Metric”字段表明了到达目的网络所需要的“跳数”。
补充内容
RIP(RoutinginformationProtocol)是应用较早、使用较普遍的内部网关协议(InteriorGatewayProtocol,简称IGP),适用于小型同类网络,是典型的距离向量(distance-vector)协议。
文档见RFC1058、RFC1723。
RIP通过广播UDP报文来交换路由信息,每30秒发送一次路由信息更新。
RIP提供跳跃计数(hopcount)作为尺度来衡量路由距离,跳跃计数是一个包到达目标所必须经过的路由器的数目。
如果到相同目标有二个不等速或不同带宽的路由器,但跳跃计数相同,则RIP认为两个路由是等距离的。
RIP最多支持的跳数为15,即在源和目的网间所要经过的最多路由器的数目为15,跳数16表示不可达。
有关命令
--------------------------------------------
任务命令
--------------------------------------------
指定使用RIP协议routerrip
--------------------------------------------
指定RIP版本version{1|2}1
--------------------------------------------
指定与该路由器相连的网络networknetwork
---------------------------------------------
注:
1.Cisco的RIP版本2支持验证、密钥管理、路由汇总、无类域间路由(CIDR)和变长子网掩码(VLSMs)
举例
Router1:
routerripversion2network192.200.10.0network192.20.10.0!
相关调试命令:
showipprotocol
showiproute在全局设置(#)模式下:
1.启动RIP路由routerrip2.设置参与RIP路由的子网network子网地址3.允许在非广播型网络中进行RIP路由广播neighbor相邻路由器相邻端口的IP地址4.设置RIP的版本RIP路由协议有2个版本,在与其它厂商路由器相连时,注意版本要一致,缺省状态下,Cisco路由器接收RIP版本1和2的路由信息,但只发送版本1的路由信息,设置RIP的版本vesion1或2。
另外,还可以控制特定端口发送或接收特定版本的路由信息。
1.只在特定端口发版本1或2的信息,在端口设置模式下ripsendversion1或22.同时发送版本1和2的信息ipripsendreceive1or23.在特定端口接受版本1或2的路由信息ipripreceive1or24.同时接受版本1和2的路由信息ipripreceive1or2选择路由协议几点建议:
1.在大型网络中,建议使用ospf,eigrp.2.如果网络中含有变长了网掩码(VISM)不能使用igrp,rip版本1,可以使用rip版本2,ospf,eigrp或静态路由。
3.如果使用路由安全设置可以使用RIP版本1或OSPF。
4.选用ospf,eigrp在系统稳定后所占带宽比RIP,IGRP少得多,IGRP比RIP所占带宽也少。
5.综合使用动态路由,静态路由,缺省路由,以保证路由的冗余。
6.在拨号线路上尽量使用静态路由,以节省费用。
7.在小型网络上数据量不大的情况下,且不需要高可性,广域网线路为X.25SVC时,建议用静态路由。
RIP协议的局限性
1)、协议中规定,一条有效的路由信息的度量(metric)不能超过15,这就使得该协议不能应用于很大型的网络,应该说正是由于设计者考虑到该协议只适合于小型网络所以才进行了这一限制。
对于metric为16的目标网络来说,即认为其不可到达。
2)、该路由协议应用到实际中时,很容易出现“计数到无穷大”的现象,这使得路由收敛很慢,在网络拓扑结构变化以后需要很长时间路由信息才能稳定下来。
3)、该协议以跳数,即报文经过的路由器个数为衡量标准,并以此来选择路由,这一措施欠合理性,因为没有考虑网络延时、可靠性、线路负荷等因素对传输质量和速度的影响。
RIP的特性
(1)路由信息更新特性:
路由器最初启动时只包含了其直连网络的路由信息,并且其直连网络的metric值为1,然后它向周围的其他路由器发出完整路由表的RIP请求(该请求报文的“IP地址”字段为0.0.0.0)。
路由器根据接收到的RIP应答来更新其路由表,具体方法是添加新的路由表项,并将其metric值加1。
如果接收到与已有表项的目的地址相同的路由信息,则分下面三种情况分别对待:
第一种情况,已有表项的来源端口与新表项的来源端口相同,那么无条件根据最新的路由信息更新其路由表;第二种情况,已有表项与新表项来源于不同的端口,那么比较它们的metric值,将metric值较小的一个最为自己的路由表项;第三种情况,新旧表项的metric值相等,普遍的处理方法是保留旧的表项。
路由器每30秒发送一次自己的路由表(以RIP应答的方式广播出去)。
针对某一条路由信息,如果180秒以后都没有接收到新的关于它的路由信息,那么将其标记为失效,即metric值标记为16。
在另外的120秒以后,如果仍然没有更新信息,该条失效信息被删除。
(2)RIP版本1对RIP报文中“版本”字段的处理:
0:
忽略该报文。
1:
版本1报文,检查报文中“必须为0”的字段,若不符合规定,忽略该报文。
>1:
不检查报文中“必须为0”的字段,仅处理RFC1058中规定的有意义的字段。
因此,运行RIP版本1的机器能够接收处理RIP版本2的报文,但会丢失其中的RIP版本2新规定的那些信息。
(3)RIP版本1对地址的处理
RIP版本1不能识别子网网络地址,因为在其传送的路由更新报文中不包含子网掩码,因此RIP路由信息要么是主机地址,用于点对点链路的路由;要么是A、B、C类网络地址,用于以太网等的路由;另外,还可以是0.0.0.0,即缺省路由信息。
(4)计数到无穷大(CountingtoInfinity)
前面在RIP的局限性一部分提到了可能出现的计数到无穷大的现象,下面就来分析一下该现象的产生原因与过程。
考察下面的简单网络:
c(目的网络)----routerA------routerB
在正常情况下,对于目标网络,A路由器的metric值为1,B路由器的metric值为2。
当目标网络与A路由器之间的链路发生故障而断掉以后:
c(目的网络)--||--routerA------routerB
A路由器会将针对目标网络C的路由表项的metric值置为16,即标记为目标网络不可达,并准备在每30秒进行一次的路由表更新中发送出去,如果在这条信息还未发出的时候,A路由器收到了来自B的路由更新报文,而B中包含着关于C的metric为2的路由信息,根据前面提到的路由更新方法,路由器A会错误的认为有一条通过B路由器的路径可以到达目标网络C,从而更新其路由表,将对于目标网络C的路由表项的metric值由16改为3,而对于的端口变为与B路由器相连接的端口。
很明显,A会将该条信息发给B,B将无条件更新其路由表,将metric改为4;该条信息又从B发向A,A将metric改为5……最后双发的路由表关于目标网络C的metric值都变为16,此时,才真正得到了正确的路由信息。
这种现象称为“计数到无穷大”现象,虽然最终完成了收敛,但是收敛速度很慢,而且浪费了网络资源来发送这些循环的分组。
另外,从这里我们也可以看出,metric值的最大值的选择实际上存在着矛盾,如果选得太小,那么适用的网络规模太小;如果选得过大,那么在出现计数到无穷大现象的时候收敛时间会变得很长。
提高措施
水平分割
在上面的“计数到无穷大”现象中,产生的原因是A、B之间互相传送了“欺骗信息”,那么针对这种情况,我们自然会想到如果能将这些“欺骗信息”去掉,那么不就可以在一定程度上避免“计数到无穷大”了吗。
水平分割正是这样一种解决手段。
“普通的水平分割”是:
如果一条路由信息是从X端口学习到的,那么从该端口发出的路由更新报文中将不再包含该条路由信息。
“带毒化逆转的水平分割”是:
如果一条路由信息是从X端口学习到的,那么从该端口发出的路由更新报文中将继续包含该条路由信息,而且将这条信息的metric置为16。
“普通的水平分割”能避免欺骗信息的发送,而且减小了路由更新报文的大小,节约了网络带宽;“带毒化逆转的水平分割”能够更快的消除路由信息的环路,但是增加了路由更新的负担。
这两种措施的选择可根据实际情况进行选择。
触发更新
上面的“水平分割”能够消除两台路由器间的欺骗信息的相互循环,但是当牵涉到三台或者以上的路由器时,效果就有限了。
考察下面的网络:
+---++----++-----+/-----\
|||C+-------|D|-----||E||
|A+------|||+----||
+-+-++----++---+-+\-----/
|--|
|--|
|--|
+----+|
|||
|B+-----------------------
||
+----+
E是目标网络
针对目标网络,各路由器的路由信息分别如下:
A:
3C
B:
2D
C:
2D
D:
1直连
当D与目标网络之间发生故障中断以后,B和C都能正确的从D得到网络不可达的信息,但是,从上面的路由信息中可以看出,A虽然不会给C发送错误信息,但是A可能在未收到网络不可达信息之前就给B发送了路由信息,让B错误的认为可以通过A到达目标网络,继而又会出现“计数到无穷大”的现象。
触发更新就是为了针对上述情况进行的一种改善,它的具体实现措施是:
路由器一旦察觉到网络变化,就尽快甚至是立即发送更新报文,而不等待更新周期结束。
只要触发更新的速度足够快,就可以大大的防止“计数到无穷大”的发生,但是这一现象还是有可能发生的。
使用了触发更新以后,当网络拓扑发生变化的时候,网络中会出现类似于“多米诺骨牌”的更新报文潮流,并最后中止于从未发生变化的路径到达目标网络的路由器。
定时器
RIP中一共使用了4个定时器:
updatetimer,timeouttimer,garbagetimer,holddowntimer。
Updatetimer用于每30秒发送路由更新报文。
Timeouttimer用于路由信息失效前的180秒的计时,每次收到同一条路由信息的更新信息就将该计数器复位。
Garbagetimer和holddowntimer同时用于将失效的路由信息删除前的计时:
在holddowntimer的时间内,失效的路由信息不能被接收到的新信息所更新;在garbagetimer计时器超时后,失效的路由信息被删除。
另外,在触发更新中,更新信息会需要1到5秒的随机延时以后才被发出,这里也需要一个计时器。
版本2简介
RIP版本2的报文格式如下:
071531
命令字(1字节)版本(1字节)路由域(2字节)
0xFFFF(2字节)验证类型(2字节)
验证(16字节)
地址类型标识符(2字节)路由标签(2字节)
IP地址
子网掩码
下一跳IP地址
Metric值(1—16)
(最多可以有24个另外的路由,与前20字节具有相同的格式)
版本2的RIP使用了版本1中“必须为0”的字段,增加了一些对于路由的有用信息,其主要新添的特性如下:
(1)报文中包含子网掩码,可以进行子网路由
(2)支持明文/MD5验证
(3)报文中包含了下一跳IP,为路由的选优提供了更多的信息。
RIP与OSPF的区别
rip协议是距离矢量路由选择协议,它选择路由的度量标准(metric)是跳数,最大跳数是15跳,如果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 路由 OSPFRIP