cnpaf.net - 中国协议分析网

投递文章 投稿指南 RSS订阅 网站通告:
搜索: 您的位置主页>协议大全>OSPF协议>阅读文章

理解RFC 2328 OSPF,版本2

12-16 05:07 来源: 作者: 【 评论:0 浏览:

在2 0世纪8 0年代即将结束时,距离-向量路由协议的不足变得越来越明显。一种试图改善网络可扩展性的努力是使用基于链路-状态来计算路由,而不是靠跳步数或其他的距离向量。链路是网络中两个路由器之间的连接。链路状态包括传输速度和延迟级等属性。

这一章深入考查了I n t e r n e t工程任务组( I E T F )的链路-状态,内部网关路由协议类型:开放式最短路径优先(Open Shortest Path First,OSPF) 。O S P F最先体现在RFC 11 3 1 中。这个暂时的规范很快被RFC 1247 淘汰。两个O S P F之间有实质性差别以至于RFC 1247 OSPF 称为O S P F 版本2 。O S P F 版本2 不断成熟和演进。之后的一些改变出现在RFC 1583 ,2 1 7 8和2 3 2 8 (最新版本)中。由于I n t e r n e t和I P都是高度动态的,因此O S P F很可能会继续发展以跟上I n t e r n e t和I P的进步。

1 OSPF起源

I E T F—为了满足建造越来越大基于I P网络的需要,形成了一个工作组,专门用于开发开放式的、链路-状态路由协议,以便用在大型、异构的I P网络中。新的路由协议以已经取得一些成功的一系列私人的、和生产商相关的、最短路径优先( S P F )路由协议为基础,S P F在市场上广泛使用。包括O S P F在内,所有的S P F路由协议基于一个数学算法—D i j k s t r a算法。这个算法能使路由选择基于链路-状态,而不是距离向量。

O S P F由I E T F在2 0世纪8 0年代末期开发,O S P F是S P F类路由协议中的开放式版本。最初的O S P F规范体现在RFC 11 3 1 中。这个第1版( O S P F版本1 )很快被进行了重大改进的版本所代替,这个新版本体现在RFC 1247文档中。RFC 1247 OSPF 称为O S P F版本2是为了明确指出其在稳定性和功能性方面的实质性改进。这个O S P F版本有许多更新文档,每一个更新都是对开放标准的精心改进。接下来的一些规范出现在RFC 1583、2 1 7 8和2 3 2 8中。

O S P F版本2的最新版体现在RFC 2328中。最新版只会和由RFC 2138、1 5 8 3和1 2 4 7所规范的版本进行互操作。本章对当前开放式O S P F标准的循环开发过程不作讨论,而是集中于讨论RFC 2328中规范的最新版O S P F的功能、特点及使用。

2 理解RFC 2328 OSPF,版本2

O S P F是专门设计用于自治系统之内的I P路由协议。如此看来,它不能传输其他可路由网络如I P X或A p p l e Ta l k的报文。如果用户的网络必须适用多种可路由协议,就要考虑使用别的路由协议而不是O S P F。S P F基于I P数据报头中的目的I P地址来计算路由,并不提供对非一I P目的地的路由计算。而且,各种O S P F信息直接封装在I P中:无需其他协议( T C P、U D P等)来传输。

O S P F也被设计用于快速地检测自治系统内的拓扑变化,并且在发现变化之后收敛到新的拓扑。路由决定以自治系统内互联的路由器之间的链路状态为基础。这些路由器各自都维护一个相同的数据库,其中记录了网络的链路状态。这个数据库中包含的是路由器状态,其中有可用的接口、可以到达的相邻路由器及链路、状态信息。

路由表更新,也就是链路-状态广播(Link-state advertisement,LSA) ,直接发送给路由器区内的所有相邻路由器。这种更新过程的技术术语称为洪泛( f l o o d ),这个术语会给人负面印象,造成对O S P F性能特点的错误认识。

实际上,O S P F网络可以非常快地收敛。网络中的所有路由器运行相同的路由算法并且直接在彼此之间传送路由表更新报文。这些信息用于建立网络和链路的视图。每个路由器的网络视图使用类- U N I X的树结构,并以自身作为根。这个树称为最短路径树(shortest-path tree), 记录了到达自治系统内每个目的地的最短路径。自治系统之外的目的地可以通过到外部网络的边界网关来获得,边界网关出现在最短路径树结构的叶上。这样的目的地和/或网络的链路-状态数据不被维护,因为它们位于O S P F网络之外。因此,它们不能出现在最短路径树的枝上。

