路由协议对比 OSPF协议与RIP协议的比较(推荐8篇)
RIP的拓扑简单,适用于中小型网络,没有系统内外、系统分区、边界等概念,用的不是分类的路由。每一个节点只能处理以自己为头的至多16个节点的链,路由是依靠下一跳的个数来描述的,无法体现带宽与网络延迟。
OSPF适用于较大规模网络。它把AS(自治系统)分成若干个区域,通过系统内外路由的不同处理,区域内和区域间路由的不同处理方法,引入摘要的概念,减少网络数据量的传输。OSPF对应RIP的“距离”,引入了“权”(metric)的概念。OSPF还把其他协议路由或者静态或核心路由作为AS外部路由引入,处理能力相当大。
RIP的原始版本不支持VLSM(RIP2支持),OSPF支持VLSM(可变长度子网掩码)
二 协议运行有差别 :
RIP运行时,首先向外(直接邻居)发送请求报文,其他运行RIP的路由器收到请求报文后,马上把自己的路由表发送过去;在没收到请求报文时,定期(30 秒)广播自己的路由表,在180秒内如果没有收到某个相邻路由器的路由表,就认为它发生故障,标识为作废,120秒后还没收到,将此路由删除,并广播自己的新的路由表,
OSPF运行时,用HELLO报文建立连接,然后迅速建立邻接关系,只在建立了邻接关系的路由器中发送路由信息;以后是靠,是靠定期发送HELLO报文去维持连接,相对RIP的路由表报文来说这个HELLO报文小的多,网络拥塞也就少了。HELLO报文在广播网上没10秒发送一次,在一定时间(4倍于 HELLO间隔)没有收到HELLO报文,认为对方已经死掉,从路由表中去掉,在LSDB中给它置位infintty(无穷大),并没有真正去掉它,以备它在起用时减少数据传输量,在它达到3600秒是真正去掉它。OSPF路由表也会重发,重发间隔为1800秒。
三 使用情况不同:
关键词:路由技术,算法,RIP
1 IP路由算法
IP路由算法可分为以下几种:静态和动态、单路和多路、平等和分级、源路由和透明路由、域内和域间、链路状态和距离向量。
链路状态算法发送路由信息到互联网上所有的结点, 然而对于每个路由器, 仅发送它的路由表中描述了其自身链路状态的那一部分。距离向量算法则要求每个路由器发送其路由表全部或部分信息, 但仅发送到邻近结点上。从本质上来说, 链路状态算法将少量更新信息发送至网络各处, 而距离向量算法发送大量更新信息至邻接路由器。
由于链路状态算法收敛更快, 因此它在一定程度上比距离向量算法更不易产生路由循环。但另一方面, 链路状态算法要求比距离向量算法有更强的CPU能力和更多的内存空间, 因此链路状态算法将会在实现时显得更昂贵一些。除了这些区别, 两种算法在大多数环境下都能很好地运行。路由算法使用了许多种不同的度量标准去决定最佳路径。复杂的路由算法可能采用多种度量来选择路由, 通过一定的加权运算, 将它们合并为单个的复合度量、再填入路由表中, 作为寻径的标准。
2 RIP路由协议的原理分析
RIP是基于距离矢量的路由协议。运行RIP的路由器维持一个到网络中可能目的地的路由表, 路由表包含目的地址和开销等信息。具体的说, RIP协议主要包括以下几个方面的内容。
2.1 计算距离矢量
距离矢量路由协议利用度量来跟踪它和所有已知目的地间的距离。这种距离信息使路由器可以找出到位于非近邻独立系统中的目的地最有效的下一跳。在RFC-1058中, 有一个唯一的距离矢量单位, 即跳数。在RIP中默认的跳数度量被置为1, 这些距离度量用来构造路由表。路由表识别出数据包, 以最小开销到达目的地所要采取的下一跳。
2.2 更新路由表
RIP只记录每个目的地址的一条路由, 这一事实要求RIP经常保持其路由表的完整性。它通过要求所有活跃的RIP路由器周期性的向相邻RIP路由器广播它们路由表的内容。通常, RIP依赖3个计时器来维护路由表:即更新计时器、路由暂休计时器、路由清楚计时器。更新计时器用来激发节点路由表的更新。每个RIP节点只有一个更新计时器。然而, 路由暂休和路由清除计时器则是每条路由都有一个。因此, 每个路由表条目中都有一个不同的暂休和路由清除计时器。总之, 这些计时器使RIP节点能维护它们路由的完善性, 并根据所用的时间进行激活, 从而恢复网络故障。
2.3 激活路由更新
大约每30s激活一次路由更新。更新路由器用来跟踪这个时间量。当这个时间量结束时, RIP发送一系列帧来维护整个路由表。这些帧广播到每个邻节点。因此, 每个RIP路由器大约每30s就要接收来自邻RIP节点的更新。
2.4 识别无效路由
路由变得无效的两种情况:其一, 路由到期;其二, 路由器可能通知某个路由器某条路由是不可用的。在这两种情况下, RIP路由器都需要改变它的路由表, 来反映给定路由的不可用性。假如路由器在给定的时间内没有接收到更新某路由的信息, 该路由可能到期。路由暂休定时器常设成180s, 当路由激活或更新时, 该定时器初始化。假如180s过去了, 路由器还没有接到更新那条路由的信息, RIP路由器就认为目的IP地址不再可达。因此路由器把表中那条路由项标成无效。收到路由新近无效通知的邻节点利用该信息来更新它们的路由表。这是路由表中路由变得无效的第2种方法。无效路由表项不会自动的从路由表中清除;相反, 那条无效项继续在路由表中保留很短一段时间。下面将讨论无效路由真正从路由表中清除的过程。
2.5 清除无效路由
当路由器认识到某条路由无效时, 就初始化一个秒计时器, 负责路由清除倒计时, 这一计时称为路由清除计时器。当路由清除计时器结束时, 路由仍未被收到, 这一路由就从路由表中清除。这些计时器是RIP恢复网络故障能力中绝对重要的。
2.6 编址方案
IETF保证RIP能够完全向后兼容所有已知的RIP和ROUTED异体。即使这些异体专用程度很高, 开放标准RIP仍有必要支持多种地址类型。
2.7 路由到网关
很多实际网络中, 并不要计算到每个单个主机的路由。特别是在大型网络中, 这会使路由表膨胀, 从而使整个网络的路由工作繁重。因此在实际网络中, 几乎总是概括路由, 而不是指出每个可能目的地。假如一个给定的网络 (或子网) 上, 每个主机都能通过网关到达的话, 这时路由表只需定义那个网关为下一条IP地址就可以了。所有发往那个网络或子网上的数据包将发送给那个网关, 这时网关就承担了把它发送到最终目的地的任务。
总之, RIP的特点是路由器间定时地交换网络的整体知识, 并且只和相邻路由器交换这种知识。换句话说, 路由器只和相邻路由器共享网络信息。路由器一旦从相邻路由器获取了新的知识, 就将其追加到自己的数据库中, 并将该信息传递给所有的相邻的路由器。相邻路由器做同样的操作, 经过若干次传递, 使自治系统内的所有路由器都能获得完整的路由信息。
3 RIP协议处理过程
RIP协议的运行过程就是路由器软件对消息输入和输出处理过程, 其输入和输出处理大致如下所描述。
输入处理:主要是指路由器协议软件对在520号UDP端口收到的数据报进行的处理。对于输入处理, 首先必须先作一定格式检查, 检查通过后, 再分别对几种输入消息做相应的处理。
请求报文:路由器在开始运行时, 为了从邻机处获取路由表的初始值, 通常会发一个请求。报文的Command字段为。对所有或部分路由表的请求, 一般以广播形式从520号UDP端口发送。实际中, 这种请求有两种格式:请求获取路由表的全部和请求获取路由表的某些特定路由项。路由软件先逐个路由项地处理请求, 如果没有任何路由项, 也就没有响应;如果请求中恰好只有一个路由项, 并且addressfamilyidentifier为0, metric为16, 则表示需要接收方发送所有路由表的请求;除此之外, 则是要求部分路由, 处理很简单, 沿着请求路由项表一个一个看, 对于每个路由项, 在主机路由数据库中查找, 如果找到, 则将该路由的metric值填入数据报的metric字段, 如果没有, 则向其中填16。一旦所有路由项均已处理, 将command字段设为响应, 并将该数据报发回其来自的端口。根据请求是否关于指定的一批目的地, 还是关于整个路由表, 处理有所不同。如果关于整个路由表, 输出作普通的处理即可, 包括水平分割和子网隐藏, 因此来自路由表的某些路由项将被隐藏;如果是指定路由项, 则将查找结果返回, 不作水平分割, 如果需要还要返回子网信息。
响应报文:因为指定查询、路由修改等原因而收到响应。不论收到什么样的响应, RIP处理程序就开始更新它的路由表。
输出处理:用于产生包含全部或部分路由表的响应信息的处理, 可能由于输入进程发现请求或路由修改而触发。响应请求产生的输出可以直接按需工作, 而触发的修改因为两个方面需要处理。
首先, 触发的修改在容量有限或有许多路由器的网络上可能导致格外大的负载, 因此协议要求实现方在限制触发式修改出现的频率上采取一定的措施, 触发式修改发送后, 需要随机地将一个定时器设置成1到5秒, 如果在定时器超时前发生其它修改, 需要到定时器超时才触发其中之一, 然后定时器再随机地设置成1到5秒, 触发式修改可能被一般修改所禁止;另外, 触发式修改可能不必包括整个路由表, 原则上说, 只有改变过的路由才需要包括, 作为触发式修改一部分的信息至少包括设置了路由修改标志的路由, 也可以包括附加路由和全部路由。如果完整的修改需要多个数据报, 则发送全部路由极有可能被打断;而触发式修改处理时, 需要产生每个直连网络的信息。产生触发式修改或一般修改时, 都需要进行水平分割操作。
参考文献
[1]苏传蓉.几种常见路由协议的应用.湖北邮电技术, 2002.
[2]张宏科, 张思东, 刘文红.路由器原理与技术.北京:国防工业出版社, 2003.
(一)RIP路由协议配置
RIP路由协议配置RIP(Routing information Protocol)是应用较早、使用较普遍的内部网关协议(Interior Gateway Protocol,简称IGP),适用于小型同类网络,是典型的距离向量(distance-vector)协议。RIP通过广播UDP报文来交换路由信息,每30秒发送一次路由信息更新。RIP提供跳跃计数(hop count)作为尺度来衡量路由距离,跳跃计数是一个包到达目标所必须经过的数目。如果到相同目标有两个不等速或不同带宽的路由器,但跳跃计数相同,则RIP认为两个路由是等距离的。RIP最多支持的跳数为15,即在源和目的网间所要经过的最多路由器为15个,跳数16表示不可达。
(二)RIP基本工作原理
路由信息协议RIP是互联网工程任务组(IETF)的内部网关协议工作组为IP网络专门设计的路由协议,是一种基于距离矢量算法的内部网关动态路由协议。每个运行RIP的路由器都维护着一张RIP路由表,该路由表的内容如图1所示。
其中,下一跳(nexthop)表示下一站数据包要到达的地址,度量(metric)代表把数据包从本路由器送达目的站所需的花费(cost)。标志位标志此路由最近是否发生变化,以备触发更新时用到,年龄实际是个定时器,用于维护每条路由。在RIP中若哪条路由经过180秒后仍未被刷新,则该路由被认为不再有效,而把其度量置成16。
RIP路由器周期性地以多播形式向邻居发送自己的路由表拷贝,即<目的,度量>组,每个接收到该消息的路由器修改消息中路由的度量,在每条路由的度量上加上接收该路由消息接口的花费。然后,依据度量的大小来判断路由的好坏,把度量最小的一条路由放入路由表,其判断过程如下:查看路由表中是否已有到该目的的路由;如果没找到,则添加该路由;如果找到,只有在新度量更小时才更新路由,否则,忽略该路由。
(三)IPv6时代RIP的演变
如今的RIP已经从RIP-1发展到RIP-2,直到今天有变革意义的基于IPv6的Ripng。研究RIP的演变过程,剖析其各个发展阶段的异同点对于优化、发展该协议具有重要的意义。 RIP-1只在有子网划分的网络中支持子网,在该网络外部由于子网掩码很难得知,从而也就无法区分子网项和主机项,这样就需要强制使用严格层次路由:外部路由器把分组传递到该网中距离最近的路由器,而不考虑目的站点属于哪个子网。紧跟在严格层次路由之后是对连通性的要求,即这个网络中的每一个路由器都应该知道如何去往任何一个子网。基于上述缺点,RIP-2定义了一套有效的RIP改进方案,把RIP-1的格式中含有的一些“必须为零”的域,进行了重新定义。基于安全考虑添加了新的AFI项(0xFFFF)用来传送“验证数据”;添加了“路由选择域”、“下一跳域”,允许在单个路由器上运行多个RIP实例,指明发往目的IP地址的报文该发向哪里,添加了“子网掩码”,达到可以支持VLSM(可变长子网掩码)和CIDR(无类别域间路由)的目的,增强子网选择路由的性能;添加了“路由标签”,对外部路由进行标志。 RIP-2保留了RFC-1058中定义的“命令字”、“地址族标志符”、“IP地址”、“度量值”等域。
Ripng虽然隶属RIP家族,但毕竟它经历了一场变革。与RIP-1、RIP-2在各个方面都有差别:使用端口不同;分组格式不同;最大报文长度不同;下一跳不同;编址考虑不同;特殊请求不同;安全考虑不同。
(四)Ripng的实现
路由器1的配置:
interface Eth-Trunk1#作端口聚合配置
ip address 192.168.1.1 255.255.255.0
interface Ethernet0/0/0
undo shutdown
eth-trunk 1
interface Ethernet0/0/1
undo shutdown
eth-trunk 1
##创建不同网段的环回接口
interface LoopBack4
ip address 192.168.40.1 255.255.255.255
interface LoopBack5
ip address 192.168.50.1 255.255.255.255
interface LoopBack6
ip address 192.168.60.1 255.255.255.255
#
rip 1#启用rip version 2协议、向外宣告网段
undo summary
version 2
network 192.168.1.0
network 192.168.40.0
network 192.168.50.0
network 192.168.60.0
路由器2的配置:
interface Eth-Trunk1#作端口聚合配置
ip address 192.168.1.2 255.255.255.0
interface Ethernet0/0/0
undo shutdown
eth-trunk 1
interface Ethernet0/0/1
undo shutdown
eth-trunk 1
##创建不同网段的环回接口
interface LoopBack1
ip address 192.168.10.1 255.255.255.255
interface LoopBack2
ip address 192.168.20.1 255.255.255.255
interface LoopBack3
ip address 192.168.30.1 255.255.255.255
#
rip 1#启用rip version 2协议、向外宣告网段
undo summary
version 2
network 192.168.1.0
network 192.168.10.0
network 192.168.20.0
1.default redistribute cost
配置引入外部路由时缺省的花费值,no default redistribute cost命令取消配置。
default redistribute cost cost
no default redistribute cost
【参数说明】
cost为花费值,范围1~65535之间的整数。
【命令模式】
OSPF协议配置模式
【使用指南】
在OSPF将路由器上其它路由协议发现的路由引入作为自己的自治系统外部路由信息时,还需要一些额外的参数,包括:路由的缺省花费和缺省的标记等。
【举例】
配置OSPF引入外部路由时缺省的花费值为10。
Quidway(config-router-ospf)#default redistribute cost 10
【相关命令】
default redistribute tag
default redistribute type
2. default redistribute interval
配置OSPF引入外部路由的时间间隔,no default redistribute interval命令恢复缺省值。
default redistribute interval time
no default redistribute interval
【参数说明】
time为引入外部路由的时间间隔,以秒为单位,范围1~65535之间的整数。
【缺省情况】
OSPF引入外部路由的时间间隔缺省为1秒。
【命令模式】
OSPF协议配置模式
【使用指南】
由于OSPF总是要不停的引入外部的路由信息并将它们传播到整个自治系统中去,因此,有必要规定协议引入外部路由的时间间隔。
【举例】
指定OSPF引入外部路由的时间间隔为2秒。
Quidway(config-router-ospf)#default redistribute interval 2
【相关命令】
default istribute limit
3. default redistribute limit
配置OSPF可引入路由数量的上限,no default redistribute limit命令恢复缺省值。
default redistribute limit routes
no default redistribute limit
【参数说明】
routes为引入路由数量的上限值,范围1~65535之间的整数。
【缺省情况】
OSPF引入外部路由数量的上限缺省为150。
【命令模式】
OSPF协议配置模式
【使用指南】
由于OSPF总是要不停的引入外部的路由信息并将它们传播到整个自治系统中去,因此,有必要规定在一次传播中外部路由信息的最大条数。
【举例】
指定OSPF引入外部路由数量的上限为200。
Quidway(config-router-ospf)#default redistribute limit 200
【相关命令】
default redistribute interval
4. default redistribute tag
配置引入外部路由时缺省的标记值,no default redistribute tag命令取消该配置。
default redistribute tag [ as ] tag
no default redistribute tag
【参数说明】
as表示为自治系统标号。
tag为标记值。
【命令模式】
OSPF协议配置模式
【使用指南】
在OSPF将路由器上其它路由协议发现的路由引入作为自己的自治系统外部路由信息时,还需要一些额外的参数,包括:路由的缺省花费和缺省的标记等。 路由标记可以用来标识协议相关的信息,如OSPF引入EGP/BGP协议时用来区分自治系统的编号。
【举例】
设置OSPF引入自治系统外部路由的缺省标记为10。
Quidway(config-router-ospf)#default redistribute tag 10
【相关命令】
default redistribute cost
default redistribute type
5. default redistribute type
配置引入外部路由时缺省的类型,no default distribute type命令恢复缺省值。
default redistribute type { 1 | 2 }
no default redistribute type
【参数说明】
1 和 2 分别表示第一类外部路由和第二类外部路由。
【缺省情况】
没有配置引入外部路由时缺省类型时,默认为第二类外部路由,
【命令模式】
OSPF协议配置模式
【使用指南】
OSPF在协议中规定了两类外部路由信息的花费选择方式,可以用本节所述命令规定缺省的花费类型。
【举例】
指定OSPF引入外部路由时缺省类型为第一类路由。
Quidway(config-router-ospf)#default redistribute type 1
【相关命令】
default redistribute cost
default redistribute tag
6. ip ospf authentication
指定接口上接受OSPF报文所需要的验证方式,no ip ospf authentication命令恢复为缺省值。
ip ospf authentication { simple auth_key| md5 auth_key key_id}
no ip ospf authentication
【参数说明】
simple为简单验证方式。
md5为MD5加密验证方式。
auth_key 验证密钥,为连续的字符串,简单验证方式下最大长度为8字节;MD5 验证方式下最大长度为16字节;
key_id为MD5 验证方式时的验证字id,范围1~255之间的整数。
【缺省情况】
接口上接受OSPF报文缺省不需要验证。
【命令模式】
接口配置模式
【使用指南】
authentication的值将写入OSPF报文中。必须保证和该接口相邻的路由器之间的authentication参数一致。
【举例】
配置接口Serial0上接受OSPF报文采用简单验证,验证密钥为abcdefgh。
Quidway(config-if-Serial0)#ip ospf authentication simple abcdefgh
7. ip ospf cost
指定接口运行OSPF协议所需的花费,no ip ospf cost 命令恢复缺省值。
ip ospf cost cost
no ip ospf cost
【参数说明】
cost为OSPF协议所需花费的值,范围1~65535之间的整数。
【缺省情况】
接口缺省的OSPF 协议所需花费的值为1。
【命令模式】
接口配置模式
【举例】
配置接口Serial0上OSPF协议所需花费的值为2。
Quidway(config-if-Serial0)#ip ospf cost 2
8. ip ospf dead-interval
指定认定相邻路由器死亡的时间长度,no ip ospf dead-interval命令恢复缺省值。
ip ospf dead-interval time
no ip ospf dead-interval
【参数说明】
time为相邻路由器死亡的时间长度,以秒为单位,合法的范围是1~65535。
【缺省情况】
接口上相邻路由器死亡的时间长度缺省为40秒。
【命令模式】
接口配置模式
【使用指南】
dead-interval的值将写入Hello报文中,并随Hello报文传送。必须保证和该接口相邻的路由器之间的dead-interval参数一致,且至少为hello-interval值的4倍。
【举例】
配置接口Serial0上相邻路由器的死亡时间为60秒。
Quidway(config-if-Serial0)#ip ospf dead-interval 60
【相关命令】
ip ospf hello-interval
9. ip ospf demand-circuit
配置OSPF按需拨号,no ip ospf demand-circuit命令恢复缺省设置。
[no] ip ospf demand-circuit
【缺省情况】
在接口上OSPF缺省不配置按需拨号。
【命令模式】
接口配置模式
【使用指南】
OSPF 按需拨号(OSPF over On Demand Circuits)是对OSPF协议的一种改进,它使得协议在ISDN、X.25 SVCs 和 拨号线等按需拨号网上运行效率更高。
在基于广播和NBMA的网络上配置这种属性时,连接状态传输报文可以被抑制,但 HELLO 报文不能被抑制,因为HELLO报文用来维持“选举路由器”。
【举例】
在接口Serial0上配置OSPF按需拨号。
Quidway(config-if-Serial0)#ip ospf demand-circuit
10. ip ospf enable area
配置一个接口,使其属于某个区域,用 no ip ospf enable area 命令取消该配置。
[ no ] ip ospf enable area area_id
【参数说明】
area_id为该接口所属区域的区域号。
【缺省情况】
接口缺省没有配置成属于某个区域。
【命令模式】
接口配置模式
【使用指南】
要在某一个接口上运行OSPF协
◆RIP作为一个系统常驻进程(daemon)存在,它负责从网络信筒中其它路由器接收路由更改信息,从而对本地IP层的路由进行动态地维护,保证IP层发送报文时选择正确的路由.RIP协议处于UDP协议的上层,RIP所接收的路由修改信息都封装在UDP的数据报中,RIP在520号端口上接收来自远程路由器的路由修改信息,并对本地的路由表做相应的修改,同时通知其它的路由器,通过这种方式,达到全局路由的的有效.
RIP协议的报文格式
本协议在实现过程中支持RIP Version1和RIP Version2两种格式的报文.RIP数据报一共有五类,由Command 域确定数据报的类型,如图1所示.
其中第1、2类报文是最重要的一对,后者是从发送该报文的路由器的寻径表中取出的V-D报文.各种RIP报文的格式相同,包括一个固定的报头和一个可选的V-D表.其格式如图2和3所示,图2是RIP Version 1的报文格式,图3是RIP Version 2的报文格式.
RIP Version1 的报文格式:
RIP Version2的格式:
其中:
◆Metric:到下一路由器的权值.
◆Address Family Identifier:指示路由项中的地址种类,这里应为2.
◆Ip Address:地址域,包括网络类和IP 地址在内,RIP报文中对每一网络共有14个字节的地址空间.
◆RIP Version 2 报文的特有的一些属性:
◆Route Tag:外部路由标记,是表示路由是保留还是重播的属性.它提供一种从外部路由中分离内部路由的方法,用于传播从外部路由器协议(EGP)获得的路由信息.
◆ Subnet mask:子网掩码,应用于IP地址产生非主机部分地址,为0时表示不包括子网掩码部分,使得RIP能够适应更多的环境.
◆ Next Hop:下一驿站,可以对使用多路由协议的网络环境下的路由进行优化.
◆ 认证,确认合法的信息包,目前支持纯文本的口令形式.
认证是每一报文的功能,因为在报文头中只提供两字节的空间,而任一合理的认证表均要求多余两字节的空间,故RIP Version 2认证表使用一个完整的RIP协议路由项.如果在报文中最初路由项Address Family Identifier域的值是0xFFFF,路由项的剩余部分就是认证.包含认证RIP报文路由项采用如下格式:
◆组播,为了降低那些没有监听RIP Version 2 报文的主机的不必要的开销,IP多目传送地址被用于定时广播.IP 多目地址是224.0.0.9.为了支持向后兼容,多目地址的使用是可配置的.如果能够多目传送,则它将被支持它所有接口使用.
◆管理信息库,允许在路由软件内部对RIP操作进行监听和控制.
如果RIP-2路由器接收RIP-1的请求,它将以RIP-1的响应方式响应.如果路由器被配置成只发送RIP-2报文,它将不响应RIP-1的请求.
编辑推荐TCP/IP协议专题
TCP/IP(传输入控制地议/网际协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与..
OSPF 是自治系统内部路由协议, 负责计算同一个自治系统内的路由。在这里“自治系统”是指彼此相连的运行OSPF 路由协议的所有路由器的集合。对于OSPF来说, 整个网络只有“自治系统内”和“自治系统外”之分。需要注意的是:“自治系统外”并不一定在物理上或拓扑结构中真正的位于自治系统的外部, 而是指那些没有运行OSPF 的路由器或者是某台运行OSPF 协议的路由器中没有运行OSPF 的接口。
二、OSFP协议中DR、BDR
在广播和NBMA 类型的网络上, 任意两台路由器之间都需要传递路由信息 (flood) , 如果网络中有 N 台路由器, 则需要建立N * (N-1) /2 个邻接关系。任何一台路由器的路由变化, 都需要在网段中进行N* (N-1) /2 次的传递。这是没有必要的, 也浪费了宝贵的带宽资源。为了解决这个问题, OSPF 协议指定一台路由器DR (Designated Router) 来负责传递信息。所有的路由器都只将路由信息发送给DR, 再由DR 将路由信息发送给本网段内的其他路由器。两台不是DR 的路由器 (DROther) 之间不再建立邻接关系, 也不再交换任何路由信息。这样在同一网段内的路由器之间只需建立N 个邻接关系, 每次路由变化只需进行2N 次的传递即可。
DR 的选举过程如下: (1) 登记选民——本网段内的运行OSPF 的路由器; (2) 登记候选人——本网段内的Priority>0 的OSPF 路由器;Priority 是接口上的参数, 可以配置, 缺省值是1; (3) 竞选演说——部分Priority>0 的OSPF 路由器认为自己是DR; (4) 在所有自称是DR 的路由器中选priority 值最大的当选, 若两台路由器的priority值相等, 则选Router ID 最大的当选。选票就是HELLO 报文, 每台路由器将自己选出的DR 写入HELLO 中, 发给网段上的每台路由器。
三、OSFP协议中三张表
(一) 邻居表。
包括所有建立联系的邻居路由器。
(二) 链接状态表 (拓扑表) 。
包含了网络中所有路由器的链接状态。它表示着整个网络的拓扑结构。同Area内的所有路由器的链接状态表, 都是相同的。
(三) 路由表。
也称转发表, 在链接状态表的基础之上, 利用SPF算法计算而来。
四、OSFP协议中四种链路类型
(一) Broadcast。
当链路层协议是Ethernet 时, OSPF 缺省认为网络类型是Broadcast。在这种类型网络中, 以组播地址 (224.0.0.5, 224.0.0.6) 发送协议报文, 需要选举DR, BDR。
(二) NBMA。
当链路层协议是Frame Relay、X.25 时, OSPF 缺省认为网络类型是NBMA。在这种类型网络中, 以单播地址发送协议报文, 必须手工配置邻居的IP 地址, 需要选举DR, BDR。
(三) Point-to-Multipoint。
没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型, 通常由NBMA的类型手工修改而来, 如果NBMA类型的网络不是全连通的。在这种类型网络中, 以组播地址 (224.0.0.5) 发送协议报文, 不需要选举DR, BDR。
(四) Point-to-Point。
当链路层协议是PPP, HDLC, LAPB时, OSPF缺省认为网络类型是Point-to-Point。在这种类型网络中, 以组播地址 (224.0.0.5) 发送协议报文, 不需要选举DR, BDR。
五、OSFP协议中五种的报文类型
(一) HELLO报文。
最常用的一种报文, 周期性的发送给本路由器的邻居。内容包括一些定时器的数值, DR, BDR, 以及自己已知的邻居。HELLO报文中包含有Router ID、Hello/dead intervals、Neighbors、Area-ID、Router priority、DR IP address、BDR IP address、Authentication password、Stub area flag等信息, 其中Hello/dead intervals、Area-ID、Authentication password、Stub area flag必须一致, 相邻路由器才能建立邻居关系。
(二) DBD报文。
两台路由器进行数据库同步时, 用DBD报文来描述自己的LSDB, 内容包括LSDB中每一条LSA的摘要 (摘要是指LSA的HEAD, 通过该HEAD可以唯一标识一条LSA) 。这样做是为了减少路由器之间传递信息的量, 因为LSA的HEAD只占一条LSA的整个数据量的一小部分, 根据HEAD, 对端路由器就可以判断出是否已经有了这条LSA。
(三) LSR报文。
两台路由器互相交换过DBD报文之后, 知道对端的路由器有哪些LSA是本地的LSDB所缺少的或是对端更新的LSA, 这时需要发送LSR报文向对方请求所需的LSA。内容包括所需要的LSA的摘要。
(四) LSU报文。
用来向对端路由器发送所需要的LSA, 内容是多条LSA (全部内容) 的集合。
(五) LSAck报文。
用来对接收到的DBD, LSU报文进行确认。内容是需要确认的LSA的HEAD (一个报文可对多个LSA进行确认) 。
六、Ospf协议中6种LSA
(一) Router LSA (Type=1) 。
是最基本的LSA类型, 所有运行OSPF的路由器都会生成这种LSA。主要描述本路由器运行OSPF的接口的连接状况, 花费等信息。对于ABR, 它会为每个区域生成一条Router LSA。这种类型的LSA传递的范围是它所属的整个区域。
(二) Netwrok LSA (Type=2) 。
本类型的LSA由DR生成。对于广播和NBMA类型的网络, 为了减少该网段中路由器之间交换报文的次数而提出了DR的概念。一个网段中有了DR之后不仅发送报文的方式有所改变, 链路状态的描述也发生了变化。在DROther和BDR的Router LSA中只描述到DR的连接, 而DR则通过Network LSA来描述本网段中所有已经同其建立了邻接关系的路由器。 (分别列出它们Router ID) 。同样, 这种类型的LSA传递的范围是它所属的整个区域。
(三) Network Summary LSA (Type=3) 。
本类型的LSA由ABR生成。当ABR完成它所属一个区域中的区域内路由计算之后, 查询路由表, 将本区域内的每一条OSPF路由封装成Network Summary LSA发送到区域外。LSA中描述了某条路由的目的地址、掩码、花费值等信息。这种类型的LSA传递的范围是ABR中除了该LSA生成区域之外的其他区域。
(四) ASBR Summary LSA (Type=4) 。
本类型的LSA同样是由ABR生成。内容主要是描述到达本区域内部的AS-BR的路由。这种LSA与Type3类型的LSA内容基本一样, 只是Type4的LSA描述的目的地址是ASBR, 是主机路由, 所以掩码为0.0.0.0。这种类型的LSA传递的范围与Type3的LSA相同。
(五) AS External LSA (Type=5) 。
本类型的LSA由ASBR生成。主要描述了到自治系统外部路由的信息, LSA中包含某条路由的目的地址、掩码、花费值等信息。本类型的LSA是唯一一种与区域无关的LSA类型, 它并不与某一个特定的区域相关。这种类型的LSA传递的范围整个自治系统 (STUB区域除外) 。
(六) AS External LSA (Type=7) 。
类型7的LSA被应用在非完全末节区域中 (NSSA) 。
七、OSPF的7种状态机
(一) Down。
邻居状态机的初始状态, 是指在过去的Dead-Interval时间内没有收到对方的Hello报文。
(二) Init。
本状态表示已经收到了邻居的HELLO报文, 但是该报文中列出的邻居中没有包含我的Router ID (对方并没有收到我发的HELLO报文)
(三) 2-Way。
本状态表示双方互相收到了对端发送的HELLO报文, 建立了邻居关系。在广播和NBMA类型的网络中, 两个接口状态是DROther的路由器之间将停留在此状态。其他情况状态机将继续转入高级状态。
(四) Ex Start。
在此状态下, 路由器和它的邻居之间通过互相交换DBD报文 (该报文并不包含实际的内容, 只包含一些标志位) 来决定发送时的主/从关系。建立主/从关系主要是为了保证在后续的DBD报文交换中能够有序的发送。
(五) Exchange。
路由器将本地的LSDB用DBD报文来描述, 并发给邻居。
(六) Loading。
路由器发送LSR报文向邻居请求对方的DBD报文。
(七) Full。
在此状态下, 邻居路由器的LSDB中所有的LSA本路由器全都有了。即, 本路由器和邻居建立了邻接 (adjacency) 状态。
八、结语
OSPF协议的SPF算法保证area内无环路。其中维护的3张表。邻居表 (显示邻接关系) , 拓扑表 (列举所有收到的LSA (link state advertisement) , 是一个LSA数据库) , 路由表 (记录到达某个网段的最佳路径, 是由前边2个表算出来的) 所有厂家都支持, 且数据包的格式都通用, 便于延展;带宽开销少, 触发式路由更新等优点, 所以广泛应用于各组网拓扑中。
摘要:OSPF是Open Shortest Path First (即“开放最短路由优先协议”) 的缩写。它是IETF (Internet Engineering Task Force) 组织开发的一个基于链路状态的自治系统内部路由协议 (IGP) , 用于在单一自治系统 (Autonomous system, AS) 内决策路由。在IP网络上, 它通过收集和传递自治系统的链路状态来动态地发现并传播路由。本文简要梳理了OSPF的相关知识点。
这个和不支持的不连续的子网的原理是一样的,图示还是上面那个,将左边的IP地址换成10.10.9.1/24,这只是一边的,还设置一个环回接口为10.10.10.5 /30,根据发送原则,如果发送的路由IP与发送的接口IP地址处于同一主网,并子网掩码相同,才可以进行正常的转发,如果掩码不一样,则不进行转发,可以到R2上面去show ip route 就会发没,没有 10.10.9.1/24这条路由信息,但是有10.10.10.5/30的。
06.RIP采用一种怎样的机制来防止路由环路?当路由环路发生的时候,哪两种特性能够将环路影响减小?
RIP采用水平分割和毒性的水平分割来防止路由环路,水平分割的原理就是:从这个接口的接收到路由信息,不会再从这个接口发出去。而毒性的水平分割就是:从这个接口接收到的路由信息,会把跳数设置为最大(不可达)又从这个接口发出去,当其它路由器由到这一条路由信息时,则丢弃。(个人觉得这没有必要,所以最好的就是设置水平分割)。当路由环路发生时,在RIP中有两种机制,一种是计数到最大,一种是保持计时器,
一般把计数设置到16,当路由环路发生时,不停地在两台路由或者是多台路器之间转发,跳数不断地增加,当增加到16跳时,则认为目标不可达,终止发送。保持计时器的原理就是当发送的路由,没有收到再次确认,计时溢出,则把路由条目从路由表中删除。
07.RIPV2比RIPV1增加了哪些功能特性?
在RIPV2的IP数据包中,增加了如下特性:子网掩码,多播,认证,下一跳地址,路由标记。
08.RIPV2中的路由标记有什么作用,并举例说明?
路由标记防止路由环路的作用。
如十条静态路由重分发到RIP域中,并被标记为20,将这十条静态路由又发到OSPF域,当OSPF域又从新将这十条静态路由发送给RIP时,RIP发送标记是自己打上的,所以拒绝这样的路由信息。拓扑图:是三台路由器相连接。
09.RIPV2是否支持认证,支持怎样的认证?
RIPV2支持简单的明文认证
10.RIPV2默认情况下能解决非连续网络的问题吗?