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 区域的时候需要注意以下几点:骨干区域(Area 0)不能被配置成为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之间的两条链路位于区域2,R3的Loopback 1 接口用来模拟企业外部网络。要求:不同的分支机构通过不同的总部路由器访问总部网络及外网,实现主备备份。即R4与R1之间为分支机构1的主用链路,R4与R2之间为其备用链路。R5与R2之间为分支机构2的主用链路,R5与R1之间为其备用链路。另外,R4、R5的LSDB及路由表的规模应尽量小。

配置 OSPF Stub 区域代码 ospf stub区域作用_网络


//在每台路由器上配置OSPF协议,R1、R2、R3之间的链路属于区域0,R4与R1、R4与R2之间的链路属于区域1,R5与R1、R5与R2之间的链路属于区域2。

配置 OSPF Stub 区域代码 ospf stub区域作用_链路_02


配置 OSPF Stub 区域代码 ospf stub区域作用_ospf_03


配置 OSPF Stub 区域代码 ospf stub区域作用_ospf_04


配置 OSPF Stub 区域代码 ospf stub区域作用_网络_05

配置 OSPF Stub 区域代码 ospf stub区域作用_配置 OSPF Stub 区域代码_06

//查看R1、R2上的OSPF邻居建立情况。

配置 OSPF Stub 区域代码 ospf stub区域作用_配置 OSPF Stub 区域代码_07


配置 OSPF Stub 区域代码 ospf stub区域作用_配置 OSPF Stub 区域代码_08


//邻居状态都为Full,邻居邻接关系已经建立。


、//查看R4的路由表

配置 OSPF Stub 区域代码 ospf stub区域作用_网络_09


//可以看到R4已经获得了其他所有网段的路由。由于R4采用了双出口设计,所以其中部分路由条目同时有两个下一跳,即通过R1或R2都可以访问,处在负载均衡状态。


、//在R3上配置路由引入,采用引入直连路由的方式将Loopback 1 接口所在网段引入到OSPF进程中,模拟外部网络。

配置 OSPF Stub 区域代码 ospf stub区域作用_链路_10



、//R4上查看路由表

配置 OSPF Stub 区域代码 ospf stub区域作用_网络_11


//发现R4已经获得了外部网络的路由,并且也是负载均衡方式。OSPF的外部路由表中显示为 O_ASE,优先级值为150,远远大于普通OSPF内部路由优先级的值10。也可以使用 Display ospf 1 routing 查看OSPF路由表信息。

配置 OSPF Stub 区域代码 ospf stub区域作用_链路_12


//显示信息,R4拥有两条去往外部网络20.0.0.0/24的路由,下一跳分别是R1、10.0.14.1和R2、10.0.24.2 开销值都为1,类型为OSPF外部路由的默认类型2。(注意:这条命令无法看到路由的优先级的值)


、//查看R4的LSDB。

配置 OSPF Stub 区域代码 ospf stub区域作用_网络_13


//可以看到,R4的LSDB中 External LSA(即Type-5 LSA)中,存在一条LinkState ID为20.0.0.0 的LSA,通告路由器为R3。同时,在LSDB中还包含了两条LinkState ID为3.3.3.3 的Type-4 LSA (Sum-Asbr LSA),通告路由器分别为R1和R2,表示了两条去往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,所以最终的选择结果应该是从内部获得该3条路由(注意:优先级的值越大,优先级越低)//R4测试外部网络的连通性。

配置 OSPF Stub 区域代码 ospf stub区域作用_链路_14



、//配置Stub区域。当两个分支在访问总部网络和外网时,是可以通过总部路由器R1、R2进行访问的,接下来,不同的分支机构应通过不同的总部路由器访问总部网络及外网,并实现主备备份,即R4与R1之间为分支机构1的主用链路,R4与R2之间为备份链路;R5与R2之间为主用链路,R5与R1之间为备用链路。为此,可以将R4、R5各自所在的区域配置成为Stub区域。配置为Stub区域后,该区域的路由器将不会接收区域外部路由,且ABR会在该区域中通告一条缺省路由,以供其访问区域外部网络。

