OSPF开放最短路径优先协议

OSPF是一种链路状态协议,该协议克服了路由选择信息协议(RIP)和其它距离向量协议的缺点。OSPF版本1在1131中定义,目前使用的是OSPF版本2,在RFC2328中定义。ZXR10 5960全面支持OSPF版本2。

OSPF具有下列特点:

• 快速收敛,通过快速扩散链路状态更新确保数据库的同步,并同步计算路由表

• 无路由环路,通过最短路径优先(SPF)算法,确保不会产生环路

• 路由聚合,减小路由表大小

• 支持VLSM和CIDR

• 采用触发更新机制,只有在网络发生变化的时候才发送更新信息

• 支持接口的包认证,确保路由计算的安全性

• 使用组播方式发送更新

OSPF基础 >>

OSPF交换机通过建立链路状态数据库生成路由表,所有OSPF交换机必须有一个完全相同的链路状态数据库。链路状态数据库是根据链路状态公告(LSA)构造成的,而LSA是由每个路由器产生的,并在整个OSPF网络上传播。LSA有许多类型,完整的LSA集合将为交换机展示整个网络的精确分布图。

OSPF算法 >>

OSPF使用开销(cost)作为度量值。开销被分配到交换机的每个接口上,默认情况下,一个接口的开销以100M为基准自动计算得到。到某个特定目的地的路径开销是这台交换机到目的地之间的所有链路出接口的开销之和。

为了从LSA数据库中生成路由表,交换机运行Dijkstra最短路径优先算法构建最短路径树,交换机本身作为路由树的根。Dijkstra算法计算出到网络上每一个节点的开销最低的路径,交换机将这些路径的路由存入路由表。

和RIP不同,OSPF不是简单地周期性广播所有的路由选择信息。OSPF交换机使用hello报文保持邻居关系。如果一台交换机在一段特定的时间内(dead-interval)没有收到来自邻居的hello报文,则认为这个邻居可能已经不存在了。

OSPF路由刷新是递增式的,交换机通常只在拓扑结构发生改变时发出刷新信息。当LSA的年龄达到1800秒(LSA刷新间隔,LSRefreshTime)时,则发送一个该LSA的更新。

OSPF网络类型 >>

OSPF网络类型影响邻接关系的形成和接口定时器的设定,在OSPF中有以下五种网络类型:

• 广播网络

• 非广播多路访问网络(NBMA)

• 点对点网络(Point-to-Point)

• 点对多点网络(Point-to-Multipoint)

• 虚链路(Virtual Links)

HELLO包和定时器 >>

OSPF路由器以一定的时间间隔交互Hello包,其功能是在邻居间保持存活状态。Hello包可以发现OSPF邻居,选择指定路由器和备份指定路由器。在广播、点对点、点对多点这三种网络类型中,Hello包通过组播方式发送;在NBMA网络和虚链路中,Hello包通过单播方式发送。

OSPF使用三种和Hello包相关的定时器:

  1. 发送间隔
    发送间隔是接口的一个属性,定义了一台路由器隔多长时间从每一个OSPF接口送出Hello包。默认的发送间隔取决于网络类型。

在广播和点对点网络中,默认发送间隔为10秒;在NBMA和点对多点网络中,默认发送间隔为30秒。相邻的路由器成为邻居的必要条件是具有相同的发送间隔。

  1. 路由器死亡间隔
    路由器死亡间隔是一台路由器从收到最后一个来自邻居的Hello包到认为该邻居已经离线的等待时间。默认的路由器死亡间隔是发送间隔的4倍,所有网络类型都是如此。

  2. 轮询间隔
    轮询间隔只在NBMA网络中使用。

OSPF邻居 >>

OSPF邻居是一组在同一网络上的路由器,这些路由器约定了某些配置参数。路由器必须是邻居才能形成邻接关系。

形成邻居关系时,路由器要分析相互的Hello包,确定是否约定了所需的参数。这些参数必须一致,相邻路由器才能建立邻居关系,这些参数包括:区域ID、区域标志、认证信息、Hello间隔、路由器死亡间隔。

邻接和指定路由器DR >>

当两个路由器形成邻接后,就可以交换路由选择信息。两个路由器是否形成邻接取决于连接路由器的网络类型。

• 由于点对点网络和虚链路只有两台路由器,之间必须互相交换相关的路由信息,所以路由器会自动形成邻接。点对多点网络可认为是点对点网络的集合,所以每一对路由器之间也会形成邻接。

• 在广播和NBMA网络中,邻居间不一定形成邻接。如果一个网络上所有的n个路由器都建立了邻接,则每个路由器将有(n-1)个邻接,网络上将会有n(n-1)/2个邻接。

