目录
在一个大型网络中,OSPF路由器通常需要同时维护由域内路由、域间路由、外部路由构成的数据库。当网络规模不断扩大时,LSDB规模也不断增长。如果某区域不需要为其他区域提供流量中转服务,那么该区域内的路由器就没有必要维护本区域外的链路状态信息。
OSPF通过划分区域可以减小区域内路由器LSDB的规模,对于那些位于自治系统(AS)边界的非骨干区域的低端路由器来说仍然无法承受,通过OSPF的特殊区域特性可以进一步减少LSA数量和路由表规模。
本文主要介绍OSPF特殊区域,以及OSPF协议相关特性。
Stub区域和Totally Stub区域
网络规模变大引发的问题
OSPF路由器计算区域内、区域间、外部路由都需要依靠网络中的LSA,当网络规模变大时,设备的LSDB规模也变大,设备的路由计算变得更加吃力,造成设备性能浪费。
传输区域和末端区域
OSPF的区域可分为两种类型:
传输区域(Transit Area):除了承载本区域发起的流量和访问本区域的流量外,还承载了源IP和目的IP都不属于本区域的流量,即“穿越型流量”,如本例中的Area 0。
末端区域(Stub Area):只承载本区域发起的流量和访问本区域的流量,如本例中的Area 1和Area 2。
Stub区域
Stub区域的ABR不向Stub区域内传播它接收到的AS外部路由,Stub区域中路由器的LSDB、路由表规模都会大大减小。
为保证Stub区域能够到达AS外部,Stub区域的ABR将生成一条缺省路由(使用3类LSA描述)。
配置Stub区域时需要注意下列几点:
骨干区域不能被配置为Stub区域。
Stub区域中的所有路由器都必须将该区域配置为Stub。
Stub区域内不能引入也不接收AS外部路由。
虚连接不能穿越Stub区域。
Stub区域的路由表及3类LSA
<R5>display ospf routing
OSPF Process 1 with Router ID 10.0.5.5
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
10.0.35.0/24 1 Transit 10.0.35.5 10.0.5.5 0.0.0.2
0.0.0.0/0 2 Inter-area 10.0.35.3 10.0.3.3 0.0.0.2
10.0.12.0/24 3 Inter-area 10.0.35.3 10.0.3.3 0.0.0.2
10.0.13.0/24 2 Inter-area 10.0.35.3 10.0.3.3 0.0.0.2
10.0.24.0/24 4 Inter-area 10.0.35.3 10.0.3.3 0.0.0.2
R1作为ASBR引入多个外部网段,如果Area 2是普通区域,则R3将向该区域注入5类和4类LSA。
当把Area 2配置为Stub区域后:
R3不会将5类LSA和4类LSA注入Area 2。
R3向Area 2发送用于描述缺省路由的3类LSA,Area 2内的路由器虽然不知道到达AS外部的具体路由,但是可以通过该默认路由到达AS外部。
Totally Stub区域
Totally Stub区域既不允许AS外部路由在本区域内传播,也不允许区域间路由在本区域内传播。
Totally Stub区域内的路由器通过本区域ABR下发的缺省路由(使用3类LSA描述)到达其他区域,以及AS外部。
配置Totally Stub区域时需要注意:
与Stub区域配置的区别在于,在ABR上需要追加no-summary关键字。
Totally Stub区域访问其他区域及AS外部是通过默认路由实现的。
AS外部、其他OSPF区域的拓扑及路由变化不会导致Totally Stub区域内的路由器进行路由重计算,减少了设备性能浪费。
当Area 2配置为Totally Stub区域后:
R3不会将5类LSA和4类LSA注入Area 2。
R3不会将3类LSA注入Area 2,但是会向该区域注入一条使用3类LSA描述的缺省路由。
R5通过缺省路由到达AS外部网络和其他OSPF区域。
Stub区域、Totally Stub区域解决了末端区域维护过大LSDB带来的问题,但对于某些特定场景,它们并不是最佳解决方案。
NSSA区域和Totally NSSA区域
Stub区域与Totally Stub区域存在的问题
OSPF规定Stub区域是不能引入外部路由的,这样可以避免大量外部路由引入造成设备资源消耗。
对于既需要引入外部路由又要避免外部路由带来的资源消耗的场景,Stub和Totally Stub区域就不能满足需求了。
NSSA区域与Totally NSSA区域
NSSA区域能够引入外部路由,同时又不会学习来自OSPF网络其它区域引入的外部路由。
Totally NSSA与NSSA区域的配置区别在于前者在ABR上需要追加no-summary关键字。
NSSA区域与Totally NSSA区域的LSDB
OSPF 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 |
特殊区域的使用减小了设备的LSDB规模,从而减少设备性能浪费,且一定程度上也缩小了网络故障的影响范围。
路由器对LSA的处理原则
OSPF通过交互LSA实现链路状态数据库同步,路由器收到LSA后,按照以下原则处理:
如果收到的LSA本地没有,则更新LSDB并泛洪该LSA。
如果本地LSDB已存在该LSA,但是收到的更新,则更新LSDB并泛洪该LSA。
如果收到的LSA和LSDB中相同,则忽略,并终止泛洪。
如果收到的LSA损坏,例如Checksum错误,则不接收该LSA。
区域间路由汇总和外部路由汇总
在ABR执行路由汇总
路由汇总又被称为路由聚合,即是将一组前缀相同的路由汇聚成一条路由,从而达到减小路由表规模以及优化设备资源利用率的目的,我们把汇聚之前的这组路由称为精细路由或明细路由,把汇聚之后的这条路由称为汇总路由或聚合路由。
OSPF路由汇总的类型:
在ABR执行路由汇总:对区域间的路由执行路由汇总。
在ASBR执行路由汇总:对引入的外部路由执行路由汇总。
执行路由汇总后,ABR R2只向Area 0通告汇总路由172.16.0.0/21。
明细路由对应的网段如果产生翻动(Up/Down),该拓扑变更造成的影响将被限制在Area 1内。
在ASBR配置路由汇总后,ASBR将对自己所引入的外部路由进行汇总。
NSSA区域的ASBR也可以对引入NSSA区域的外部路由进行汇总。
在NSSA区域中,ABR执行7类LSA转化成5类LSA动作,此时它也是ASBR。若配置路由汇总,则对由7类LSA转化成的5类LSA进行汇总。
OSPF协议特性
Silent-Interface
通过Silent-Interface的配置,增强OSPF的组网适应能力,减少系统资源的消耗。
Silent-Interface有以下特性:
Silent-Interface不会接收和发送OSPF报文。
Silent-Interface的直连路由仍可以发布出去。
R1的GE0/0/1接口在OSPF network命令的网段范围内。
到达该接口的路由将被通告到OSPF,使得其他设备能够访问Server。
由于该接口上未连接任何其他OSPF路由器,因此管理员将该接口配置为Silent-Interface,该接口将不再收发Hello报文,从而避免了对Server的性能降低。
OSPF报文认证
OSPF支持报文认证功能,只有通过认证的OSPF报文才能被接收。
路由器支持两种OSPF报文认证方式,当两种认证方式都存在时,优先使用接口认证方式:
区域认证方式:一个OSPF区域中所有的路由器在该区域下的认证模式和口令必须一致。
接口认证方式:相邻路由器直连接口下的认证模式和口令必须一致。
在本例中,R2分别配置了接口认证及区域认证,为了正常建立OSPF邻居关系,R3及R1也需完成相关配置