配置Stub 区域需注意:区域内的所有路由器都要配置Stub 命令,否者邻居关系无法正常建立。(配置了Stub 区域与尚未配置Stub 命令的路由器的邻居关系处于Down 状态)

配置 OSPF Stub 区域代码 ospf stub区域作用_ospf_15


配置 OSPF Stub 区域代码 ospf stub区域作用_ospf_16


//可以看到R4区域1配置了Stub区域后,与R1建立了邻接关系状态为Full。//R2与R5配置Stub区域。

配置 OSPF Stub 区域代码 ospf stub区域作用_路由器_17


配置 OSPF Stub 区域代码 ospf stub区域作用_ospf_18

//查看R4的路由表及LSDB。

配置 OSPF Stub 区域代码 ospf stub区域作用_网络_19


配置 OSPF Stub 区域代码 ospf stub区域作用_链路_20


//可以看到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)。


、//接下来通过调整ABR路由器所通告的缺省路由的开销值来实现主备备份。在R2的区域1中,配置命令default cost 10,表示将发送到该Stub区域的Type-3 LSA 的缺省路由开销值设为10,同样,在R1的区域2中,配置命令default cost 10。

配置 OSPF Stub 区域代码 ospf stub区域作用_ospf_21


配置 OSPF Stub 区域代码 ospf stub区域作用_路由器_22


//查看R4、R5的LSDB。

配置 OSPF Stub 区域代码 ospf stub区域作用_ospf_23


配置 OSPF Stub 区域代码 ospf stub区域作用_网络_24


//可以看到R4、R5的LSDB中相应的Type-3 LSA 的开销值已经得到了修改。

//查看R4、R5的路由表

配置 OSPF Stub 区域代码 ospf stub区域作用_ospf_25


配置 OSPF Stub 区域代码 ospf stub区域作用_ospf_26


//可以看到R4的路由表中的缺省路由的下一跳是R1(10.0.14.1),R5的路由表中的缺省路由的下一跳是R2(10.0.25.2)


、//在R4、R5上使用tracert 验证去往外网20.0.0.1的路径

配置 OSPF Stub 区域代码 ospf stub区域作用_配置 OSPF Stub 区域代码_27


配置 OSPF Stub 区域代码 ospf stub区域作用_配置 OSPF Stub 区域代码_28


//可以看到R4、R5都选择了用主链路去访问外网。现在将R4的E1/0/0接口关闭,观察主备链路切换过程

配置 OSPF Stub 区域代码 ospf stub区域作用_路由器_29


//可以看到R4访问外网从R2经过。


、//配置Totally Stub 区域,分支路由器R4、R5的LSDB中存在着一些Type-3 LSA,即维护着一些域间路由信息,今后如网络扩容,这些Type-3 LSA 的数量将大量增加,但本身又没什么用处,造成路由器的不必要的负担。解决这一问题就是配置 Totally Stub 区域,Totally Stub 区域是在Stub 区域的基础上进一步拒绝接收除缺省路由之外的路由信息,即禁止Type-3 LSA 进入该区域。配置Totally Stub 区域时,只需在Stub命令之后添加no-summary选项,且只需在ABR上进行配置。

注意:由于路由器R4、R5与总部之间是双出口设计,所以每个区域都存在两台ABR。

配置 OSPF Stub 区域代码 ospf stub区域作用_ospf_30

配置 OSPF Stub 区域代码 ospf stub区域作用_路由器_31


//查看R4的LSDB及路由表

配置 OSPF Stub 区域代码 ospf stub区域作用_路由器_32


//可以看到,R4的LSDB中只有两条缺省路由的Type-3 LSA,没有任何其他Type-3 LSA,路由表中也不存在任何域间路由,只有一条缺省路由。

//测试分支与总部路由器R1的环回接口所在网段的连通性,以及外部网络的连通性。

配置 OSPF Stub 区域代码 ospf stub区域作用_路由器_33