在一个大的多路访问网络中,如果每个路由器都要追踪这么多的邻接,路由器的负担会很重,同时,每对邻接路由器之间的路由选择信息将会大大浪费网络带宽。

由于一个大的多路访问网络中存在大量的冗余信息,因此,OSPF定义了一个指定路由器(DR)和一个备份指定路由器(BDR)。DR和BDR必须和网络上每个OSPF路由器建立邻接关系,每个OSPF路由器只与DR和BDR形成邻接。所有的路由器都只将路由信息发送给DR,再由DR将路由信息发送给本网段内的其它路由器。两台都不是DR/BDR的路由器之间不再建立邻接关系,也不再交换任何路由信息。如果DR停止工作,则BDR将成为DR。

路由器优先级和DR选举 >>

每个路由器接口都有一个优先级,优先级的不同直接影响路由器成为所连网络中的DR或BDR的能力。路由器接口的优先级用8位无符号整数值表示,范围在0~255之间,缺省为1。

在DR选举时,先比较接口优先级,接口优先级最高的路由器在本网段中成为DR。在优先级相同的情况下,选举router id最大的路由器为DR。优先级为0的路由器不能成为DR或BDR。

DR是某个网段中概念,所以是针对路由器的接口而言的。某台路由器在一个接口上可能是DR,在另一个接口上可能是BDR,或者是DROther。

OSPF区域 >>

OSPF区域将网络分为若干个较小部分,以减少每个路由器存储和维护的信息量,屏蔽网络变化波及的范围。

每个路由器必须有所在区域的完整信息,不同的区域之间通过ABR来传递路由信息。各区域之间的信息是共享的,路由选择信息可以在区域边缘被过滤,过滤可以减少路由器里存储的路由选择信息量。

一个区域用32位无符号数字来标识。区域0被保留,用来标识骨干网络,其它所有区域必须直接连在区域0上。一个OSPF网络的骨干区域必须连续。路由器根据所在区域内的任务,可以是下列一种或多种类型,如图1所示。

在这里插入图片描述

• 内部路由器:是指该路由器的所有接口都属于同一个OSPF区域。这种路由器只生成一条Router LSA,只保存一个LSDB。

• 骨干路由器:路由器至少有一个接口在区域0内。

• 区域边缘路由器ABR:路由器至少有一个接口在区域0并且至少有一个接口在其它区域,所有的ABR都是骨干路由器。

• 自治系统边界路由器ASBR:指该路由器引入了其它路由协议,包括静态路由、接口的直接路由和其它路由协议(如RIP或IGRP)。

区域划分后的好处有:

• 由于划分区域后ABR是根据本区域内的路由生成LSA,则可以根据IP地址的规律先将这些路由进行聚合后再生成LSA,这样做可以大大减少自治系统中LSA的数量。

• 划分区域之后,网络拓扑的变化会先在区域内进行同步,如果该变化影响到聚合之后的路由,则才会由ABR将该变化通知到其它区域。大部分的拓扑结构变化都会被屏蔽在区域之内。

LSA的类型和扩散 >>

LSA是OSPF路由器之间链路状态数据库交流信息的方式,路由器使用LSA构造一个准确的、完整的网络图,并由此产生路由表中所使用的路由。ZXR10 5960支持8种类型的LSA,分别是:

• 类型1:路由器LSA。这是最基本的LSA类型,所有运行OSPF的路由器都会生成这种LSA。主要描述本路由器运行OSPF的接口的连接状况,花费等信息。ABR会为每个区域生成一条Router LSA。这种类型的LSA传递的范围是其所属的整个区域。

• 类型2:网络LSA。本类型的LSA由DR生成。对于广播和NBMA类型的网络,为了减少该网段中路由器之间交换报文的次数而提出了DR的概念。一个网段中有了DR之后不仅发送报文的方式有所改变,链路状态的描述也发生了变化。在DROther和BDR的Router LSA中只描述到DR的连接,而DR则通过Network LSA来描述本网段中所有已经同其建立了邻接关系的路由器(分别列出Router ID)。同样,这种类型的LSA传递的范围是其所属的整个区域。

• 类型3:网络汇总LSA。本类型的LSA由ABR生成。当ABR完成网络汇总LSA所属一个区域中的区域内路由计算之后,查询路由表,将本区域内的每一条OSPF路由封装成Network Summary LSA发送到区域外。LSA中描述了某条路由的目的地址、掩码、花费值等信息。这种类型的LSA传递的范围是ABR中除了该LSA生成区域之外的其它区域。

• 类型4:ASBR汇总LSA。本类型的LSA同样是由ABR生成。内容主要是描述到达本区域内部的ASBR的路由。这种LSA与Type3类型的v内容基本一样,只是Type4的LSA描述的目的地址是ASBR,是主机路由,所以掩码为0.0.0.0。这种类型的LSA传递的范围与Type3的LSA相同。

