一、OSPF中的地址汇总配置及介绍

在大型网络中地址汇总有利于减少路由条目,在OSPF中虽然可以通过配置末梢区域来防止某些LSA进入该区域,从而实现在一个非骨干区域里节省资源的目的,但是相对于骨干区域,这些区域节省资源外并没有做其他任何事,同时一个区域内的所有地址仍然会通告到骨干区域中,这种情况就可以通过地址汇总来解决。与末梢区域一样,地址汇总也通过减少泛洪的LSA数量来达到节省资源的目的。另外,还可以通过屏蔽一些网络不稳定的细节来节省资源。

在Cisco路由器上可以执行以下两种类型的地址汇总:

1、区域间路由汇总:就是在区域之间的地址汇总,这种类型的汇总通常是配置在ABR上的。配置命令如下:

Router(config)#router ospf 1
Router(config-router)#net 192.168.10.0 0.0.0.255 area 1            #声明汇总后的网段信息。
Router(config-router)#area 1 range 192.168.10.0 255.255.255.0            #配置地址汇总

(注意:不管哪种汇总类型,必须要先声明一下汇总后的网段信息,再配置地址汇总)

2、外部路由汇总:外部路由汇总允许一组外部地址汇总为一条汇总地址,通过重新分配注入OSPF区域中。这种类型的汇总通常配置在ASBR路由器上的。配置命令如下:

Router(config)#router ospf 1
Router(config-router)#redistribute   rip   subnets                     #注入外部RIP路由协议。
Router(config-router)#summary-address 192.168.10.0 255.255.255.0         #配置地址汇总

二、虚链路相关概念及其配置:
在OSPF区域中骨干区域必须连续,并且其他区域要和骨干区域相连。但是在实际网络中由于网络合并,网络设计不合理等造成了骨干区域不连续或骨干区域没有和骨干区域向连等问题,由于更改OSPF区域需要更改区域内所有路由器的配置,工作量较大,所以这时可以使用虚链路链接没有连接在一起的区域。

虚链路是指一条通过一个非骨干区域连接到骨干区域的链路。虚链路主要应用于以下两种情况:
1、通过一个非骨干区域连接一个区域到骨干区域,示意图如下:
OSPF协议的“地址汇总配置”及“虚链路配置”

2、通过一个非骨干区域连接一个分段的骨干区域两边的部分区域。如下图所示:
OSPF协议的“地址汇总配置”及“虚链路配置”
上图中加入虚链路形成逻辑冗余,以防止由于路由器的实效导致骨干区域被分离成两部分,影响LSA的泛洪。

在这两个示意图中,虚链路和具体的物理链路没有关系,虚链路事实上是一个逻辑通道,数据包可以通过选择最优的路由路径从一端到达另一端。

在配置虚链路的时候,有以下几条相关规则及特点,说明如下:

  • 虚链路必须配置在两台ABR路由器之间。
  • 虚链路所经过的区域必须拥有全部的路由选择信息,这样的区域又称为传送区域。
  • 传送区域不能是一个末梢区域(包括NSSA区域)。
  • 虚链路的稳定性取决于其经过的区域的稳定性。
  • 虚链路有助于提供逻辑冗余。

用于虚链路的ABR路由器之间虽然没有物理的数据链路相连,但是它们可以看作通过它们之间的虚链路逻辑上虚拟连接的邻居。在每一个ABR路由器的路由表中,当发现有到达邻居ABR路由器的路由时,虚链路将转换到完全可操作的点到点接口状态。这条虚链路的开销就是到达它的邻居路由器的路由开销。当接口状态变为点到点状态时,一个邻接关系将通过这条虚链路成功建立。

很显然的是,虚链路的存在增加了OSPF区域的复杂程度,而且让故障排查更加困难,因此应该避免使用虚链路,当有两个或多个OSPF区域要合并时,预先要制定好充分的计划,以便确保那些没有直连链路到达骨干区域的区域不被遗漏。

