OSPF 的 “选路算法”:华为 SPF 计算,人话版讲清来龙去脉
OSPF区域内路由计算:SPF计算
1、在一类LSA和二类LSA中,包括了拓扑信息和路由信息
Phase 1:根据一类LSA中的P2P、TransNet、2类LSA,构建SPF树
Phase 2:根据一类LSA中的stub、二类LSA,计算最优路由


左边是原拓扑,右边是最终完成计算的拓扑图。会发现在原拓扑当中,整一个拓扑是一个环路的状态,然后路由是通过SPF计算来避免环路的,我们以R1为根来一步步分析看是如何避免的。

1、首先呢R1最先查看自己的一类LSA,查看后发现我有三条Link ID,我们最开始是要绘制树干的嘛,那么不能拿叶子来画树干(stubNet),所以查看非StubNnet类型的link,会发现一条是P2P链路的一条是TransNet的链路(伪节点),然后将这两条Link ID加入到候选列表当中并记录开销值
2、然后发现去往12.2的开销值比去往3.3的要小,那么会将这条路径加入到最短路径树上,并且删除掉该Link ID,那现在候选列表中只有3.3这条,然后再进行比对

3、刚才是从一类LSA中对比出来的最短路径,并且我们选举出来的下一个路径是去往DR的路径,那么就要继续查看DR产生的二类LSA,发现10.0.1.1这条路由就是R1本身的路由就会直接忽略该节点,那么就将2.2这条路由添加到候选列表中
4、然后与3.3进行比对,由于呢R1去往伪节点(DR)开销值为1+0也比3.3的小,所以说将2.2添加到树干上,并且从候选列表中删除,这样就又剩下3.3了

5、刚才我们从R1为根通过一类和二类LSA对比分析出了下一个树干的最短路径,那么现在要到R2根据产生的一类LSA进行分析,发现StubNet肯定是先忽略的,那么10.0.12.2这个地址就是R1和R2的共有网段所以说也会忽略,就将235.2和4.4加入候选列表对比
6、对比发现235.2的开销值为从R1到R2为1,到伪节点为1也就是2,发现他是最小的,就把他添加到最短路径树上,从候选列表中删除,那么就只剩下3.3和4.4的

7、那么继续查询DR产生的2类LSA(也就是从235.2接口上去看)发现连接着3.3和5.5两个网段信息添加到候选列表当中
8、3.3对比发现出现一条最短路径了那么这两条3.3都从候选列表中删除,并且将下一跳为235.2的3.3路由添加到最短路径树,然后3.3和5.5做对比发现下一跳相同,开销值相同,就可以判断出是在同一条共享链路上的这个伪节点同时连接着两个网段,现在列表当中就只剩下4.4一条信息

9、R2对比出最短路径树后,就到刚刚选举出的3.3查看一类LSA发现所有邻居都已经在SPF树中,拓扑不再变化

10、接着继续查看R5的一类LSA发现,也有一条4.4的邻居,然后放入候选列表中,对比发现从5.5去往4.4的开销值比从2.2的大,所以说就选择根节点为2.2的LSA,至此候选列表清空

11、最后再查询R4的一类LSA发现,所以邻居都在SPF树干中,并且已经计算完全部的LSA,SPF树构建完成
注意!!!切记SPF算法,就只能以一台路由为根来进行路径绘制,不同的树根不同,就像一个树连根都不一样了那还能叫一颗树嘛,所以说以哪一台路由器为根就绘制那一颗树,不同的路由器绘制的都是不一样SPF路径树
思考:R1可不可以说让R2为根来分析SPF最短路径树?
可以,但是有没有必要的问题,是否需要用到这样子。就好比女人是有生育的能力的,但是至于要不要生那完全看自己的意愿,所以说可以反映出,链路状态协议是很高级的,我们的现有网络架构是很高级的
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)