• 类型5:AS外部LSA。本类型的LSA由ASBR生成。主要描述了到自治系统外部路由的信息,LSA中包含某条路由的目的地址、掩码、花费值等信息。本类型的LSA是唯一一种与区域无关的LSA类型,并不与某一个特定的区域相关。这种类型的LSA传递的范围是整个自治系统(STUB区域除外)。

• 类型7:NSSA外部LSA。类型7的LSA被应用在非完全末节区域NSSA中。

• 类型9:本地不透明 LSA

• 类型10:区域不透明LSA

OSPF的操作取决于一个区域内共享一个公用链路状态数据库的所有路由器,因此,所有LSA需要通过这个区域扩散,并且处理必须是可靠的。接收到一个特定区域的LSA的每一个路由器都将其扩散给属于这个区域的其它接口。

LSA没有自己的报文,而是被包含在链路状态更新(LSU)报文中,几个LSA也可以被包含在一个LSU中。

当路由器收到一个LSU时,该路由器不是简单地把这个报文传送出去,而是从报文中将LSA分离出来,输入到自己的数据库中,同时,路由器构建自己的LSU,并将这个被更新过的LSU传递给与该路由器邻接的邻居。

OSPF使用链路状态确认(Link State Acknowledgements,LSAck)来确认每个LSA是否已被邻居成功接收。一个LSAck具有被确认的LSA的头部,并提供了足够的信息来唯一标识一个LSA。

当路由器送出一个LSA到一个接口时,这个LSA被记录在这个接口的再传送队列中。路由器将等待最大的间隔时间以接收这个LSA的LSAck。如果在规定的时间内没有收到LSAck,路由器将重传这个LSA。

路由器可以采用单播或组播来传送原LSU,但重传的LSU是单播的。

末节区域和完全末节区域 >>

当一个非骨干区域中没有ASBR时,路由器只有一条到达AS外部网络的通路,即通过ABR。因此,这些区域内的路由器会将发往AS外部未知主机的LSA都发送到ABR上。

此时类型5的LSA不需要扩散到该区域中,在该区域中也没有类型4的LSA。这种区域类型称为末节区域(Stub Area)。

在一个末节区域中,所有路由器必须被配置成末节路由器。Hello包中包含了一个“stub区域”标志位,这个标志位在邻居中必须是一致的。

末节区域中的ABR能够过滤掉类型5的LSA,以防止被发布到末节区域中。同时,ABR会产生一个类型3的LSA,以通告一条到达AS外部目的地址的默认路由。

如果ABR将类型3的LSA也过滤掉,并通告一条到达区域外部目的地址的缺省路由,这种区域称为完全末节区域(Totally Stubby Area)。

非完全末节区域 >>

末节区域中的路由器不允许类型5的LSA,所以ASBR不是末节区域的一个部分。如果要生成一个具有ASBR的末节区域,那么这个区域中的路由器从该区域的ASBR接收AS外部路由,但是来自其它区域的外部路由信息将被阻断。

为此,OSPF定义了非完全末节区域NSSA。在一个NSSA中,ASBR生成类型7的LSA而不是类型5的LSA。ABR不能将类型7的LSA传入其它的OSPF区域,一方面在区域边缘阻断外部路由到达NSSA区域,另一方面将类型7的LSA转换成类型5的LSA传送到其它区域 。

OSPF认证 >>

认证用于两个OSPF邻居之间的数据包交换。邻居间认证类型必须一致,认证类型包含在所有数据包中。

认证类型为0表示无认证,1表示简单密码认证,2表示MD5密码认证。

当配置简单密码认证时,一个接口只允许一个密码,每个接口的密码可以是不同的,但一个特定网络中的每个接口必须具有相同的密码。简单密码以明文方式用OSPF数据包传送。

DownBit >>

当MP-BGP路由重分发到OSPF的vrf实例生成LSA时,三型和五型LSA的option选项都要置上down bit,显示为Downward,用来防止路由环路。

当PE路由器检测到某一条LSA置上了down bit,将不参与OSPF路由的计算;当OSPF路由重分发到BGP时,带down bit的LSA不重分发成BGP路由。

max-metric >>

基于流量、管理等方面的要求,有时需要使某些路由器只是路由的终点而不是传输点,作为没有穿越能力的节点被包括到网络的拓扑中,这可以通过max-metric 功能实现。

例如当路由器刚刚重新启动,BGP路由尚未收敛,通过配置max-metric router-lsa on-startup wait-for-bgp
命令,可以防止路由黑洞。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值