路由破环显神威

在上一期问鼎OSPF中,我们介绍了OSPF特殊区域的设立,以及这些特殊区域中可以使用的LSA。从前几期的介绍中,我们知道,OSPF拥有一个最为人津津乐道的能力,就是能够计算出无环的路由。不管是区域内的路由(Intra-Area Route)还是区域间(Inter-Area Route)路由,在OSPF设计之初就考虑到路由环路的问题,所以OSPF各种区域在处理Type1Type2Type3Type4Type5Type7 LSA时,能够确保路由无环。

当然,在OSPF多实例场景中,也存在一套避免路由环路的方法,也就是OSPF所说的计议。介绍之前,我们先了解两个概念。

1 OSPF多实例

1.1 多实例

BGP/MPLS IP ×××场景中PECE之间需要进行路由传递,就要得到各路由协议的支持。由于传统路由器只有一张路由表,为了不影响原来的路由信息,各路由协议必须扩展其功能才能在BGP/MPLS IP ×××场景中使用。

OSPF对其自身协议进行扩展,创立OSPF ×××多实例。支持在BGP/MPLS IP ×××场景的PECE之间运行,进行路由的学习和发布。在多实例场景中,路由器上会存在多个独立的路由表,之间的路由信息相互隔离。

1.2 Domain ID

我们知道,BGP/MPLS IP ×××本质是通过MPLS骨干网,将本端PECE之间的路由传递到对端PE。这个传递过程不再详细描述,有兴趣的小伙伴可以去搜索第一期华为悦读汇有关BGP/MPLS IP ×××的介绍。这里值得指出的是,PE之间是通过MP-BGP协议传递的路由信息。那这又跟我们这里OSPF多实例有什么关系呢?

从多实例的定义中,PECE之间运行路由协议,相互学习路由。其实这里可以使用的路由协议有很多,诸如静态路由、RIPOSPFBGP等协议。在OSPF多实例场景中,PEOSPF路由引入BGP,从而传递到对端PE;当然,对端PE发过来的BGP路由,也会引入OSPF中。这样,在两端的PE设备上,分别存在一个OSPF区域,Domain ID则用于区分这两个区域是否属于同一个OSPF域。如果属于同一个OSPF域,PE则把BGP传来的远端路由通过Type3 OSPF路由发布给CE,否则发布Type5Type7OSPF路由。

这里插播一下: PECE之间运行路由协议虽然有很多,但是最常用的还是EGBP。那么为什么还要有OSPF ×××多实例呢?也许是因为其他路由协议都支持了,OSPF不能不支持的心理在作祟;也许是网络发展进程中,PECE已经习惯使用OSPF了吧。对这一点感兴趣的小伙伴不妨跟帖回复你认为的原因,可能有意想不到的惊喜哟!

2 巧破OSPF多实例路由环路

showp_w_picpath-10150663-10132081-708a2a73e2a7

1 OSPF多实例典型组网

上图是典型的OSPF多实例组网,从前面的原理我们知道,PE1通过BGPPE2收到关于CE2OSPF路由,将这些路由的产生者的地址修改成自己,然后发布相关的Type3Type5Type7OSPF路由给CE1CE1再向其他区域发布这些路由时,会将PE1作为ASBR,这样就能实现跨越MPLS骨干网的两个私网之间进行路由互通了。

2.1 遇到问题

路由协议最怕的就是产生路由环路。不过OSPF天赋异禀,为保证区域间传递的路由不会产生环路而制定了规则:

1. 所有的非0区域必须与骨干区域直接相连,区域间路由需经由骨干区域中转。

2. 使用SPF算法。