OSPF区域间路由
由于ABR同时连接着非骨干区域和骨干区域,因此它分别为这些区域维护着LSDB并且计算出到达直连区域的区域内部路由。ABR将一个区域内的一类和二类LSA转化成三类LSA,然后发布到邻居区域,以便向该区域通告到达其他区域的区域间路由。
Network-Summary-LSA
Network-summary-LSA,即Type3 LSA,由ABR发布,用来描述区域间的路由信息。ABR将Network-summary-LSA发布到一个区域,通告该区域到其他区域的目的地址。实际上,ABR是将区域内部的Type1和Type2的信息收集起来并汇总之后扩散出去,这就是Summary的含义。
Network-summary-LSA包含的信息如下图所示:
Network-Summary-LSA中主要包括以下内容:
Ls id:目的网段地址。
Adv rtr:ABR的Router ID。
Net mask:目的网段的网络掩码。
Metric:ABR到达目的网段的开销值。
区域间路由计算
区域间路由计算规则如下:
根据三类LSA中的Adv rtr字段,判断出ABR。
根据Ls id、Net mask、Metric字段获得ABR到达目的网络号/掩码、开销。
如果多个ABR产生了指向相同目的网段的三类LSA,则根节点将根据本路由器到达目的网段的累计开销进行比较,最终生成最小开销路由。
如果根节点到达目的网段的累计开销值相同,则产生等价负载的路由。
如下图所示,以Area 1中RTD上的192.168.1.0/24的网络为例,其对应的一类LSA在Area 1中同步;作为Area 1和Area 0之间ABR的RTB负责将192.168.1.0/24的一类LSA转换成三类LSA并将此三类LSA发送到Area 0。同理,RTC也会将192.168.2.0/24的三类LSA发布到Area0。
Area 0中RTA收到192.168.1.0/24和192.168.2.0/24的三类LSA中,Adv rtr分别是RTB(2.2.2.2)和RTC(3.3.3.3)。其中RTB产生的三类LSA中,网络号/掩码是192.168.1.0/24,开销为1,RTC产生的三类LSA中,网络号/掩码是192.168.2.0/24,开销为1。
通过计算,RTA到达192.168.1.0/24下一跳是RTB,开销是2(RTA至RTB的开销值1+Type3 LSA的开销值1);RTA到达192.168.2.0/24下一跳是RTC,开销是2(RTA至RTC的开销值1+Type3 LSA的开销值1)。
作为Area 0和Area 2之间ABR的RTC,又重新生成一份192.168.1.0/24的三类LSA发送到Area 2中,同理,RTB也会生成一份192.168.2.0/24的三类LSA发送到Area 1中。
通过计算,RTD到达192.168.2.0/24下一跳是RTB,开销是4(RTD至RTB的开销值1+Type3 LSA的开销值3);RTE到达192.168.1.0/24下一跳是RTC,开销是4(RTE至RTC的开销值1+Type3 LSA的开销值3)。
区域间路由防环机制
如下图所示,RTB将Area1中的一类、二类LSA转换成三类LSA,发布到区域0中。RTC重新生成有关192.168.1.0/24网络的三类LSA并发布到Area 2中。同理,RTE也将有关192.168.1.0/24网络的三类LSA发布到Area 3中。RTD又将192.168.1.0/24网络的三类LSA发布到Area 1中,此时会形成了路由环路。
为防止区域间的环路OSPF定义了骨干区域和非骨干区域和三类LSA的传递规则如下:
骨干区域只有一个,骨干区域ID固定为0。
所有非骨干区域均只能和骨干区域相连且非骨干区域之间的通信都要通过骨干区域中转。
ABR设备至少有一个接口属于骨干区域。从骨干区域传来的三类LSA不再传回骨干区域。
Virtual Link
新建网络按照区域间的防环规则进行部署,可以避免区域间环路问题。但是部分网络可能因早期规划问题,存在区域间的连接关系违背了骨干区域和非骨干区域的规则的可能,此时该区域间路由计算就会出现问题。
如下图所示,网络中Area1与Area0直接相连,RTB可以将到达Area1内各个网段的OSPF区域间路由通告给Area0、将到达Area0内各个网段的OSPF区域间路由通告给Area1。如此一来这两个区域的设备之间可以正常通信。
但是Area2并没有与Area0直接相连,因此RTC并非实际意义上的ABR,它无法向Area1中注入用于描述到达Area2内网段路由的Type-3 LSA,当然也无法向Area2中注入用于描述到达Area0及Area1内网段路由的Type-3 LSA,这样,Area2就形成了一座孤岛。
此时,可以考虑一种临时的解决方案,那就是OSPF虚链路(Virtual Link)。Virtual Link是一种逻辑的链路,并非一条真实的链路,通过搭建一条Virtual Link,可以将原本没有与骨干区域直接相连的区域和后者连接起来。
如下图所示,在RTB和RTC之间建立一条穿越Area1的Virtual Link,如此一来,RTC就可以通过这条Virtual Link与骨干区域相连,当然,Area2也就与骨干区域相连了,现在区域间的路由就可以由RTC来完成传递,Area2的孤岛问题也就解决了。
区域间路由汇总
在大规模部署OSPF网络时,可能会出现由于OSPF路由表规模过大而降低路由查找速度的现象,为了解决这个问题,可以配置路由汇总,减小路由表的规模。
路由汇总是指将多条连续的IP前缀汇总成一条路由前缀。如果被汇总的IP地址范围内的某条链路频繁Up和Down,该变化并不会通告给被汇总的IP地址范围外的设备。因此,路由汇总可以避免网络中的路由振荡,在一定程度上提高了网络的稳定性。
ABR向其它区域发送路由信息时,以网段为单位生成三类LSA。如果该区域中存在一些连续的网段,可以通过命令将这些连续的网段汇总成一个网段。这样ABR只发送一条汇总后的三类LSA,所有属于命令指定的汇总网段范围的LSA将不会再被单独发送出去。
如下图所示,Area 1中存在8个连续网段,汇总前RTB将产生8条三类LSA。在RTB上配置汇总后,RTB仅产生1条三类LSA并泛洪到Area 0。
