一、OSPF计算区域内路由
1、 OPSF在区域内会产生两类LSA:
1) Router LSA ;2) Network LSA
形成最短路径树:
第一步:仅考虑路由器和传输网络之间的连接。通过 Dijkstra 算 法,根据链路状态数据库的子集形成树;
第二步:考虑末节网络连接, 作为叶子加入树。
区域内部OSPF对网络是通过Router LSA ,Network LSA来描述网络 的,最终路由器收到LSA构建出LSDB。
2、 LSDB通过描述一个有向线段图来描述网络拓扑结构,该有向图的端点有 三种类型:
路由器节点,Stub网段和Transit网段。
Router LSA使用Link ID,Data,Type和Metric描述一条链路类型有四种
Stub网段表示该网段只有数据入口,例如一个Loopback接口就是一个 Stub网段。
Cost表示从一个端点到另一个端点的开销,该参数可以在OSPF接口上配 置,表示数据离开该接口(出接口)的开销。
Transit网段有能力转发既不是本网段产生的,也不以本网段做为目的 地的数据。
有至少两台路由器的广播型网段或NBMA网段就是一种Transit网段。 从路由器到所连Transit网段的开销值就是连接到这个网段的接口所配 置的开销值。 从一个Transit网段到连接到这个网段的路由器的开销为0。(称为伪节 点)
在描述点到点接口的Router-LSA中:
- 通告一个到邻居路由器的点到点链接,Link ID设置为对端的Router ID,Data设置为本地接口的IP地址;
- 通告一个到该点到点网段的Stub连接,Link ID设置为该点到点网段 的网络号,Data设置为该点到点网段的网络掩码;
- 上述两个连接的Cost值均为该点到点接口上的Cost值。
LSDB描述两接口处于不同网段的点到点网段的规则如下:
两台路由器经由两条有向线段直接相连,每个方向一条。 两个接口的网段被表示成Stub网段。 每个路由器通告一个Stub连接到该路由器所连的网段。
在描述广播型或NBMA型接口的Router-LSA中:
- 如果接口状态是Waiting,或者该网段上只有一个运行OSPF的路由 器,或者该网段上没有DR,则通告一个通往该网段的Stub链接,Link ID设置为该网段的IP网络号,Link Data设置为该网段的网络掩码; 其他情况下,通告一个通往该网段的Transit连接,Link ID设置为DR的 接口IP地址,Link Data设置为本地接口的IP地址。
- 连接的开销值为接口的开销。
在描述广播型网段或者NBMA网段的Network-LSA中:
Link State ID设置为DR的接口IP地址。 Net mask设置为该网段的网络掩码。 Link State ID和Net mask做与运算,即可得出该网段的IP网络号。 在该LSA中,还包含一个连接到该网段的路由器列表。 从一个Transit网段到所连接的路由器的连接没有开销。
3、计算过程
1)根据上文描述上图拓扑在LSA传递完毕后生成有向图
2)接下来计算分为俩个阶段
第一阶段:计算Transit节点,忽略Stub节点,生成一个最短路径树
第二阶段:只计算Stub节点,将Stub网段挂到最短路径树上去
3)计算过程中首先初始化最短路径树,RTA将自己做为根节点添加到最短 路径树上
4) RTA将自己添加到最短路径树上之后,检查自己生成的Router-LSA,对 于该LSA中所描述的每一个连接,如果不是一个Stub连接,就把该连接 添加到候选列表中,端点ID为Link ID,到根端点的开销为LSA中描述的 Metric值。
5)当有新节点添加到最短路径树上的时候,则检查LS ID为新节点的link-id ID的LSA。
6)如果LSA中所描述的连接的Link ID在最短路径树上已经存在,则忽略该 连接。
7)到根端点的开销设置为此连接的Metric值与父端点到根端点的开销之和。检查LS ID为最新添加节点的端点ID的LSA。如果在候选列表中出现两个端点ID一样但是到根端点的开销不一样的端 点,则删除到根端点的开销大的端点。
8)检查LS ID为最新添加节点的端点ID的LSA
9)将候选列表中到根端点的开销最小的端点移动到最短路径树上
10)检查LS ID为最新添加节点的端点ID的LSA
如果在此时候选列表为空,则计算最短路径树的第一阶段结束。
11)检查每个路由器端点的Router-LSA,计算Stub网段。
二、OSPF区域间防环
- OSPF要求所有的非0区域必须与骨干区域直接相连,区域间路由需经由骨干区域中转。
- ABR只能够将其所连接的区域的区域内部路由注入到Area0,但是可以将区域内部路由及 区域间的路由注入到非0常规区域。
- ABR不会将描述一个Area内部的路由信息再注入回该区域中。
三、OSPF区域外防环
当一台OSPF路由器将外部路由引入OSPF域后,它就成为了一台 ASBR,被引入的外部路由以Type-5 LSA在整个OSPF域内泛洪。一台 路由器使用Type-5 LSA计算出路由的前提是两个,其一是要收到 Type-5 LSA,其二是要知道产生这个Type-5 LSA的ASBR在哪里。与 ASBR接入同一个区域的路由器能够根据该区域内泛洪的Type-1 LSA 及Type-2 LSA计算出到达该ASBR的最短路径,从而计算出外部路 由。而其他区域的路由器就没有这么幸运了,因为ASBR产生的 Type-1 LSA只能在其所在的区域内泛洪,所以才需要Type-4 LSA。 因此其他区域的路由器在获取Type-4 LSA后便能计算出到达ASBR的 最短路径,进而利用该ASBR产生的Type-5 LSA计算出外部路 由。Type-5 LSA将会被泛洪到整个OSPF域,表面上看,它本身并不 具有什么防环的能力,但是实际上,它并不需要,因为它可以依赖 Type-1 LSA及Type-4 LSA来实现防环。