OSPF路由协议


楔子

为了加强自己我打算好好玩玩网络。


  • OSPF的基本概念和工作过程

开放式最短路径优先协议(OSFP)是基于开放标准的链路状态路由选择协议,它完成各路由选择协议算法的两大主要功能:路径选择和路径交换。Internet工程任务协会(IETF)于1988年开发了OSPF,其最近版本是OSPF版本2,在RFC 2328中进行了描述。

  • OSPF路由协议概述

  1. OSPF是内部网关路由协议

在共同管理域下的一组运行相同路由选择协议的路由器的集合为一个自治系统(Autonomous System,AS)。在互联网中,一个自制系统是一个有权决定本系统使用哪种路由协议的单位,它可以是一个企业、一座城市或一个电信运营商。随着网络的发展,上述对AS的定义已经不是十分准确了,网络的发展使得网络之间经常出现网络合并情况,导致同一个自治系统中使用的路由协议也越来越多,所以自治系统的定义应该是在共同管理下的互联网络。

内部网关路由协议(IGP):用于在单一自治系统(Autonomous System,AS)内决策路由。内部网关路由协议包括RIP、OSPF等。

与内部网关路由协议相对应的叫做外部网关路由协议(EGP),外部网关路由协议用于在多个自治系统之间执行路由。BGP协议就是外部网关路由协议。

IGP是用来解决AS内部通信的,而EGP是解决AS间通信的。

  1. OSPF是链路状态路由协议

链路状态路由协议通过与邻居路由器建立邻接关系,互相传递链路状态信息,来了解整个网络的拓扑结构。在链路状态信息中,包括有哪些链路,这些链路与哪个路由器相连,连接的路径成本是多少等信息,因此,在链路状态路由协议收敛后,一台路由器可以了解本区域完整的链路信息。

运行链路状态路由协议的路由器就好像各自“绘制”自己所了解的网段信息,然后通过与邻居路由器建立邻接关系,互相“交流”链路信息,学习整个区域内链路信息,来“绘制”出整个区域内的链路图。在一个区域内的所有路由器都保存着完全相同的链路状态数据库。

名词解释:

  • 邻居路由器:位于同一条物理链路或物理网段上的路由器。

  • 链路状态数据库:也称为拓扑数据库,它包含所有路由器、路由器的链路以及这些链路的状态,还包含所有网路以及到这些网络的所有路径。

  • 邻接关系:当两台运行OSPF协议的邻居路由器的链路状态数据库达到一致(同步)时,它们就是完全邻接的。

  • OSPF的工作过程

运行RIP的路由器只需要保存一张路由器,而使用OSPF路由协议的路由器需要保存三张表。

  • 邻居表:列出每台路由器已经建立邻接关系的全部邻居路由器。

  • 链路状态数据库(LSDB):列出网络中其他路由器的信息,由此显示了全网的网络拓扑。

  • 路由表:列出通过SPF算法计算出的到达每个相连网络的最佳路径。

运行OSPF的路由器试图与邻居路由器建立邻接关系,在邻居之间互相同步链路状态数据库。使用最短路径算法(OSPF依据的算法是Dijkstra算法),从链路状态信息计算得到一个以自己为树根的“最短路径树”。到最后,每一台路由器都将从最短路径树中构建出自己的路由表。OSPF的路由器也仍然是依据路由表进行数据转发的。

名词解释:

  • SPF(Shortest Path Tree):最短路径优先算法。

  • Edsger Wybe Dijkstra(艾兹格迪科斯彻):是Dijkstra最短路径算法的创造者。

  • OSPF的基本概念

  1. OSPF区域

  • OSPF是一种链路状态型的路由协议,不会产生环路问题,因此不需要使用最大跳数等限制来防止环路的产生。

  • OSPF将自治系统分割成多个小的区域,OSPF的路由器只在区域内部学习完整的链路状态信息,而不必了解整个自治系统内部所有的链路状态。

区域0为骨干区域,它用来连接自治系统内部的所有其他区域。用来连接骨干区域和其他区域的路由器叫做区域边界路由器,它了解所连接的两个区域的完整的链路状态信息,并将链路状态信息汇总后发给区域内的其他路由器。这样,减小了路由器保存的链路状态数据库的大小,可以解决路由器内存容量有限的问题。

区域是通过一个32位的区域ID(Area ID)来标识的。

区域ID可以表示成一个十进制的数字,也可以表示成一个点分十进制的数字。在Cisco的路由器中这两种表示方式都可以使用。

区域0(或者区域0.0.0.0)是为骨干区域保留的区域ID号。OSPF的骨干区域(Backbone Area)是一个特殊的OSPF区域,它担负着区域间路由信息传播的重任。

名词解释:

区域:区域ID相同的一组逻辑上的OSPF路由器,区域中的所有路由器的链路状态数据库都相同。在OSPF配置中,区域是分别在各个接口上定义的。

  1. Router ID

因为运行OSPF的路由器要了解每条链路是连接在哪个路由器上的,因此,就需要有一个唯一的标识来标记OSPF网络中的路由器,这个标识称为Router ID

Router ID是在OSPF区域内唯一标识路由器的IP地址。Cisco路由器通过下面的方法得到它们的Router ID。

首先,路由器选取它所有