前面我们已经学习了Stub区域和Totally Stub区域,是为了解决末端区域到达外部路由的方式以及减少LSA数量。但是OSPF规定Stub区域是不能引入外部路由的,这样可以避免大量外部路由引入造成设备资源消耗。 对于既需要引入外部路由又要避免外部路由带来的资源消耗的场景,Stub和Totally Stub区域就不能满足需求了。
一、NSSA区域(七类LSA)
为了解决上面的需求,定义了一种区域-NSSA区域。NSSA区域能够引入外部路由,同时又不会学习来自OSPF网络其它区域引入的外部路由。
NSSA区域内所有路由器接口都要配置NSSA,option选项置位,配置与stub类似。NSSA区域也不会存在其他区域的4类和5类路由,而且存在7类默认路由。
# 配置
ospf 1 # 进入OSPF进程
area 1 # 进入区域
nssa # 配置为nssa区域
7类LSA-NSSA LSA:
-
7类LSA是为了支持NSSA区域而新增的一种LSA类型,用于描述NSSA区域引入的外部路由信息。NSSA区域的ASBR将外部路由引入该区域后,使用7类LSA描述这些路由。 -
7类LSA的扩散范围仅限于始发NSSA区域,7类LSA不会被注入到普通区域。 -
NSSA区域的ABR会将7类LSA转化为5类LSA,并将该LSA注入到骨干区域,从而在整个OSPF域内泛洪。 -
NSSA区域的ABR会阻挡其他区域引入的外部路由引入本区域,即NSSA区域内不会存在4类及5类LSA,为了让NSSA区域内的路由器能够通过骨干区域到达AS外部,NSSA区域的ABR会自动向该区域注入一条缺省路由,该路由采用7类LSA描述。
示例场景1:
场景1(将Area 2配置为NSSA区域):当R5将外部路由192.168.3.0/24引入NSSA区域时,R5作为ASBR生成7类LSA在Area 2内泛洪;R3生成使用7类LSA描述的缺省路由注入Area 2,Area 2内的路由器依然会收到R3注入的3类LSA,并计算出到达其他区域的区域间路由。
二、Totally NSSA区域
Totally NSSA与NSSA区域的配置区别在于前者在ABR上需要追加no-summary关键字。Totally NSSA区域和NSSA区域类似,只是Totally NSSA区域的ABR会阻挡3类LSA进入该区域
场景2(将Area2配置为Totally NSSA区域):Totally NSSA区域和NSSA区域类似,只是Totally NSSA区域的ABR会阻挡3类LSA进入该区域,因此在场景2中,R3不会将区域间路由注入Area 2,故而在R5的LSDB中,仅会看到一条描述缺省路由的3类LSA。
类型 | 名称 | 描述 |
---|---|---|
1 | 路由器LSA(Router LSA) | 每个设备都会产生,描述了设备的链路状态和开销,该LSA只能在接口所属的区域内泛洪 |
2 | 网络LSA(Network LSA) | 由DR产生,描述该DR所接入的MA网络中所有与之形成邻接关系的路由器,以及DR自己。该LSA只能在接口所属区域内泛洪 |
3 | 网络汇总LSA(Network Summary LSA) | 由ABR产生,描述区域内某个网段的路由,该类LSA主要用于区域间路由的传递 |
4 | ASBR汇总LSA(ASBR Summary LSA) | 由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。 |
5 | AS外部LSA(AS External LSA) | 由ASBR产生,用于描述到达OSPF域外的路由 |
7 | 非完全末梢区域LSA(NSSA LSA) | 由ASBR产生,用于描述到达OSPF域外的路由。NSSA LSA与AS外部LSA功能类似,但是泛洪范围不同。NSSA LSA只能在始发的NSSA内泛洪,并且不能直接进入Area0。NSSA的ABR会将7类LSA转换成5类LSA注入到Area0 |
总结:NSSA区域和Totally NSSA区域是为了实现在末端区域能够引入外部路由并且实现缩减LSA条目的功能的,在NSSA区域能够引入路由,生成7类LSA,NSSA区域的ABR将其转换为5类LSA进行泛洪,而Totally NSSA区域则进一步隔绝了3类LSA只生成缺省LSA路由。其实原理大致是使用类似缺省路由的方式实现的。特殊区域的使用减小了设备的LSDB规模,从而减少设备性能浪费,且一定程度上也缩小了网络故障的影响范围,但是不是所有场景都适用需要灵活考虑规划。
如果对文章感兴趣欢迎微信搜索公众号:不喜欢热闹的孩子
本文由 mdnice 多平台发布