原理概述
OSPF 协议定义了多种区域( Area )类型,其中比较常见的有 Stub 区域和 Totally Stub 区域。区域的类型决定了在这个区域当中所存在的 LSA 的类型。
Stub 区域不允许 Type-4和 Type-5 LSA 进入,该区域会通过 Type-3 LSA 所表示的缺省路由访问 AS 外部目的地。 Totally Stub 区域不仅不允许 Type-4和 Type-5 LSA 进入,同时也不允许 Type-3 LSA 进入,只允许表示缺省路由的 Type -3 LSA 进入,并根据缺省路由来访问该区域以外的任何目的地。
Stub 区域和 Totally Stub 区域的功能就是减少该区域中 LSA 的数量,从而缩小 LSDB的规模,进而减少路由表中路由条目的数量,实现降低设备负担、增强网络稳定性、优化网络性能的目的。
配置 Stub 和 Totally Stub 区域的时候需要注意以下几点:骨干区域(Area0)不能被配置成为 Stub 区域或者 Totally Stub 区域, Virtual-link 不能通过 Stub 区域或者 Totally Stub 区域, Stub 区域或者 Totally Stub 区域中不允许包含有 ASBR 路由器。
实验目的
理解 Stub 区域和 Totally Stub 区域的作用与区别
掌握 Stub 区域和 Totally Stub 区域的配置方法
实验内容
实验拓扑如图所示。本实验模拟了一个企业网络场景,R1,R2,R3为公司总部网络的路由器,R4,R5分别为企业分支机构1和分支机构2的路由器,并且都采用双上行方式与企业总部相连。整个网络都运行OSPF协议,R1 ,R2,R3的链路位于区域0,R4与R1,R4与R2之间的两条链路位于区域1,R5与R1,R5与R2之间的两条链路位于区域1,R5与R1,R5与R2之间的两条链路位于区域2,R3的Loopback接口用来模拟企业外部网络。网络的最终需求是:不同分支机构通过不同的总部路由器访问总部网络及外网,并实现主备备份,即:R4与R1之间为分支机构1的主用链路,R4与R2之间为其备用链路;R5与R2之间为分支机构2的主用链路,R5与R1之间为其备用链路。另外,R4和R5的 LSDB 及路由表的规模应尽量小。
实验拓扑
1.基本配置
根据拓扑图,进行相应的基本配置,并使用ping命令检测R1与R2之间的连通性。
其余直连网段的连通性测试过程在此省略。
2.配置OSPF及路由引入
[r1]ospf router-id 1.1.1.1
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]network 10.0.12.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]network 10.0.13.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]area 1
[r1-ospf-1-area-0.0.0.1]network 10.0.14.1 0.0.0.0
[r1-ospf-1-area-0.0.0.1]area 2
[r1-ospf-1-area-0.0.0.2]network 10.0.15.1 0.0.0.0
[r2]ospf router-id 2.2.2.2
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]network 10.0.12.2 0.0.0.0
[r2-ospf-1-area-0.0.0.0]network 10.0.23.2 0.0.0.0
[r2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[r2-ospf-1-area-0.0.0.0]area 1
[r2-ospf-1-area-0.0.0.1]network 10.0.24.2 0.0.0.0
[r2-ospf-1-area-0.0.0.1]area 2
[r2-ospf-1-area-0.0.0.2]network 10.0.25.2 0.0.0.0
[r3]ospf router-id 3.3.3.3
[r3-ospf-1]area 0
[r3-ospf-1-area-0.0.0.0]network 10.0.13.3 0.0.0.0
[r3-ospf-1-area-0.0.0.0]network 10.0.23.3 0.0.0.0
[r3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[r4]ospf router-id 4.4.4.4
[r4-ospf-1]area 1
[r4-ospf-1-area-0.0.0.1]network 10.0.14.4 0.0.0.0
[r4-ospf-1-area-0.0.0.1]network 10.0.24.4 0.0.0.0
[r4-ospf-1-area-0.0.0.1]network 4.4.4.4 0.0.0.0
[r5]ospf router-id 5.5.5.5
[r5-ospf-1]area 2
[r5-ospf-1-area-0.0.0.2]network 10.0.25.5 0.0.0.0
[r5-ospf-1-area-0.0.0.2]network 10.0.15.5 0.0.0.0
[r5-ospf-1-area-0.0.0.2]network 5.5.5.5 0.0.0.0
配置完成后,查看R1、R2上的OSPF邻居建立情况。
可以看到,邻居状态都为Full,说明邻居邻接关系都已经成功建立。
查看R4的路由表。
可以看到,现在R4已经获得了其它网段的路由。由于R4采用了双出口设计,所以其中部分路由条目同时有两个下一跳,即通过R1和R2都可以访问,处在负载均衡状态。
在R3上配置路由引入,采用引入直连路由的方式将Loopback 1接口所在网段引入到OSPF进程中,用它来模拟企业外部网络。
[r3]ospf
[r3-ospf-1]import-route direct
在R4上查看其路由表。
可以看到,此时R4已经获得了该企业外部网络的路由,并且也是负载均衡方式。OSPF的外部路由在路由表中显示为O_ASE,其优先级的值为150,远远大于普通OSPF内部路由优先级的值10.另外,我们也可以使用display ospf 1 routing 来只查看OSPF路由表的信息。
显示信息表明,R4拥有两条去往外部网络20.0.0.0/24的路由,下一跳分别是R2和R1,开销值都为1,类型为OSPF外部路由的默认类型2。注意,使用这种方式查看OSPF路由信息时,无法看到路由的优先级的值。
查看R4的LSDB。
可以看到,R4的LSDB中包含了若干条各种类型的LSA,在External LSA(即Type-5 LSA)中,存在一条LinkState ID为20.0.0.0的LSA,通告路由器为R3,同时,在LSDB中还包含了两条去往ASBR R3的路由。
此外,还可以注意到,在lsdb中,除了表示企业外部网络20.0.0.0的那条External LSA之外,还存在着另外3条External LSA,其原因是此前采用了直接引入直连路由的方式来引入外部路由,所以将R3上的所有直连网段的路由全部引入了进来。也就是说,R4可以通过两种方式来获得这3条路由(10.0.13.0/24,10.0.23.0/24,3.3.3.3/32) ,一种是在OSPF内部获得,一种是通过OSPF外部获得。在这种情况下,会首先比较两种不同方式下的路由优先级:OSPF内部路由优先级的值为10,而外部路由优先级的值为150,所以选择的结果是从内部获得该三条路由(注意,优先级的值越大,优先级越低)。
在R4上测试去往外部路由的连通性。
可以看到,R4与外部网络的通信是正常的。R5得验证过程和R4一样,这里不再赘述。
3.配置Stub区域
当前情况下,两个分支机构在访问总部网络和外网时,是可以同时通过总部路由器RI 和R2进行访问的。接下来的需求是,不同分支机构应通过不同的总部路由器访问总部网络及外网,并实现主备备份,即:R4与 RI 之间为分支机构1的主用链路,R4与R2之间为其备用链路;R5与R2之间为分支机构2的主用链路,R5与 RI 之间为其备用链路。
另外,R4和R5作为企业分支机构的路由器,只需要能够正常与总部网络和外网进行通信即可,没有必要获取及维护外网的明细路由。为此,可以将R4和R5各自所在的区域配置成为 Stub 区域。配置成 Stub 区域后,该区域内的路由器将不会接收区域外部路由,且 ABR 会在该区域中通告一条缺省路由,以供其访问区域外部网络。
配置 Stub 区域时必须注意,区域内的所有路由器都要配置 stub 命令,否则邻居关系无法正常建立。在配置过程中可以观察到,配置了 stub 命令的路由器与尚未配置 stub 命令的路由器的邻居关系处于 down 的状态。
[r1]ospf
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]stub
[r1-ospf-1-area-0.0.0.1]area 2
[r1-ospf-1-area-0.0.0.2]stub[r2]ospf
[r2-ospf-1]area 1
[r2-ospf-1-area-0.0.0.1]stub
[r2-ospf-1-area-0.0.0.1]area 2
[r2-ospf-1-area-0.0.0.2]stub[r4]ospf
[r4-ospf-1]area 1
[r4-ospf-1-area-0.0.0.1]stub[r5]ospf
[r5-ospf-1]area 2
[r5-ospf-1-area-0.0.0.2]stub
配置完成后,查看R4的路由表及LSDB。
可以看到,现在R4的路由表中的外部路由条目已经消失了,取而代之的是一条缺省路由。同样,在R4的 LSDB 中,已经没有了任何 Type-5 LSA 及 Type-4 LSA 条目,并且多了两条 Type-3 LSA ( Sum-Net LSA )。这两条 Type-3 LSA 的 LinkState ID 为0.0.0.0,说明是表示缺省路由的 LSA ,通告路由器分别为R1(1.1.1.1)和R2(2.2.2.2)。
在R5上也可以看到与上面相同的结果 。接下来,通过调整 ABR 路由器所通告的缺省路由的开销值来实现主备备份。在R2的区域1中,配置命令 default cost 10,表示将发送到该 Stub 区域的 Type-3 LSA 的缺省路由开销值设为10。同样,在R1的区域2中,配置命令 default cost 10。
[r2]ospf
[r2-ospf-1]area 1
[r2-ospf-1-area-0.0.0.1]default-cost 10[r1]ospf
[r1-ospf-1]area 2
[r1-ospf-1-area-0.0.0.2]default-cost 10
配置完成后,查看R4,R5的LSDB。
可以看到,R4和R5的LSDB中相应的Type-3 LSA的开销值已经得到了修改。
再查看R4,R5的路由表。
可以看到,现在R4的路由表中的缺省路由的下一跳R1(10.0.14.1),R5的路由表中的缺省路由的下一跳是R2(10.0.25.2)。
在R4,R5上使用tracert命令验证去外网20.0.0.0的路径。
可以看到,R4和R5都选用了主用链路去访问外网。
4.配置Totally Stub区域
上面的实验已经基本上实现了该企业的网络需求。然而,在仔细观察了分支路由器R4和R5的 LSDB 后发现, LSDB 中存在着一些 Type-3 LSA ,即维护着一些域间路由信息。随着今后企业的发展,网络的扩容,这些 Type -3 LSA 的数量将大量增加,但本身又没有什么用处,从而成为路由器的不必要的负担。
解决这个问题的一个有效方法是配置 Totally Stub 区域。 Totally Stub 区域是在 Stub 区域的基础之上进一步拒绝接收除缺省路由之外的域间路由信息,即禁止 Type-3 LSA 进入该区域。配置 Totally Stub 区域时,只需在 stub 命令之后添加 no-summary 选项,且只需在 ABR 上进行配置。
下面进行 Totally Stub 区域的配置。注意,由于分支路由器R4和R5与总部之间是双出口设计,所以每个区域中都存在两台 ABR 。
[r1]ospf
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]stub no-summary
[r1-ospf-1-area-0.0.0.1]area 2
[r1-ospf-1-area-0.0.0.2]stub no-summary
[r2]ospf
[r2-ospf-1]area 1
[r2-ospf-1-area-0.0.0.1]stub no-summary
[r2-ospf-1-area-0.0.0.1]area 2
[r2-ospf-1-area-0.0.0.2]stub no-summary
配置完成后,以R4为例,查看此时R4的LSDB和路由表。
可以看到,R4的 LSDB 中只有两条表示缺省路由的 Type-3 LSA ,没有任何其他 Type-3 LSA ,路由表中也不存在任何域间路由,只有一条缺省路由。
以R4为例,测试企业分支机构路由器与企业总部路由器R1的环回接口所在网段的连通性,以及与外部网络的连通性。
可以看到,通信完全正常。至此,网络需求已经得到全部满足。