2.1 OSPF区

O S P F快速收敛的一个关键原因是它使用了区。记住,I E T F使用O S P F想达到的两个主要目标是:

? 改善网络的可扩展性。

? 快速收敛。

取得两个目标的关键是把网络分成更小的区。一个区是一些网络端系统、路由器以及传输线路的集合体。每个区由一个惟一的区号定义,这个区号配置在每一个路由器内。定义了相同区号的路由器接口成为相同区的组成部分。理想情况下,这些区号不是任意定义的。相反,应该选择区的边界以使不同区之间的流量最小。每个区应反映实际的交通模式而非地理或政治边界。当然,这是理论上的理想情况,在特定环境下可能是不实用的。

O S P F网络中能支持的区数量受限于区I D的大小。这个域是3 2位的二进制数。因此,3 2位二进制数的理论最大值应是每一位置为1,其对应的十进制数为4 294 967 295。显然,能支持的实际最大数比这个理论上的最大数小得多。实际上,网络设计的好坏将决定能在其中支持的最大区数。图1显示了一个相当简单的O S P F网络,其中只有3个区,编号为0、1和2。

1. 路由器类型

需要重点记住的是O S P F是一个链路-状态协议。因此,链路以及与链路相接的路由器端口定义为区号。基于区成员关系,O S P F网络中有三种不同类型的路由器:

? 内部路由器。

? 区边界路由器。

? 骨干路由器。
图2使用图1给出的网络图来标识三种不同类型的路由器。


图1 具有3个区的小型OSPF网络


图2 OSPF网络中的区边界路由器、内部路由器、骨干路由器

如图2所示,具有多个接口的路由器可以属于两个或多个区。这样的路由器成为区边界路由器。也就是说,它们把自身的区号与骨干互联起来。骨干路由器是至少有一个接口定义为属于区0的路由器。一个区边界路由器也可能是一个骨干路由器。任何一个与区0互联的区边界路由器也将成为骨干路由器。

内部路由器使其所有定义接口属于同一区,但这个区不是0区。使用这三种基本的路由器,可以建造高效且可扩展的O S P F网络。

2. 路由类型

考虑图1 3 - 2中显示的三种不同类型的O S P F路由器,需要重点注意的是O S P F支持两种不同类型的路由:

? 区内路由

? 区间路由它们的名字含义相当明显。区内路由是自含的,只限于一个区内部的路由器之间的路由。使用显示在图1 3 - 1中的例子网络,图1 3 - 3给出了O S P F网络内中的区内通信。

区间路由需要在不同的区之间交换数据。所有的区间路由必须经过区0传输,不允许非0 区直接和其他区通信。这个层次限制确保了O S P F具有良好的可扩展性,而不会导致链路和路由器的混乱。图4显示了恰当地使用区0能使O S P F网络中的区间通信容易进行。


图3 OSPF网络中的区内通信


图4 OSPF网络中的区间路由

前面的例子显示了在高层,一个O S P F网络中通信是如何工作的。然而,O S P F也能用于在O S P F网络之间交流路由信息,而不仅仅在一个网络的区之间。下面将讨论O S P F的这一用法。

3. 网络之间路由

O S P F可以用于互联不同的网络。这个网络可以是另一个完整的O S P F网络或是一个实现了完全不同路由协议的网络。把O S P F网络与其他不同的路由协议相互联是一项复杂的工作,并要使用一种称为路由再分配的技术。这个术语描述了从一个网络到另一个网络路由信息的汇总和重新分布。从非O S P F网络来的路由信息汇总和重新分布到O S P F网络内。

O S P F网络把所有以这种方式学习来的路由标记为外部的。互联两个不同的O S P F网络更简单一些,因为无需把一种路由信息耗费转变为另一协议能理解的形式。而且,O S P F使建造自治系统成为可能,一个自治系统( A S )是一个自含网络。字面上讲,A S是一个网络管理员或一组网络管理员使用一个路由协议的系统。

