OSPF 是 Open Shortest Path First(即“开放最短路由优先协议”)的缩写。它是 IETF 组织开发的一个基于链路状态的自治系统内部路由协议。在IP 网络上,它通过收集和传递自治系统的链路状态来动态地发现并传播路由。
上图中 RTA 通过 PPP 协议与另一台路由器RTB直接相连,通过一个X.25 网络与 RTC 和 RTD 相连,并且 RTA 连接着一个局域网。RTA 通过如下的一条 LSA(链路状态广播)来描述周边网络的拓扑结构。
连接数目 = 3 ;本路由器一共有三个连接
/* 对X.25网络的描述*/
连接标识 = 30.0.0.3 ;本网段中某台路由器的IP地址.
连接数据 = 30.0.0.1 ;RTA连接到本网段的接口的IP地址
连接类型 = 2 ;连接的类型是一个转换网段(网段中还有其它路由器)
连接花费 = 1 ;从30.0.0.1接口发送报文的花费值
/* 对Ethernet的描述*/
连接标识 = 10.0.0.0 ;本网段的地址
连接数据 = 0xff000000 ;本网段的掩码
连接类型 = 3 ;连接的类型是一个末端网段(网段中没有其它路由器)
连接花费 = 2 ;从10.0.0.1接口发送报文的花费值
/* 对ppp的描述*/
连接标识= 20.0.0.2 ;邻接点RTB的路由器标识(router id)
连接数据= 20.0.0.2 ;邻接点RTB的IP地址
连接类型= 1;连接的类型是另一台路由器
连接花费= 8;从20.0.0.1接口发送报文的花费值
上图中描述了通过 OSPF 协议计算路由的过程。
(一)由四台路由器组成的网络,连线旁边的数字表示从一台路由器到另一台路由器所需要的花费。为简化问题,我们假定两台路由器相互之间发送报文所需花费是相同的。
(二)每台路由器都根据自己周围的网络拓扑结构生成一条 LSA(链路状态广播),并通过相互之间发送协议报文将这条 LSA 发送给网络中其它的所有路由器。这样每台路由器都收到了其它路由器的 LSA,所有的 LSA 放在一起称作 LSDB(链路状态数据库)。显然,4 台路由器的 LSDB 都是相同的。
(三)由于一条 LSA 是对一台路由器周围网络拓扑结构的描述,那么LSDB 则是对整个网络的拓扑结构的描述。路由器很容易将 LSDB 转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。显然,4 台路由器得到的是一张完全相同的图。
(四)接下来每台路由器在图中以自己为根节点,使用相应的算法计算出一棵最小生成树,由这棵树得到了到网络中各个节点的路由表。显然,4 台路由器各自得到的路由表是不同的。
这样每台路由器都计算出了到其它路由器的路由。
OSPF 协议允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而减少了占用网络的带宽。
本图中在 AS100 内运行 OSPF 协议,自治系统被划分为三个不同的区域,分别用不同的区域号(AREA ID)来标识。其中区域号为 0 的区域被称作“骨干区域”。
注意:
如果自治系统被划分成一个以上的区域,则必须有一个区域是骨干区域,并且保证其它区域与骨干区域直接相连或逻辑上相连,且骨干区域自身也必须是连通的。
本例中 RTA 在两个接口上配置 OSPF 协议,以太网配置为区域 1,串口 S0 配置成区域 0。
命令 含义
router ospf enable 启动 OSPF 协议
ip ospf enable area 0 指定本接口运行的区域号