开放式最短路径优先

本文深入探讨开放式最短路径优先(OSPF)协议,介绍了OSPF的起源、理解RFC2328中的OSPF版本2,研究了OSPF的数据结构,并讨论了如何计算路由。文章还涵盖了OSPF的区概念、路由更新机制以及链路状态广告等方面。
摘要由CSDN通过智能技术生成
下载
第13章开放式最短路径优先
作者:Mark A. Sportack
本章内容包括:
• OSPF起源
• 理解RFC 2328 OSPF,版本2
• 研究O S P F数据结构
• 计算路由
在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的进步。
13.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的功能、特点及使用。
13.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网络之外。因此,它们不能出现在最短路径树的
枝上。
13.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 3 - 1显示了一个相当简单的O S P F网络,其中只有3个区,编号为0、1和2。
1. 路由器类型
需要重点记住的是O S P F是一个链路-状态协议。因此,链路以及与链路相接的路由器端口
定义为区号。基于区成员关系, O S P F网络中有三种不同类型的路由器:
• 内部路由器。
• 区边界路由器。
• 骨干路由器。
图1 3 - 2使用图1 3 - 1给出的网络图来标识三种不同类型的路由器。
第1 3章开放式最短路径优先使用131
下载
图13-1 具有3个区的小型OSPF网络
图13-2 OSPF网络中的区边界路由器、内部路由器、骨干路由器
如图1 3 - 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具有良好的可扩展性,而不会导致链路和路
由器的混乱。
132第四第四部分IP 互联
下载
路由器
路由器路由器
路由器路由器
路由器路由器
路由器
区1 区2
区0
路由器
路由器
区边界路由器
内部路由器
路由器骨干路由器
路由器
路由器路由器
路由器
路由器
区1 区2
图1 3 - 4显示了恰当地使用区0能使O S P F网络中的区间通信容易进行。
图13-3 OSPF网络中的区内通信
图13-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网络内。
第1 3章开放式最短路径优先使用133
下载
路由器
以太网
以太网
路由器
路由器
服务器
路由器路由器
路由器路由器
路由器
区1 区2
区0
P C
路由器
路由器
以太网
以太网
路由器
服务器
路由器路由器
路由器路由器
路由器
区1 区2
区0
P C
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的作用
非常类似于一个区边界路由器。显然,二者的区别是它们组成了自治系统之间的边界而不是
一个自治系统或网络内的区边界。
图1 3 - 5显示了利用A S B R进行自治系统互联的情形。
图13-5 互联OSPF自治系统
13.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,其中包括每一个区内部路由器,
也包括作为区成员的区边界路由器。图1 3 - 6显示了本章前面提及的O S P F例子网络中,在整个
区1中转发或洪泛L S A的情形。需要重点注意的是相同区中的O S P F路由器无需彼此直接相连
就能共享L S A信息。O S P F路由器直接把L S A报文发送到区中每一个知道的路由器,并且使用
任何可用的链路来转发那些报文。
蕴含在图1 3 - 5中不太被注意的一点是收敛能够相当快地发生。其中有两个原因,第一个
原因是O S P F路由器能同时直接寻址并发送L S A至区中所有的路由器(洪泛),这和R I P使用的
“邻居至邻居”的收敛方法完全不同。这样的结果是区内的路由器几乎同时收敛到新拓扑结
构。
134第四第四部分IP 互联
下载
自治系统1 自治系统2
A S -边界路由器A S -边界路由器
图13-6 在区1内的洪泛
收敛通过区的定义和使用而得到加速。拓扑数据不被传输到区边界之外。因此,收敛不
必在自治系统中的所有路由器上发生,而只发生在受影响的区中。这个特点既加速了收敛又
增加了网络的稳定性,因为只有自治系统中的一个子网经历不稳定性,这种不稳定性是收敛
过程自身带来的。
2. 区边界路由器
区边界路由器负责在数据库中为它们接口所连的每个区维护拓扑信息。因此,如果一个
区边界路由器互联了两个不同的区,它必须和两个网络中的对等实体交换L S A。和区内部路
由器一样,这些L S A直接寻址并传输到区中的对等实体。图1 3 - 7显示了这一点。
图13-7 在OSPF网络中由区边界路由器引起的区内LSA洪泛
O S P F加强性能的另一个特点是路由汇总。关于一个区的拓扑信息,并不和区外的路由器
共享。相反,区边界路由器汇总了所有与其相连的所有区中的地址。这个汇总的路由数据通
过L S A报文与其相互联的每个区中的对等路由器实现共享。O S P F使用几种不同类型的L S A:
每种有不同的功能。
用于共享汇总路由数据的L S A为类型3 LSA。所有OSPF LSA类型会在本章的剩余部分中
描述。
在图1 3 - 7中,区边界路由器直接把汇总的数据广播给区0中的所有路由器。O S P F不允许
大于或等于1的区之间相互连接。所有这样的互联必须通过区0。因此,其含义是区边界路由
器把一个非0编号的区来与区0互联。
3. 骨干路由器
骨干路由器负责维护骨干拓扑信息,并且为自治系统中的每个其他区传播汇总的拓扑信息。
第1 3章开放式最短路径优先使用135
下载
路由器
路由器
路由器
路由器路由器
路由器路由器
路由器
区1 区2
区0
路由器
路由器
路由器
路由器路由器
路由器路由器
路由器
区1 区2
区0
图1 3 - 8显示了由骨干路由器交换L S A的情形。
图13-8 在OSPF网络中由骨干路由器引起的区内LSA洪泛
虽然骨干路由器、区边界路由器和区内部路由器之间的差别看起来是清楚的,但由于路
由器能支持到其他路由器的多I / O端口连接,三者还是会引起混淆。理论上讲,每个端口可以
连至一个不同的区。所以,路由器可以在其连接的不同区之间形成边界。
13.3 研究OSPF数据结构
O S P F是相当复杂的路由协议,有许多性能和稳定性方面增强的特点。因此, O S P F使用
大量的数据结构就不是奇怪的现象。每个数据结构或信息类型,用于执行一个特定的任务。
所有数据结构共享一个通用头,称为O S P F头。O S P F头长度为2 4字节,包括以下各域:
• 版本号—分配O S P F头的第一个字节用于标识版本号。当前的版本是2,但是可能会遇
到更老的路由器还在运行RFC 11 3 1版本1。RFC 1247、1 5 8 3、2 1 7 8和2 3 2 8都对O S P F版
本2的向后兼容作了规范。因此无需进一步的标识。
• 类型—第二个字节指出5种O S P F报文类型中哪一种附加在头结构后面。5种类型
( H E L L O、数据库描述、链路-状态请求、链路-状态更新和链路-状态应答)用数字标识。
• 报文长度—O S P F头中下面两个字节用于通知接收节点报文的总长度。报文总长度包
括数据和头。
• 路由器I D—区中的每个路由器被分配一个惟一的、4字节的标识号。O S P F路由器在发
送任何O S P F消息给其他路由器之前,用自己的I D号填充该域。
• 区I D—头中用4字节标识区号。
• 校验和—每个O S P F头包括一个2字节的校验和域,用于检查在传输过程中对报文造成
的破坏。发送方对每个消息运行数学计算,然后把结果存储在这个域中。接收方对接收
到的报文运行相同的算法并把结果与存储在校验和域中的结果进行比较。如果报文无损
到达,两个结果应一样;不相同,说明O S P F报文在传输过程中被破坏。接收方会简单
地把受损报文丢弃。
• 认证类型—O S P F能通过认证O S P F信息的发送者来防止会导致假路由信息这样的攻击。
两字节的认证类型域标识信息中使用的各种认证形式。
• 认证—头中剩下的9个字节携带的是认证数据,接收方利用此信息来确定信息的发送
者。O S P F允许网络管理员使用各种级别的认证:从无认证,到简单认证,到最强大的
M D认证,基本结构中包含O S P F节点所需的用于决定报文是否应接收并作进一步处理,
136第四第四部分IP 互联
下载
路由器
路由器路由器
路由器路由器
路由器路由器
路由器
区1 区2
区0
还是应丢弃的所有信息。在传输过程中受损的(校验和指出这一点)及没有通过认证的报
文会被丢弃。
O S P F使用5种不同的报文类型。每种类型用于支持不同的,专门的网络功能。这5种类型是:
• HELLO报文(类型1 )。
• 数据库描述报文(类型2 )。
• 链路-状态请求报文(类型3 )。
• 链路-状态更新报文(类型4 )。
• 链路-状态应答报文(类型5 )。
这5种报文类型有时用编号指明,而不是用名字。所以, O S P F类型5报文实际上是指链路-
状态应答报文。所有这些报文类型使用O S P F头。
注意5种基本的O S P F数据结构用5个纯粹的数表示,对这些结构和大小的详细讨论超
出了本章的范围。相反,这一章仅限于讨论这些数据类型的目的和使用。
13.3.1 HELLO报文
O S P F包含一个用于建立和维护相邻站点之间关系的协议( H E L L O协议)。这些关系称为连
接性。连接性是O S P F交换路由数据的基础。
通过这个协议和报文类型, O S P F节点能发现区中的其他O S P F节点。它的名字表明了其
含义, H E L L O协议在可能的相邻路由器之间建立通信。H E L L O协议使用特别的子报文结构,
这个结构附加到标准2 4字节的O S P F头后面。这些结构共同构成H E L L O报文。
O S P F网络中的所有路由器必须遵守一定的规则,这个规则在整个网络中要一致。这些规
则包括:
• 网络掩码。
• HELLO报文广播的间隔。
• 网络中的其他路由器认为一个没有反应的路由器为死节点的时间(路由器死时间间隔)。
O S P F中的所有路由器对这些参数必须使用相同值,否则网络可能不会正常工作。这些参
数通过H E L L O报文进行交换。它们一起构成相邻节点之间通信的基础。它们要确保在不同网
络的路由器之间不形成相邻关系(连接性),并且网络中的所有成员要对多久彼此联系一次成达
共识。
H E L L O报文也包括最近已与其联系过的其他路由器列表(使用它们自己惟一的路由器I D )。
这个N e i g h b o r (相邻者)域使邻居发现过程成为可能。H E L L O报文还包括几个其他的域,如
Designated Router(指定路由器)、Backup Designated Router(备份指定路由器)和其他一些域。
这些域对于维护连接性,支持O S P F网络的稳定周期和收敛都是有用的。Designated Router和
Backup Designated Router的用处将在本章后面的节中描述。
13.3.2 数据库描述报文
当O S P F中的两个路由器初始化连接时要交换数据库描述( D D )报文。这个报文类型用于描
述,而非实际地传送O S P F路由器的链路-状态数据库内容。由于数据库的内容可能相当长,
所以可能需要多个数据库描述报文来描述整个数据库。实际上,保留了一个域用于标识数据
第1 3章开放式最短路径优先使用137
下载
库描述报文序列。接收方对报文的重新排序使其能够真实地复制数据库描述报文。
D D交换过程按询问/应答方式进行,在这个过程中,一个路由器作为主路由器。另一个路
由器作为从路由器,主路由器向从路由器发送它的路由表内容。显然,主从之间的关系会因
每个D D交换的不同而不同。网络中的所有路由器会在不同时刻作用,在这个过程中既可能是
主又可能是从。
13.3.3 链路-状态请求报文
O S P F报文的第三种类型为链路-状态请求报文。这个报文用于请求相邻路由器链路-状态
数据库中的一部分数据。表面上讲,在收到一个D D更新报文之后, O S P F路由器可以发现相
邻信息不是比自己的更新就是比自己的更完全。如果是这样,路由器会发送一个或几个链路-
状态请求报文给它的邻居(具有更新信息的路由器)以得到更多的链路状态信息。
请求的信息必须是非常具体的。它必须使用下面的标准规范指明所要求的数据:
• 链路-状态( L S )类型号( 1到5 )。
• LS标识。
• 通告路由器。
这些规范一起指明了一个具体的O S P F数据库子集,而不是它的一个事例。一个事例是与
信息相同的子集,这个子集带有暂时边界(也就是时戳)。记住, O S P F是一个动态路由协议,
它能对网络中链路状态的变化自动作出反应。因此, L S请求的接收者把对这些特定路由信息
解释为最新数据。
13.3.4 链路-状态更新报文
链路-状态更新报文用于把L S A发送给它的相邻节点。这些更新报文是用于对L S A请求的
应答。有5种不同的L S A报文类型。这些报文类型用从1到5的类型号标识。
注意由于O S P F通常把链路-状态广播看作L S A,因此会存在潜在的混淆。然而,实际
上用于更新路由表的机制为链路-状态更新报文—简记为L S U。还有另一个报文结构,
链路-状态应答报文,简写为L S A;由于一些不可知的原因,这种报文称为链路-状态应
答,而LSA通常是指更新报文。
这些报文类型及其L S A号,如下所述:
• Rauter LSA (路由器L S A ) (类型1 )—路由器L S A描述了路由器链路到区的状态和耗费。
所有这样的链路必须在一个L S A报文中进行描述。同时,路由器必须为它属于的每个区
产生一个路由器L S A。所以,区边界路由器将产生多个路由器L S A,而区内的路由器只
需产生一个这样的更新。
• Network LSA (网络L S A ) (类型2 )—网络L S A与路由器L S A相似,它描述的是连接进网
络的所有路由器的链路状态和耗费信息。二者的区别是网络L S A是网络中所有链路-状
态和耗费信息的总和。只有网络的指定路由器记录这个信息,并由它来产生网络L S A。
• Summary LSA-IP Network (汇总L S A - I P网络) (类型3 )—使用汇总L S A - I P这个名字有些
不灵活,因此O S P F的设计者采用了编号策略来记L S A!只有O S P F网络中的区边界路由
器能产生这种L S A类型。使用这种L S A类型把一个区的汇总路由信息和O S P F网络中相
138第四第四部分IP 互联
下载
邻区路由器信息进行交换。它经常汇总缺省的路由而不是传播汇总的O S P F信息至其他
网络。
• Summary LSA-Autonomous System Boundary Router(汇总L S A -自治系统边界路由器) (类
型4 )—类型4与类型3 LSA的关系密切。二者的区别是类型3描述区内路由,而类型4描
述的是O S P F网络之外的路由。
• A S -外部L S A (类型5 )—第5个L S A是自治系统外部L S A。正如其名,这种L S A用于描述
O S P F网络之外的目的地。这些目的地可以是特定主机或是外部网络地址。作为和外部
自治系统相联系的ASBR OSPF节点负责把外部路由信息在它属于的整个区中传播。
这些L S A类型用于描述O S P F路由域的不同方面,它们直接寻址到O S P F区中的每一个路由
器并同时传输。这样的洪泛确保O S P F区中的所有路由器关于网络的5个不同方面( L S A类型)有
一样的信息。路由器完整的L S A数据存储在链路-状态数据库中。当D i j k s t r a算法应用于这些数
据库的内容时会得到O S P F路由表。表和数据库的区别是数据库含有原始数据的完整集合,而
路由表包含通过特定路由器接口到已知目的地的最短路径列表。
不必研究每种L S A类型的结构,只需研究它们的头就足够了。
1. LSA头
所有的L S A使用一个通用的头格式。这个头2 0字节长并附加于标准的2 4字节O S P F头后面。
L S A头惟一地标识了每种L S A。所以,它包括关于L S A类型、链路-状态I D及通告路由器I D的
信息。下面是L S A头域:
• L S年龄—L S A头中的前两个字节包含L S A的年龄。这个年龄是自从L S A产生时已消逝
的时间秒数。
• O S P F选项—下面的字节由一系列标志组成,这些标志标识了O S P F网络能提供的各种
可选的服务。
• L S类型—1字节L S类型指出5种L S A类型中的一种。每种L S A类型的格式是不同的。因
此,指出何种类型的数据附加在头后面必不可少。
• 链路-状态I D—链路-状态I D域4字节长用于指明L S A描述的特定网络环境区域。这个域
与前面提及的L S类型域关系紧密。实际上,这个域的内容直接依赖于L S类型。比如,在
路由器L S A中,链路-状态I D包含产生了这个报文的O S P F路由器I D——通告路由器I D。
• L S顺序号—O S P F路由器会递增每个L S A报文的序列号。所以,接收到两个相同L S A
事例的路由器有两种选择来决定哪一个是最新的报文, L S顺序号域4字节长。检查这个
域可以确定L S A在网络中已传输了多久。从理论上讲,一个新的L S A年龄比一个老的
L S A年龄大是有可能的,特别是在大型复杂的O S P F网络中。所以,接收路由器比较L S
顺序号。大号的L S A是最新生成的,这种机制不会因动态路由的变迁而受到损坏,而应
认为其是一种更可靠的确定L S A时间的方法。
• L S校验和—3字节的L S校验和用于检查L S A在传输到目的地的过程中是否受到破坏。
校验和采用简单的数学算法。它的输出结果依赖于其输入,并且有高度的一致性。给定
相同的输入,校验和算法总是给出相同的输出。L S校验和域使用部分L S A报文内容(包
括头,不包括L S年龄和校验和域)来生成校验和值。源节点运行F l e t c h e r算法并把结果存
于L S校验和域中。目的节点执行相同的算法并把结果与存储在校验和域中的结果比较,
如果两个值不相同,就可以认为报文在传输过程中被破坏。之后,产生一个传输请求。
第1 3章开放式最短路径优先使用139
下载
• LS长度—L S长度域用于通知接收方L S A的长度(以字节为单位),这个域1个字节长。
L S A报文体的剩余部分包含一个L S A的列表。每个L S A描述O S P F网络5个不同方面中的一
个。所以,路由器L S A报文会广播区内已知存在的路由器信息。
2. 处理L S A更新
O S P F路由表与其他路由表的本质区别是它的更新并不直接被接收站点所使用。从其他路
由器接收到的更新包含“从发送路由器角度看”网络得到的信息。所以,在使用和解释接收
到的L S A数据之前必须由D i j k s t r a算法,把它转化为自己本身的信息。
表面上讲, L S A的传输是因为一个路由器检测到了链路状态变化。所以,在接收到任何
类型的L S A之后,O S P F路由器必须把L S A的内容和自身路由表的对应部分进行比较。只有通
过S P F算法,使用新数据形成新的网络视图之后才能进行比较, S P F算法输出的结果是得到网
络的新视图。这些结果与已存在的O S P F路由表相比较,看是否它的路由受到了网络状态变化
的影响。
如果由于状态变化必须改变一条或多条路由,就要使用新的信息建造一个新的路由表。
3. 复制L S A
考虑到L S A在整个O S P F区内洪泛,就有可能同时存在多个相同L S A类型的事例。因此,
O S P F网络的稳定性要求路由器能够识别多个L S A中的最新者。收到两个或多个相同L S A类型
的路由器会检查L S A头中的L S年龄、L S顺序号以及L S校验和域。只有包含在最新L S A中的信
息才被接受,并且要经过前面一节中描述的处理过程。
13.3.5 链路-状态应答报文
第5种O S P F报文是链路-状态应答报文。O S P F的特点是可靠地分布L S A报文( L S A表示链
路-状态通告( a d v e r t i s e m e n t ),通告而不是链路-状态应答),可靠性意味着通告的接收方必须应
答。否则,源节点将没有办法知道是否L S A已到达目的地。因此,需要一些应答L S A接收的
机制。这个机制是链路-状态应答报文。
链路-状态应答报文惟一地标识其要应答的L S A报文。标识以包含在L S A头中的信息为基
础,包括L S顺序号和通告路由器。L S A与应答报文之间无需1对1的对应关系。多个L S A可以
用一个报文来应答。
13.4 计算路由
O S P F虽然很复杂,却使用下面两种相当简单的方法之一计算路由耗费:
• 非带宽敏感的缺省值可以用于每一个O S P F接口。
• OSPF能自动计算使用每个路由接口的耗费。
不管使用哪种方法,任何一条路由的耗费可以通过把路由上遇到的每个路由器接口耗费
加起来得到。在O S P F的最短路径树中记录了每一个已知目的地的和耗费。
13.4.1 使用自动计算
O S P F能自动计算一个接口的耗费,这个算法以每个接口类型支持的带宽为基础。一条路
由上所有接口计算值的和( s u m )形成O S P F路由决定的基础。基于冗余链路上可获得的带宽,
这些值能使O S P F计算出最小耗费的路由。图1 3 - 9中的网络显示了这一点。
140第四第四部分IP 互联
下载
图13-9 自动计算的路由耗费
在图1 3 - 9中,位于网络1 9 3 . 1 . 3 . 0中的主机与位于网络1 9 3 . 1 . 4 . 0中端系统之间的广域网路由
耗费为1 3 8。这个耗费是这两个网络之间两条T 1链路的耗费和(每条6 4 ),再加上以太网接口至
网络1 9 3 . 1 . 4 . 0的耗费。在起点和终点的以太网接口耗费不包含在O S P F耗费计算中,这是因为
O S P F只计算向外的路由器接口耗费。
表1 3 - 1汇总了图1 3 - 9中每个被使用接口自动计算得出的耗费值。
表13-1 每个接口类型的计算耗费
接口类型耗费
100Mbps FDDI 1
10Mbps Ethernet 1 0
1.544Mbps T1 串行链路6 4
5 6 K b p s串行链路1 768
13.4.2 使用缺省路由耗费
读者最感兴趣的或许是让O S P F自动计算路由耗费,虽然这有点不可能。比如,旧的路由
器可能不支持自动计算特性。在这种情况下,所有的接口具有相同的O S P F耗费。因此, T 3会
和5 6 K b p s的租用线路具有相同的耗费。显然,这两种线路提供了非常不同的性能级别,这点
不同应该成为路由决定的基础。
然而,有一些环境会接受使用缺省路由耗费。比如,用户的网络由类似的传输线路组成,
那么缺省值将是可接受的。另外,管理员能手动地为某个特定接口修改耗费度量。这样会使
网络管理员在主要仍使用缺省路由耗费的前提下,对网络的流量模式进行合理地规划。
1. 同构网络
在同构网络中,所有的传输线路是一样的。比如,所有的L A N接口都是1 0 M b p s的以太网,
所有WA N接口都是T 1。在这种情形下,使用缺省值不大会引起路由问题。这一点在几乎没有
或有很少路由冗余的情况下是非常正确的。
第1 3章开放式最短路径优先使用141
下载
路由器3 路由器4
路由器1
1 9 3 . 1 . 1 . 0 1 9 3 . 1 . 2 . 0
1 9 3 . 1 . 3 . 0 1 9 3 . 1 . 4 . 0 1 9 3 . 1 . 5 . 0 1 9 3 . 1 . 5 . 0
路由器5
路由器2
F D D I环
路由器6
区2
区1
以太网以太网以太网
以太网
以太网
开销= 6 4
开销= 1
开销= 6 4 开销= 6 4
开销= 1 0
56 Kbps
T- 1 区0 开销= 1 7 6 8
T- 1 T- 1
为了显示这一点,考虑图1 3 - 1 0中的网络图。
图13-10 可以接受地使用OSPF缺省接口值
在图1 3 - 1 0中,缺省值1 768分配给每一个接口。然而所有的WA N链路是T 1。考虑到所有
的值都一样,那么分配值为1 128 、1 768 还是1 000 000就没太大关系!同构网络中的路由决定
变成简单计算和比较跳数,不管网络中有多少路由冗余,这一点都是正确的。
显然,在有相当多路由冗余并且使用不同的传输技术的网络中,缺省值将不会选出到任
何目的地的最优路由。
2. 手动设置值
在一些网络中,希望接受O S P F缺省路由,之后手动地设置那些不同于缺省链路的特殊链
路值。比如,用户网络的缺省耗费值可能是1 768—5 6 K b p s串行链路的计算值。
如果网络中只有一条或两条链路不提供相同的带宽,就能接受缺省值之后为那些特殊链
路设置其他值。
是使用自动计算的路由耗费,还是缺省耗费,或是手动配置的耗费对O S P F节点而言都是
不重要的。它们会接受所有这样的耗费值并计算得到网络的最短路径树。
13.4.3 最短路径树
各种L S A复制的目的是使路由器能构造网络拓扑视图。这个拓扑以树的方式安排。O S P F
路由器形成树的根。这个树给出到所知目的地地址的完整路径,虽然只有下一跳用于转发报
文。其中的原因是简单的,记录到目的地的完整路径使冗余路径的比较和选择最好路径成为
可能。如果有多条相同耗费的路径,它们会被O S P F发现并使用,流量在这些可用链路中大致
取得均衡。
1. 路由器3的视图
为了更好地理解最短路径树的概念,考虑图1 3 - 11中的网络。图中的简单网络是一个小型
O S P F网。网络管理员已经启动了路由耗费的自动计算。需要重点注意的是路由器5和6之间的
以太网构成了网络1 9 3 . 1 . 5 . 0和1 9 3 . 1 . 6 . 0通过路由器2的另一条路径,所以, O S P F自动计算的耗
费为1 0,而相似的耗费没有分配到其他的以太网上。
142第四第四部分IP 互联
下载
路由器
以太网以太网
路由器
路由器路由器
路由器
路由器路由器
开销= 1 7 6 8
开销= 1 7 6 8
开销= 1 7 6 8 开销= 1 7 6 8
开销= 1 7 6 8
开销= 1 7 6 8 开销= 1 7 6 8
T- 1
T- 1
T- 1
T- 1
T- 1
区1 区2
区0
图13-11 具有路由耗费的OSPF网络
这个网络(图1 3 - 1 0 )的最短路径树会随
路由器的不同而变化。图1 3 - 1 2是从路由器
3的角度看到的树。
从图1 3 - 1 2可以明显地看出,树结构使
到给定目的地路由耗费的计算简化。根路
由器(路由器3—1 9 3 . 1 . 3 . 0 )能很快地把到
任何目的地的路由上所遇到的路由器接口
耗费加起来。从路由器3的角度,到任何
一个网络的路由耗费汇总在表1 3 - 2中。对
于多于一跳的目的地,接口耗费相加在括
号内。这样可以使读者沿着图1 3 - 1 2中的网
络进行路径跟踪。
表13-2 从路由器3到已知目的地的耗费
目的地跳数积累耗费
1 9 3 . 1 . 3 . 0 — 0
1 9 3 . 1 . 1 . 0 1 6 4
1 9 3 . 1 . 2 . 0 2 6 5 ( 6 4 + 1 )
1 9 3 . 1 . 4 . 0 2 1 2 8 ( 6 4 + 6 4 )
1 9 3 . 1 . 5 . 0 3 1 2 9 ( 6 4 + 1 + 6 4 )
193.1.6.0 3 1 833(64+1+1768)
1 9 3 . 1 . 6 . 0 4 1 3 9 ( 6 4 + 1 + 6 4 + 1 0 )
在这个例子中,有两条到网络1 9 3 . 1 . 6 . 0的路由。一条路径含更少的跳数,但却有高得多
的耗费,这是因为路由器2和6之间的低速串行链路的存在。另一条路由有更多的跳数,但却
有少得多的总耗费。在这种情况下, O S P F会抛弃高耗费的路由而使用低耗费的路由。如果这
第1 3章开放式最短路径优先使用143
开销= 6 4 开销= 6 4 开销= 6 4
开销= 1 0
56 Kbps
开销= 1 7 6 8
开销= 1
F D D I环
路由器3
以太网以太网以太网
以太网
以太网
路由器4 路由器5
T- 1 路由器1
T- 1 T- 1
1 9 3 . 1 . 1 . 0 1 9 3 . 1 . 2 . 0
1 9 3 . 1 . 3 . 0 1 9 3 . 1 . 4 . 0 1 9 3 . 1 . 5 . 0 1 9 3 . 1 . 6 . 0
路由器2
路由器6
区2
区1
区0
图13-12 路由器3的最短路径树
根:路由器3
开销= 6 4
开销= 6 4
开销= 6 4
开销= 1
1 9 3 . 1 . 1 . 0
1 9 3 . 1 . 2 . 0 1 9 3 . 1 . 4 . 0
1 9 3 . 1 . 5 . 0 1 9 3 . 1 . 6 . 0
开销= 1 7 6 8
开销= 1 0
下载
两条冗余的路由具有相同的总耗费, O S P F会
在路由表中维护两条独立的表项并尽可能平均
地在二者之间均衡负载。
2. 路由器2的视图
网络中每个路由器的视图是不一样的。虽
然考查每个路由器的视图有点枯燥,但是举一
个例子来看一下不同路由器对最短路径树的影
响还是有必要的。图1 3 - 1 3显示的是路由器2的
最短路径树。
表1 3 - 3汇总了从路由器2到所有已知目的地的路由耗费。
表13-3 从路由器2到已知目的地的耗费
目的地跳数积累耗费
1 9 3 . 1 . 3 . 0 — 0
1 9 3 . 1 . 5 . 0 1 6 4
1 9 3 . 1 . 6 . 0 1 1 768
1 9 3 . 1 . 6 . 0 2 7 4 ( 6 4 + 1 0 )
1 9 3 . 1 . 1 . 0 1 1
1 9 3 . 1 . 3 . 0 2 6 5 ( 1 + 6 4 )
1 9 3 . 1 . 4 . 0 2 1 ( 1 + 6 4 )
比较表1 3 - 2和表1 3 - 3,显示出在一个网络中源和目的之间的积累距离随起点不同而不同。
视图好像可以说明任何问题。这就是为什么O S P F路由器使用从其他路由器处通过L S A更新得
到的数据来构造自己的网络视图,而不直接使用那些信息来更新路由表的原因。
13.5 小结
O S P F是功能最强大、特点最丰富的开放式路由协议之一。它的复杂性也是其弱点来源,
因为设计、建造和操作一个O S P F互联网络需要比使用几乎每一种其他路由协议更多的专业知
识和精力。采用路由耗费的缺省值可以极大地简化O S P F网络设计。随着关于O S P F及网络操
作特点知识的增加,用户能够慢慢地通过控制O S P F变量来优化网络性能。
必须小心地设计区和网络拓扑。做得好, O S P F会使网络用户得到优异的性能和快速的收
敛速度。在第1 4章中会讨论另一种特殊的路由协议。B G P用于特大型网络如I n t e r n e t的核心。
144第四第四部分IP 互联
下载
图13-13 路由器2的最短路径树
根:路由器2
开销= 1
开销= 6 4
开销= 6 4
开销= 6 4
开销= 1 7 6 8
开销= 1 0
1 9 3 . 1 . 3 . 0 1 9 3 . 1 . 4 . 0
1 9 3 . 1 . 1 . 0 1 9 3 . 1 . 6 . 0
1 9 3 . 1 . 5 . 0 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值