A S的实际定义有些不固定。这其实没有关系。真正重要的是O S P F允许为一个网络分配自治系统号。一个非常大的O S P F网络能分成两个或多个自治系统。这些系统可以通过第四种类型的O S P F路由器—自治系统边界路由器(autonomous system border router ASBR) 来进行互联。A S B R汇总所有自身A S的路由信息并把汇总情况转发给对应相邻的A S B R。A S B R的作用非常类似于一个区边界路由器。显然,二者的区别是它们组成了自治系统之间的边界而不是一个自治系统或网络内的区边界。

图5显示了利用A S B R进行自治系统互联的情形。


图5 互联OSPF自治系统

2.2 路由更新

O S P F具有如此可扩展性的一个原因是它的路由更新机制。O S P F使用L S A在O S P F节点之中共享路由信息。这些广播信息会在整个区中进行传播但不会超越一个区。

因此,区中的每一个路由器都知道本区的拓扑。然而,一个区的拓扑对区外是不可知的。考虑到实际上有四种不同类型的O S P F路由器—区内路由器、区边界路由器、自治系统边界路由器、骨干路由器—很明显每种路由器类型有不同的对等实体集,路由器与这些对等实体交换L S A。

1. 内部区路由器

内部的区路由器必须直接和区中的其他路由器交换L S A,其中包括每一个区内部路由器,

也包括作为区成员的区边界路由器。图6显示了本章前面提及的O S P F例子网络中,在整个区1中转发或洪泛L S A的情形。需要重点注意的是相同区中的O S P F路由器无需彼此直接相连就能共享L S A信息。O S P F路由器直接把L S A报文发送到区中每一个知道的路由器,并且使用任何可用的链路来转发那些报文。

蕴含在图5中不太被注意的一点是收敛能够相当快地发生。其中有两个原因,第一个原因是O S P F路由器能同时直接寻址并发送L S A至区中所有的路由器(洪泛),这和R I P使用的“邻居至邻居”的收敛方法完全不同。这样的结果是区内的路由器几乎同时收敛到新拓扑结构。


图6 在区1内的洪泛

收敛通过区的定义和使用而得到加速。拓扑数据不被传输到区边界之外。因此,收敛不必在自治系统中的所有路由器上发生,而只发生在受影响的区中。这个特点既加速了收敛又增加了网络的稳定性,因为只有自治系统中的一个子网经历不稳定性,这种不稳定性是收敛过程自身带来的。

2. 区边界路由器

区边界路由器负责在数据库中为它们接口所连的每个区维护拓扑信息。因此,如果一个区边界路由器互联了两个不同的区,它必须和两个网络中的对等实体交换L S A。和区内部路由器一样,这些L S A直接寻址并传输到区中的对等实体。图7显示了这一点。


图7 在OSPF网络中由区边界路由器引起的区内LSA洪泛

O S P F加强性能的另一个特点是路由汇总。关于一个区的拓扑信息,并不和区外的路由器共享。相反,区边界路由器汇总了所有与其相连的所有区中的地址。这个汇总的路由数据通过L S A报文与其相互联的每个区中的对等路由器实现共享。O S P F使用几种不同类型的L S A: 每种有不同的功能。

用于共享汇总路由数据的L S A为类型3 LSA。所有OSPF LSA类型会在本章的剩余部分中描述。

在图7中,区边界路由器直接把汇总的数据广播给区0中的所有路由器。O S P F不允许大于或等于1的区之间相互连接。所有这样的互联必须通过区0。因此,其含义是区边界路由器把一个非0编号的区来与区0互联。

3. 骨干路由器

骨干路由器负责维护骨干拓扑信息,并且为自治系统中的每个其他区传播汇总的拓扑信息。

图8显示了由骨干路由器交换L S A的情形。


图8 在OSPF网络中由骨干路由器引起的区内LSA洪泛

虽然骨干路由器、区边界路由器和区内部路由器之间的差别看起来是清楚的,但由于路由器能支持到其他路由器的多I / O端口连接,三者还是会引起混淆。理论上讲,每个端口可以连至一个不同的区。所以,路由器可以在其连接的不同区之间形成边界。

收藏此篇文章内容到:
Tags:
责任编辑:
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册) 密码: 匿名:
    评论总数:0 [ 查看全部 ] 网友评论
    关于我们 - 广告合作 - 网站地图 - 版权说明 - 网站历史 - 世界排名 - 加入收藏 - 设为首页 - 返回顶部