OSPF


OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。与RIP相对,OSPF是链路状态路由协议,而RIP是距离向量路由协议。

目录

[隐藏 ]
1 OSPF起源
2 区
3 数据结构
4 数据库描述报文
5 路由更新机制
6 参考资料

ospf - OSPF起源

ospf ospf

IETF—为了满足建造越来越大基于I P网络的需要,形成了一个工作组,专门用于开发开放式的、链路-状态路由协议,以便用在大型、异构的I P网络中。新的路由协议以已经取得一些成功的一系列私人的、和生产商相关的、最短路径优先( SPF )路由协议为基础,SPF在市场上广泛使用。包括OSPF在内,所有的SPF路由协议基于一个数学算法—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中。

ospf ospf
O S P F版本2的最新版体现在RFC 2328中。最新版只会和由RFC 2138、1 5 8 3和1 2 4 7所规范的版本进行互操作。

链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表

OSPF路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一个路由域内。在这里,路由域是指一个自治系统(Autonomous System),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。

作为一种链路状态的路由协议,OSPF将链路状态广播数据包LSA(Link State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。

OSPF包头

0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   version     |    type      |        packet length         |
     +---------------+---------------+-------------------------------+
     |                          router ID                            |
     +---------------------------------------------------------------+
     |                           area ID                             |
     +-------------------------------+-------------------------------+
     |           checksum            |      authentication type      |
     +-------------------------------+-------------------------------+
     |                       authentication                          |
     +---------------------------------------------------------------+
     |                       authentication                          |
     +---------------------------------------------------------------+

ospf - 区

OSPF快速收敛的一个关键原因是它使用了区。记住,IETF使用OSPF想达到的两个主要目标是:
改善网络的可扩展性。

快速收敛。

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

OSPF网络中能支持的区数量受限于区I D的大小。这个域是3 2位的二进制数。因此, 3 2位二进制数的理论最大值应是每一位置为1,其对应的十进制数为4 294 967 295。显然,能支持的实际最大数比这个理论上的最大数小得多。实际上,网络设计的好坏将决定能在其中支持的最大区数。

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

具有多个接口的路由器可以属于两个或多个区。这样的路由器成为区边界路由器。也就是说,它们把自身的区号与骨干互联起来。骨干路由器是至少有一个接口定义为属于区0的路由器。一个区边界路由器也可能是一个骨干路由器。任何一个与区0互联的
区边界路由器也将成为骨干路由器。
内部路由器使其所有定义接口属于同一区,但这个区不是0区。使用这三种基本的路由器,可以建造高效且可扩展的O S P F网络。

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

区内路由

区间路由

它们的名字含义相当明显。区内路由是自含的,只限于一个区内部的路由器之间的路由。区间路由需要在不同的区之间交换数据。所有的区间路由必须经过区0传输,不允许非0区直接和其他区通信。这个层次限制确保了O S P F具有良好的可扩展性,而不会导致链路和路由器的混乱。

ospf ospf

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

ospf ospf
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的作用非常类似于一个区边界路由器。显然,二者的区别是它们组成了自治系统之间的边界而不是一个自治系统或网络内的区边界。

ospf - 数据结构

ospf 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节点所需的用于决定报文是否应接收并作进一步处理,还是应丢弃的所有信息。在传输过程中受损的(校验和指出这一点)及没有通过认证的报文会被丢弃。

O S P F使用5种不同的报文类型。每种类型用于支持不同的,专门的网络功能。这5种类型是:

HELLO报文(类型1 )。

数据库描述报文(类型2 )。

链路-状态请求报文(类型3 )。

链路-状态更新报文(类型4 )。

链路-状态应答报文(类型5 )。

这5种报文类型有时用编号指明,而不是用名字。所以, O S P F类型5报文实际上是指链路-状态应答报文。所有这些报文类型使用O S P F头。

ospf - 数据库描述报文

ospf ospf
当O S P F中的两个路由器初始化连接时要交换数据库描述( D D )报文。这个报文类型用于描述,而非实际地传送O S P F路由器的链路-状态数据库内容。由于数据库的内容可能相当长,所以可能需要多个数据库描述报文来描述整个数据库。实际上,保留了一个域用于标识数据库描述报文序列。接收方对报文的重新排序使其能够真实地复制数据库描述报文。

D D交换过程按询问/应答方式进行,在这个过程中,一个路由器作为主路由器。另一个路由器作为从路由器,主路由器向从路由器发送它的路由表内容。显然,主从之间的关系会因每个D D交换的不同而不同。网络中的所有路由器会在不同时刻作用,在这个过程中既可能是
主又可能是从。

ospf - 路由更新机制

ospf ospf
O S P F具有如此可扩展性的一个原因是它的路由更新机制。O S P F使用L S A在O S P F 节点之中共享路由信息。这些广播信息会在整个区中进行传播但不会超越一个区。因此,区中的每一个路由器都知道本区的 拓扑。然而,一个区的拓扑对区外是不可知的。
考虑到实际上有四种不同类型的O S P F路由器—区内路由器、区边界路由器、自治系统边界路由器、骨干路由器—很明显每种路由器类型有不同的对等实体集,路由器与这些对等实体交换 L S A

内部区路由器

内部的区路由器必须直接和区中的其他路由器交换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使用的“邻居至邻居”的收敛方法完全不同。这样的结果是区内的路由器几乎同时收敛到新拓扑结构。

ospf - 参考资料

中国协议分析网:http://www.cnpaf.net/

《现代交换原理与通信网技术》—北京邮电大学出版社


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值