OSPF 路由计算
OSPF 协议通过构建网络图、计算最短路径树(SPF)和更新路由表三个步骤来实现路由计算。
1. 网络图构建:
-
路由器根据链路状态数据库(LSDB)中的链路状态通告(LSA)构建网络图。这个图包括所有网络中的 “点”(路由器、共享网段)和 “边”(链路)。
-
网络图的构建主要使用 LSA 类型 1(Point-to-Point)、LSA 类型 2(TransNet)和 LSA 类型 4(Vlink)来描述网络拓扑。
-
所有路由器的 LSDB 内容相同,因此构建的网络图也相同,但每台路由器都以自己为起点构建图。
2. 最短路径树(SPF)计算:
- 路由器以自己为树根,使用 Dijkstra 算法对图进行 SPF 计算,构建一棵从树根到图中每个节点的最短成本路径树。
- 这棵树确保从树根到任何其他节点的成本最小。
3. 路由表更新:
-
在 SPF 树的节点上添加网络信息,并计算从树根到这些网络的成本及下一跳。
-
树根到网络的路由成本计算为:树根到网络节点的距离 + 网络节点到叶子节点的成本。
-
叶子节点可以是 LSA 类型 1 中的 StubNet、LSA 类型 2 中的网络、LSA 类型 3 的网络、LSA 类型 5/7 的网络。
-
网络类型不同,叶子节点挂载的位置也不同:Stub 网络挂在路由器节点上,LSA2 中的网络挂在虚节点上,LSA3 的网络挂在 ABR 节点上,LSA7 挂在 ASBR 节点上,而 LSA5 可能挂在 ASBR 或 ABR 上。
OSPF 优化方法
为了提高效率和降低计算负荷,特别是在大型网络中,OSPF 采用了两种优化方法。
iSPF(增量 SPF 计算):
-
目的:iSPF 的目标是优化网络中的 SPF 计算过程,通过仅处理网络拓扑的变化部分来提高效率。
-
实现方式:iSPF 通过重新组织链路状态信息,形成一个直接反映网络拓扑的 “图”。在这个图中,最短路径树被保存,以便快速响应网络变化。
-
优点:这种方法减少了不必要的全网络计算,从而提高了路由器的计算性能和降低了 CPU 负荷。
PRC(部分路由计算):
-
目的:PRC 是在 iSPF 计算出的最短路径树基础上,进一步计算叶子节点代表的路由。
-
实现方式:当路由信息发生变化时,PRC 直接识别出变化的位置,并仅对受影响的路由进行计算和更新,避免了对整个网络的全面重新计算。
-
优点:PRC 确保了路由计算的精确性和及时性,同时减少了计算资源的消耗。
这两种方法的共同作用提高了网络的收敛速度,确保了 OSPF 在大型网络中的高效运行,同时保持了快速的收敛和低资源消耗。通过这种方式,OSPF 能够适应网络的动态变化,同时优化了网络的性能和稳定性。
via: huawei
OSPF 区域间路由计算规则与实验
格洛米爱学习于 2020-12-23 00:31:49 发布
OSPF 区域间路由的计算过程:
主要通过 3 类 LSA 进行计算,3 类 LSA 内容如下:

Network-Summary-LSA(三类 LSA)中主要包括以下内容:
Ls id:目的网段地址
Adv rtr:ABR 的 Router ID
Net mask:目的网段的网络掩码
Metric:ABR 到达目的网段的开销值
实验,如下图所示:

R4 在区域 1 中,R1 在区域 0 中,R2 作为 ABR。当 R4 收到了三类 LSA,查具体的内容:

当 R4 得到了 R2 发送的 3 类 LSA,可以看一下里面有什么:有与 R1 相连两个网段的网络号,掩码,MED 值。
由于三类 LSA 本来就是路由信息,可以作为叶子信息直接挂在 ABR(R2)上,具体的 cost 值等于 ABR 上三类 LSA 携带的 cost 值加上 R4 到 R2 使用一类和二类 LSA 计算的 COST 值。
同时,3 类 LSA 路由的最初下一跳为 ARB(R2),通过区域内路由计算如果到达 ARB,在 R4 上迭代出直连的下一跳。
所以在 OSPF 在区域中是链路状态计算,区域间其实更像距离矢量的路由协议。因此,区域间的路由可能会出现环路,所以三类 LSA 的计算是需要遵循一点的规则的,也被称为水平分割原理(四类 LSA 同样遵守)。
三类 LSA 的负载分担:

ABR R2 上会向 Area 0 产生 cost=11 的 LSA3。
ABR R3 上回向 Area 0 产生 cost=21 的 LSA3。
R1 收到后加上自己接口的 Cost,从 R3\R4 去往 100.1.1.0 开销都是 31,所以在 R1 看到是负载均衡的。
ABR 的水平分割原理:
ABR, Area Border Router,区域边界路由器,从定义上,至少有一个接口连接 Area0,这样的区域间路由器被称为 ABR。这样做也是未了防止环路,如下图:

为了避免上述环路,限定 LSA3 路由的流动规则:不允许非 ABR 产生 LSA3。所以,R3、R4、R5 是非 ABR,无法在区域间相互传递路由。Area3、Area4 无法学到其他区域 Area0、Area 1 的路由,只能把 Area3 和 Area4 直接连接到 Area0 才可以。基于这样的 LSA3 的设计,路由只能通过图中的 R2 和 R6 在区域间传递。
处于区域边界路由器可能有多种情形:
-
处于多个非骨干区域之间,比如处于 Area 1 和 Area 2 之间,比如下图中的 R5,并不是 ABR。
-
处于骨干区域和非骨干区域之间,但在骨干区域里没有邻居,比如 ABR 在 Area0 有接口,但没有邻居,如图中的 AR3,并不是真正的 ABR。
-
处于骨干区域和非骨干区域之间,且在骨干区域里有邻居,这才是真正意义上的 ABR,比如图中的 AR4。
- 通过 ABR1 进入非骨干区域的 LSA3 路 由,若 ABR2 在骨干区域有邻居,则该 LSA3 路由不进入 ABR2 路由表;
- 若 ABR2 在骨干区域没有邻居,仅有一个网络出现在骨干区域,则 ABR1 通告的 LSA3 路由会进入 ABR2 路由表;
- 没有出现在 ABR 路由表的 LSA3 路由是不会通告到其它区域的。

ABR 的定义及作用(RFC3509):
定义:ABR 处于区域边界间,限制 LSA 泛洪的范围。
作用:为本区域通告描述其他区域的网络,执行区域间路由通告、过滤、聚合等。
水平分割的规则:
-
ABR1 和 ABR2 是骨干区域 Area 0 和普通区域 Area 1 间的两台 ABR,通过 ABR1 进入普通区域的 LSA3 路由,若 ABR2 在 Area0 有 OSPF 邻居,则该 LSA3 路由不进入 ABR2 的路由表 (即不会通过 Area1 再通告进入 Area0,ABR2 有该路由也只能通过 Area0 的 LSA1 或 LSA2 学到)。
-
若 ABR2 在骨干区域 Area 0 没有邻居,仅有一个网络出现在骨干区域,则 ABR1 所通告的 LSA3 可以进入 ABR2 的路由表。(因为 ARB 不是真正意义上的 ABR)
-
没有出现在 ABR 路由表的路由是不会通告给其他区域的,这是边界的矢量特性。
上述规则是为了避免区域间的环路(经过一个 ABR 进入普通区域的三类 LSA 再经过其他 ABR 进入其他区域),这就是区域间的水平分割规则。上述规则适用于 LSA3,LSA4,但不适用 LSA5。
在上图中,按照水平分割的规则,进行路由是否接收的判断:
-
AR1 的 10.1.2.0/24 路由是否出现在 AR3 里?
会,根据规则 2,10.1.2.0/24 可以出现在 AR3 里,因为 AR2 算不上真正的 ABR。
-
AR2 的 10.1.3.0/24 路由是否出现在 AR2 和 AR4 里?
都不会,根据规则 1,AR4 在骨干区域 Area 0 里有邻居,只会接受骨干区域的 LSA3,不会收非骨干区域 AR5 发的经过非骨干区域访问骨干区域的 LSA3 10.1.3.0/24 路由。
AR2 里也没有该路由,根据规则 3 的矢量特性,AR4 没有该路由,作为 ABR 是不会通告给其他区域的。
-
R5 路由器表中能否有对有 10.1.2.0/24 的路由条目?
AR5 不是真正的 ABR,因此能收到其他区域的路由,但不会向其他区域通告路由。
来源:
-
OSPF 区域间路由计算规则与实验 - 优快云 博客 格洛米爱学习于 2020-12-23 00:31:49 发布
https://blog.youkuaiyun.com/tushanpeipei/article/details/111569299
551

被折叠的 条评论
为什么被折叠?



