原理概述
与RIP不同,OSPF不支持自动路由聚合,仅支持手动路由聚合。OSPF的路由聚合有两种机制:区域间路由聚合和外部路由聚合。区域间路由聚合必须配置在ABR路由器上,指的是ABR在把与自己直接相连区域(Area)中的Type-1和Type-2 LSA转换成Type-3 LSA时,对生成的Type-3 LSA进行聚合。外部路由聚合必须配置在ASBR路由器上,指的是ASBR对Type-5 LSA进行聚合。
区域间路由聚合是ABR对与自己直接相连区域内的路由进行聚合,从而减少传播至与自己直接相连的其他区域的Type-3 LSA的数量。需要特别强调的是,区域间路由只能聚合由Type-1 LSA 或 Type-2 LSA产生的路由;如果路由是由外部或其他区域传到本区域的(或者说路由是由Type-5 LSA 或 Type-3 LSA生成的),则对于这样的路由ABR是不能够进行聚合的。
外部路由聚合是指在 ASBR 路由器上针对引入 OSPF 网络的外部路由进行的聚合,目的是减少在 OSPF 网络中的 Type-5 LSA 的数量。外部路由聚合必须在外部路由进入 OSPF 网络的 ASBR 上进行:外部路由进入 OSPF 网络后,在 ABR 上是无法对相应的 Type-5 LSA 进行聚合的。
对于 NSSA 区域,当该区域的 ABR 将 Type-7 LSA 转换为 Type-5 LSA 时,该 ABR 也可以充当 ASBR 的角色,并对 Type-5 LSA 进行聚合。需要注意的是,当 NSSA 区域存在多台 ABR 时,必须由 Router-ID 最大的 ABR 进行 Type-7 LSA 到 Type-5 LSA 的转换操作。 NSSA 区域的外部路由聚合有两种方式,一种是在 NSSA 区域的 ASBR 上直接对外部路由进行聚合,另一种是在 NSSA 区域中 Router-ID 最大的、负责将 Type-7 LSA 转成 Type-5 LSA 的 ABR 上进行聚合。
实验目的
理解 OSPF 区域间路由聚合和外部路由聚合的概念和过程
掌握配置 OSPF 区域间路由聚合和外部路由聚合的方法
实验内容
实验拓扑如图所示。本实验模拟了一个企业网络场景,R1、R2、R3为公司总部网络路由器,R4为分支机构路由器,R5为外部非 OSPF 网络的路由器,SW1为公司总部内部的交换机,R1、R2、R3、R4与SW1运行 OSPF 协议。 PC-1、 PC-2、 PC-3分别属于 VLAN 2、 VLAN 3、 VLAN 4;SW1与R1之间的链路属于VLAN 5,且属于区域1。R1与R2、R1与R3之间的链路属于区域0,R2与R4、R3与R4之间的链路属于区域2。区域2是一个 NSSA 区域,R4使用静态路由去往R5的 Loopback 接口所模拟的外部网络。网络管理员需要在实现全网互通的前提下,尽可能地精简 LSDB 和优化路由表。
实验拓扑
实验编址
1.基本配置
根据上图进行相应的基本配置,并使用ping命令检测R1与R2之间的连通性。
其余直连网段连通性测试过程在此省略。
2.配置OSPF及路由引入
OSPF协议的配置及NSSA区域的配置过程在此省略。需要说明的是,SW1及每台路由器都使用了自己的Loopback 0接口的IP地址作为Router-ID。
在R4上配置去往外部网络的静态路由,并进行引入。
[r4]ip route-static 20.0.5.1 255.255.255.255 10.0.45.5
[r4]ip route-static 20.0.5.2 255.255.255.255 10.0.45.5
[r4]ip route-static 20.0.5.3 255.255.255.255 10.0.45.5
[r4]ospf 10
[r4-ospf-10]import-route static
配置完成后,在R1上查看邻居状态。
可以看到,R1与R2、R3、SW1的邻居关系状态都是Full。
查看R1的路由表。
可以看到,R1已经接收到了所有的非直连路由,全网已经实现了互通。
3.配置区域间路由聚合
在R2上查看LSDB。
可以看到,目前R2为每一台PC所属的网络都单独维护了Type-3 LSA(Sum-Net LSA)。
查看R2的路由表。
可以看到,目前R2的路由表中拥有每一台PC所属网络的路由。为了减少LSDB中Type-3 LSA的数量以及路由表中路由条目的数量,下面将进行区域间路由配置。
在SW1上使用命令abr-summary配置区域间路由聚合。
[sw1-ospf-10-area-0.0.0.1]abr-summary 20.0.0.0 255.255.252.0
配置完成后,查看R1的LSDB及路由表。
可以看到,R1在LSDB中为每一台PC所属的网络都单独维护了Type-3 LSA,在路由表中为每一台PC所属的网络都单独维护了路由,这说明所配置的区域间路由聚合并没有产生作用,原因是只有在ABR上才能进行区域间路由聚合,而SW1并非ABR。
删除在SW1上所进行的配置。
[sw1-ospf-10-area-0.0.0.1]undo abr-summary 20.0.0.0 255.255.252.0
在ABR路由器R2的区域0中配置区域间路由聚合。
[r2]ospf 10
[r2-ospf-10]area 0
[r2-ospf-10-area-0.0.0.0]abr-summary 20.0.0.0 255.255.252.0
配置完成后,查看R4的LSDB及路由表。
可以看到,R4在LSDB中为每一台PC所属的网络都单独维护了Type-3 LSA,在路由表中为每一台PC所属的网络都单独维护了路由,这说明在ABR路由器R2上所配置的区域间聚合也没有产生作用,原因是ABR只能对与自己直接相连的区域进行区域间路由聚合。
删除在R2上所进行的配置。
[r2]ospf 10
[r2-ospf-10]area 0
[r2-ospf-10-area-0.0.0.0]undo abr-summary 20.0.0.0 255.255.252.0
在ABR路由器R1的区域1中配置区域间路由聚合。
[r1]ospf 10
[r1-ospf-10]area 1
[r1-ospf-10-area-0.0.0.1]abr-summary 20.0.0.0 255.255.252.0
配置完成后,查看R2的LSDB及路由表。
可以看到,现在R2的 LSDB 中没有为每一台 PC 所属的网络单独维护 Type-3 LSA ,维护的是聚合后的 Type-3 LSA ;R2的路由表中去往每一台 PC 所属的网络的明细路由也被聚合后的路由取代了。
4.配置外部路由聚合
通过前面的步骤,已经实现了区域间路由聚合。然而,以 Type-7 LSA 的形式进入 OSPF 网络的外部路由仍然未被聚合, LSDB 仍然会为每一条外部路由单独维护一条 LSA ,路由表中也会为每一条这样的 LSA 产生明细路由。
在R4上使用命令 asbr-summary 配置外部路由聚合。
[r4]ospf 10
[r4-ospf-10]asbr-summary 20.0.5.0 255.255.255.252
配置完成后,查看R1的LSDB及路由表。
可以看到, R1 的 LSDB 中没有明细 Type-5 LSA ,只有聚合了的 Type-5 LSA 。R1的
路由表中也没有外部网络的明细路由,而只有聚合后的路由。
查看R2的 LSDB 及路由表。
可以看到,R2的 LSDB 中没有明细 Type-5 LSA 和 Type-7 LSA ,只有聚合后的 Type-5 LSA 和 Type-7 LSA ,R2的路由表中没有外部网络的明细路由,只有聚合后的路由。
5.在 NSSA 区域的 ABR 上配置外部路由聚合
由于区域2是 NSSA 区域,该区域的 ABR 路由器会将 Type -7 LSA 转换为 Type-5 LSA ,并泛洪到区域0。
先删除R4上的路由聚合配置,然后在区域2的 ABR 路由器R2上配置外部路由聚合。
[r4-ospf-10]undo asbr-summary 20.0.5.0 255.255.255.252
[r2-ospf-10] asbr-summary 20.0.5.0 255.255.255.252
配置完成后,查看R1的LSDB。
可以观察到,R1的LSDB中针对每一条外部明细路由都有一条相应的Type-5 LSA,这说明在ABR路由器R2上进行的外部路由聚合配置并未生效。原来,将Type-7 LSA转换为Type-5 LSA的是Router-ID较大的ABR路由器R3,所以,在R2上进行的外部路由聚合配置不能生效。
查看R1上的路由表。
可以看到,R1上外部网络的路由全部是明细路由。
现在,保留R2上的外部路由聚合配置,并在R3上配置外部路由聚合。
[r3-ospf-10]asbr-summary 20.0.5.0 255.255.255.252
配置完成后,查看R1的LSDB及路由表。
可以看到,R1的LSDB中没有明细的Type-5 LSA,只有AdvRouter为R3(10.0.3.3)的聚合后的Type-5 LSA,路由表中没有外部路由的明细路由,只有外部网络的聚合路由,下一跳为R3(10.0.13.3),这说明R3上外部路由聚合配置已经生效。
关闭R3的GE0/0/1接口,模拟R3发生了故障。
[r3-GigabitEthernet0/0/1]shutdown
再查看R1的LSDB。
可以看到,R1上聚合后的Type-5 LSA的 AdvRouter变成了R2(10.0.2.2)。
查看R1的路由表。
可以看到,R1去往外部网络的聚合路由的下一跳变成了R2(10.0.12.2)。上面的实验说明,ABR路由器R2上的外部路由聚合配置,是对ABR路由器R3上的外部路由聚合配置的一个冗余备份。