Network系列:OSPF路由器类型、LSA类型、防环、特殊区域(三)
8. OSPF路由器类型
OSPF路由器根据其位置或功能不同,有这样几种类型:
- 区域内路由器(Internal Router):该类路由器的所有接口都属于同一个OSPF区域。
- 区域边界路由器ABR(Area Border Router):该类路由器的接口同时属于两个以上的区域,但至少有一个接口属于骨干区域。
- 骨干路由器(Backbone Router):该类路由器至少有一个接口属于骨干区域。
- 自治系统边界路由器ASBR(AS Boundary Router):该类路由器与其他AS交换路由信息。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。
9. LSA类型
9.1 LSA的基本概念
- LSA是OSPF进行路由计算的关键依据。
- OSPF的LSU报文可以携带多种不同类型的LSA。
- 各种类型的LSA拥有相同的报文头部。
链路状态类型、链路状态ID、通告路由器三元组唯一地标识了一个LSA。
链路状态老化时间 、链路状态序列号 、校验和用于判断LSA的新旧。
9.2 常见LSA的类型
9.2.1 Router LSA
Router LSA(1类LSA):每台OSPF路由器都会产生。它描述了该路由器直连接口的信息。
Router LSA只能在所属的区域内泛洪。
每条Link均包含“链路类型”、“链路ID”、“链路数据”以及“度量值”这几个关键信息。
路由器可能会采用一个或者多个Link来描述某个接口。
Router LSA描述P2P网络
因为R1-R3之间是P2P网络,不需要DR选举,所以没有2类LSA,在1类LSA中就描述了拓扑信息和网段信息。
Router LSA描述TransNet
在TransNet网络类型中,1类LSA只有拓扑信息,缺乏网络掩码信息,在TransNet网络中,如何完整地描述网段信息呢?在2类LSA中就会描述该网络信息。
9.2.2 Network LSA
Network LSA(2类LSA) :由DR产生,描述本网段的链路状态,在所属的区域内传播。Network LSA 记录了该网段内所有与DR建立了邻接关系的OSPF路由器,同时携带了该网段的网络掩码。
Network LSA描述MA网络
9.2.3 Network Summary LSA
Network Summary LSA(3类LSA)由ABR产生,用于向一个区域通告到达另一个区域的路由。
单区域OSPF存在的问题
- 一系列连续的OSPF路由器构成的网络称为OSPF域(Domain)。
- OSPF要求网络内的路由器同步LSDB,实现对于网络的一致认知。
- 当网络规模越来越大时,LSDB将变得非常臃肿,设备基于该LSDB进行路由计算,其负担也极大地增加了,此外路由器的路由表规模也变大了,这些无疑都将加大路由器的性能损耗。
- 当网络拓扑发生变更时,这些变更需要被扩散到整个网络,并可能引发整网的路由重计算。
- 单区域的设计,使得OSPF无法部署路由汇总。
解决单区域出现的问题
Router LSA和Network LSA只在区域内泛洪,因此通过区域划分在一定程度上降低网络设备的内存及CPU的消耗。
划分区域后,路由器可以分为两种角色:
- 区域内部路由器(Internal Router):该类设备的所有接口都属于同一个OSPF区域。如R1、R4、R5。
- 区域边界路由器(Area Border Router):该类设备接口分别连接两个及两个以上的不同区域。如R2、R3。
区域间路由信息传递方式
以192.168.1.0/24路由信息为例:
- R2依据Area 1内所泛洪的Router LSA及Network LSA计算得出192.168.1.0/24路由(区域内路由),并将该路由通过Network Summary LSA通告到Area 0。R3根据该LSA可计算出到达192.168.1.0/24的区域间路由。
- R3重新生成一份Network Summary LSA通告到Area 2中,至此所有OSPF区域都能学习到去192.168.1.0/24的路由。
LSA重要字段解释
Network Summary LSA示例
9.2.4 ASBR-Summary LSA
ASBR-Summary LSA(4类LSA):由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。
LSA重要字段解释
ASBR-Summary LSA示例
- 根据5类LSA的Advertising Router,R5判断5类LSA是由R1产生的,但是在R5的SPF树干中并不存在R1。
- 根据R3产生的4类LSA,R5将到达外部网络的下一跳路由设置为R3。
9.2.5 AS-external LSA
AS-external LSA(5类LSA):由ASBR产生,描述到达AS外部的路由,该LSA会被通告到所有的区域(除了Stub区域和NSSA区域)。
AS-external LSA示例
- 根据5类LSA的Advertising Router,R3判断到达外部路由,需要先经过R1。
- R3经过区域内SPF计算,已经将R1添加到SPF树干,R3 将到达外部路由的下一跳路由器设置为R1。
9.3 总结
关于一、二类LSA
- OSPF根据LSDB计算路由表,LSDB中可能存在多种类型的LSA,并且所有的LSA有相同的报文头部格式。
- 同一区域的OSPF路由器拥有完全一致的LSDB。在只有一个区域的情况下,区域内部主要存在两种类型的LSA,即Router-LSA和Network-LSA。
- 每台路由器都会产生Router-LSA,描述了路由器的直连接口信息。
- 在MA网络中,DR会产生Network-LSA来描述接入该MA网络的所有路由器的Router-ID(其中包括DR自身),以及这个网络的掩码。
关于三类LSA
- OSPF引入了多区域的概念,使得该协议能够支持更大规模的组网。
- OSPF使用3类LSA来描述区域间的路由信息。
- 为了避免出现区域间路由环路,OSPF设计了多个规则。
- OSPF Virtual Link是一种虚拟的、逻辑的链路,被部署在两台OSPF路由器之间,它穿越某个非骨干区域,用于实现另一个非骨干区域与Area0的连接。Virtual Link应该始终作为一种临时的技术手段来解决非骨干区域没有与Area0直接相连的情况。
关于四、五类LSA
- 在一个大规模网络中,可能存在多种不同的路由协议,OSPF支持将AS外部路由引入本AS,使得AS内的路由器能够获知到达AS外部的路由。
- ASBR将外部路由引入OSPF后,使用5类LSA描述它们,与ASBR同属一个区域的路由器能够根据5类LSA以及区域内的1类、2类LSA完成外部路由计算;与ASBR不在同一个区域的路由器还需借助4类LSA才能完成外部路由计算。
- OSPF将外部路由引入OSPF后,可以设置路由的度量值类型:Metric-Type-1或Metric-Type-2,不同度量值类型的外部路由,其开销的计算方式不同,其路由的优先级也不相同,Metric-Type-1路由的优先级高于Metric-Type-2路由。
OSPF路由遵循以下优先级顺序,区域内路由>区域间路由>Metric-Type-1外部路由>Metric-Type-2外部路由。
10. 路由防环机制
10.1 域间路由环路的产生
10.2 防环机制
- OSPF要求所有的非骨干区域必须与Area0直接相连,区域间路由需经由Area0中转。
- 区域间的路由传递不能发生在两个非骨干区域之间,这使得OSPF的区域架构在逻辑上形成了一个类似星型的拓扑。
ABR不会将描述到达某个区域内网段路由的3类LSA再注入回该区域。
ABR从非骨干区域收到的3类LSA不能用于区域间路由的计算。
R1和R2、R3和R4之间的链路中断导致骨干区域不连续。
- R4将10.0.2.2/32路由以3类LSA的形式发送到Area 1。
- R5和R6可以根据上述3类LSA计算出10.0.2.2/32路由。
- R3从非骨干区域收到3类LSA,不进行路由计算,也不会将此3类LSA发送到其他区域。
- 此时,R1和R3都无法和10.0.2.2/32通信。
11. 特殊区域
11.1 网络规模变大引发的问题
OSPF路由器计算区域内、区域间、外部路由都需要依靠网络中的LSA,当网络规模变大时,设备的LSDB规模也变大,设备的路由计算变得更加吃力,造成设备性能浪费。
11.2 传输区域和末端区域
OSPF的区域可分为两种类型:
- 传输区域(Transit Area):除了承载本区域发起的流量和访问本区域的流量外,还承载了源IP和目的IP都不属于本区域的流量,即“穿越型流量”,如本例中的Area 0。
- 末端区域(Stub Area):只承载本区域发起的流量和访问本区域的流量,如本例中的Area 1和Area 2。
11.3 Stub区域
- Stub区域的ABR不向Stub区域内传播它接收到的AS外部路由,Stub区域中路由器的LSDB、路由表规模都会大大减小。
- 为保证Stub区域能够到达AS外部,Stub区域的ABR将生成一条缺省路由(使用3类LSA描述)。
配置Stub区域时需要注意下列几点:
- 骨干区域不能被配置为Stub区域。
- Stub区域中的所有路由器都必须将该区域配置为Stub。
- Stub区域内不能引入也不接收AS外部路由。
- 虚连接不能穿越Stub区域。
Stub区域的路由表及3类LSA
R1作为ASBR引入多个外部网段,如果Area 2是普通区域,则R3将向该区域注入5类和4类LSA。当把Area 2配置为Stub区域后:
- R3不会将五类LSA和四类LSA注入Area 2。
- R3向Area 2发送用于描述缺省路由的三类LSA,Area 2内的路由器虽然不知道到达AS外部的具体路由,但是可以通过该默认路由到达AS外部。
11.4 Totally Stub区域
- Totally Stub区域既不允许AS外部路由在本区域内传播,也不允许区域间路由在本区域内传播。
- Totally Stub区域内的路由器通过本区域ABR下发的缺省路由(使用3类LSA描述)到达其他区域,以及AS外部。
- Totally Stub区域访问其他区域及AS外部是通过默认路由实现的。
- AS外部、其他OSPF区域的拓扑及路由变化不会导致Totally Stub区域内的路由器进行路由重计算,减少了设备性能浪费。
当Area 2配置为Totally Stub区域后:
- R3不会将五类LSA和四类LSA注入Area 2。
- R3不会将三类LSA注入Area 2,但是会向该区域注入一条使用三类LSA描述的缺省路由。
- R5通过缺省路由到达AS外部网络和其他OSPF区域。
Stub区域、Totally Stub区域解决了末端区域维护过大LSDB带来的问题,但对于某些特定场景,它们并不是最佳解决方案。接下来还有NSSA、Totally NSSA区域。
11.5 NSSA区域与Totally NSSA区域
Stub区域与Totally Stub区域存在的问题
- OSPF规定Stub区域是不能引入外部路由的,这样可以避免大量外部路由引入造成设备资源消耗。
- 对于既需要引入外部路由又要避免外部路由带来的资源消耗的场景,Stub和Totally Stub区域就不能满足需求了。
NSSA区域与Totally NSSA区域的LSDB