如果配置了一条虚链路,作为设计者,应该把它仅仅用来作为修复无法避免的网络拓扑问题的一个临时手段。虚链路可以看作一个标明OSPF区域的某个部分是否需要重新设计的标志。事实上,永久虚链路的存在总是一个设计比较差的OSPF区域的标志。

虚链路总是建立在ABR路由器之间的,并且至少他们之中有一个ABR路由器和area 0相连。在每一台ABR路由器的OSPF配置中,通过area 1 virtual-link命令来配置一条虚链路,并指定这条虚链路要穿过的区域和这条链路对端ABR路由器的Router ID。
虚链路配置实例:

网络拓扑图如下:
OSPF协议的“地址汇总配置”及“虚链路配置”

很明显,area 2并没有连接在骨干区域area 0,也就是说,正常情况下,R3路由器是无法学习到area 1 和area 0 中的路由信息的,因为不同区域间的路由信息是通过骨干区域area 0 来进行泛洪的,那么,这种情况就可以在R1和R2之间配置一下虚链路,从而实现area 2通过R1和R2之间配置的虚链路来直接连接到area 0。配置命令如下(省略接口地址的配置):
R1的OSPF配置如下:

R1(config)#router ospf 1
R1(config-router)#net 1.1.1.1 0.0.0.0 area 1
R1(config-router)#net 20.0.0.0 0.255.255.255 area 1
R1(config-router)#net 10.0.0.0 0.255.255.255 area 2

R2的OSPF配置如下:

R2(config)#router ospf 1
R2(config-router)#net 20.0.0.0 0.255.255.255 area 1
R2(config-router)#net 30.0.0.0 0.255.255.255 area 0
R2(config-router)#net 2.2.2.2 0.0.0.0 area 0

R3的OSPF配置如下:

R3(config)#router ospf 1
R3(config-router)#net 3.3.3.3 0.0.0.0 area 2
R3(config-router)#net 10.0.0.0 0.255.255.255 area 2

R4的OSPF配置如下:

R4(config)#router ospf 1
R4(config-router)#net 4.4.4.4 0.0.0.0 area 0
R4(config-router)#net 30.0.0.0 0.255.255.255 area 0

经过以上配置,除了area 2中的R3路由器外,area 1和area 0已经互相学习到了对方区域的路由信息,接下来需要在R1路由器和R2路由器上配置虚链路,从而让area2 中的拓扑信息也可通过骨干区域area 0来进行泛洪。

现在查看R3的路由条目只有直连网段,如下所示

R3#show ip route

                             ..........................

     3.0.0.0/32 is subnetted, 1 subnets
C       3.3.3.3 is directly connected, Loopback0
C    10.0.0.0/8 is directly connected, FastEthernet0/0

R1的虚链路配置如下:
R1(config-router)#area 1 virtual-link 2.2.2.2 #指定对端路由器的router ID

R2的虚链路配置如下:

R2(config-router)#area 1 virtual-link 1.1.1.1                         #指定对端路由器的router  ID

现在再查看R3的路由条目:

R3#show ip route

                         ............................

     1.0.0.0/32 is subnetted, 1 subnets
O IA    1.1.1.1 [110/2] via 10.0.0.2, 00:02:10, FastEthernet0/0
     2.0.0.0/32 is subnetted, 1 subnets
O IA    2.2.2.2 [110/3] via 10.0.0.2, 00:01:30, FastEthernet0/0
     3.0.0.0/32 is subnetted, 1 subnets
C       3.3.3.3 is directly connected, Loopback0
     4.0.0.0/32 is subnetted, 1 subnets
O IA    4.4.4.4 [110/4] via 10.0.0.2, 00:01:30, FastEthernet0/0
O IA 20.0.0.0/8 [110/2] via 10.0.0.2, 00:02:10, FastEthernet0/0
C    10.0.0.0/8 is directly connected, FastEthernet0/0
O IA 30.0.0.0/8 [110/3] via 10.0.0.2, 00:01:33, FastEthernet0/0

可以发现,已经学习到了网络中的所有路由信息,实现了全网互通。