OSPF 的基本原理弄懂之后,就需要更深入一些的了解,OSPF 的特殊区域是作用于不同特殊场景所扩展出来的,在《OSPF 基本原理》有简单提过一些,现在针对于特殊区域所进行展开讲解。
六种 LSA:
讲特殊区域之前需要先了解 OSPF 路由协议中的各种链路信息,不同类型的链路信息所对应的来源也不同。LSA 可以在设备中使用 dis ospf lsdb 查看到对应的 LSDB 库的信息,其中会标识那一条路由条目对应是几类 LSA 的相关信息。 如下图简单做了一个 OSPF 的不同区域的实验,后续会根据这个实验为原型来修改不同区域属性来理解 OSPF 协议的不同特殊区域的特性。有基础的同学可以照着图示,把实验配置好,然后再来跟着理解,效果翻倍。 配置思路: 1、各个设备的对应接口配置 IP 地址,每个配置完成了记得 ping 一下直连设备测试是否正确。 2、配置 OSPF 进程并手动指定 Router-id 。便于通过 Router-id 来确定邻居设备信息。 3、配置区域号,并在区域号下宣告直连 IP 网段信息,建议设备环回口地址优选宣告进骨干区域。 4、上述配置完成后,等待5s-10s完成邻接建立,LSDB 数据库同步,后可以查看到对应设备邻接关系,且 LSDB 库完整信息。 全部都配置完成后,可以通过 dis ospf peer 查看到邻居信息;这个就是配置成功了。其他相关配置命令大家可以自行百度一下即可。
R1:dis ospf peer: dis ospf lsdb:
接下来就开始讲解 LSA 的类别,以及起具体在 OSPF 中起什么作用。
Router-LSA(Type1)
简称 LSA1 在 LSDB 库内会显示为 Type:Router 。每个设备都会产生,描述了设备的直连的链路状态和开销,仅在所属的区域内部泛洪。
Netwrok-LSA(Type2)
简称 LSA2 在 LSDB 库内会显示为 Type:Network 。由 DR 设备产生,描述了 MA 网络的链路状态,区域内的广播网络链路的路由器以及掩码信息,仅在所属区域内泛洪(P2P网络类型是没有该路由的)
Network-Summary-LSA(Type3)
简称 LSA3 在 LSDB 库内会显示为 Type:Sum-Net 。区域内某个网段的路由 ABR 所产生 LSA3 的路由类型,发送给其他区域,仅在区域间传递。
ASBR-Summary-LSA(Type4)
简称 LSA4 由 ASBR 设备所产生,就是区域内到达 ASBR 的相关路由信息,ASBR 会通告可以经过他来去往外部自治区。
AS-external-LSA(Type5)
简称 LSA5 由 ASBR 产生,是通告外部自治区的相关路由信息,这里和 LSA4 存在一定的区别,LSA4 是区域内到达 ASBR 的路由信息吗,LSA5 的路由信息是外部自治区域的路由信息,可以泛洪到所有区别。
NSSA LSA(Type7)
简称 LSA7 看名字就知道是 NSSA 区域产生的路由信息了,由 ASBR 所产生到外部自治区域的路由,仅在 NSSA 区域传递。
特殊区域:
OSPF 协议中一共有 4 种特殊区域,分别是 Stub 区域、Totally Stub 区域、NSSA 区域、 Totally NSSA区域,每种区域对应不同的特殊场景。
Stub 区域
末梢区域(Stub)即配置的区域在整个 OSPF 协议中属于末端的区域,其区域的路由器性能较低,不接收大量的外部路由信息,也就是不接收 LSA4类、LSA5类的路由信息。这时 Stub 区域会没有其他区域的路由,理论上来说是无法跟外部区域进行通信的,这里 ABR 会再下发一条默路由的动作来解决这个问题。通过 ABR 下发一条默认路由到 Stub 区域。
根据上述实验,把 Area 2 区域修改为 Stub 区域,然后再次查看 R4 上可以看见多了一条去往 R1 的默认路由。 R4:dis ip routing
Totally Stub 区域
完全末梢区域(Totally Stub)即结合 Stub 区域来说,他是 Stub 区域的一种变体,自身不接收区域间的路由条目,也就是 LSA3 类不接收,区域内的路由条目汇总的更少了,避免了路由器更多繁琐的路由计算,当本机需要选寻找对应的路由时,会按照路由的递归查询,直接转发给区域 ABR 由 ABR 去寻找最终路径,对于区域内部的设备,大家只需要知道,去往自己不知道的路由条目,全都去找 ABR 设备就行了。并且可以看见区域间的路由都被过滤掉了。
根据上述实验把 Area2 区域配置成 totally stub 区域后可以查看路由条目有变化,其他区域间的路由全都汇总成为一条出口默认路由。 R4 :dis ip routing
NSSA 区域
非纯末梢区域(NSSA)他是基于 Stub 区域之上,对应自身区域不接收其他区域 LSA4类、LSA5 类路由,但是自己区域又有其他自治区域的路由条目引入,这个时候外来引入的路由会变成 LSA7 类路由下发给其他区域。
这里在 R4 旁再加一个 R5 路由器,和 R4 建立一个 RIP 邻居,并在 R4 上把 RIP 路由给引入到 OSPF 来模拟其他自治区域的路由引入。在 R3 上可以查看到多了条 LSA7 类路由条目,并且在 R4 上可以看见有一条默认路由指向 R1 。 组网环境: 按照配置步骤把上述环境配置完成。在 R3 上查看对应路由条目。 R3:dis ospf lsdb R4:dis ip routing
Totally NSSA 区域
完全非纯末梢区域(Totally NSSA)举一反三,这个就是上述 Totally Stub 的升级版本,基本特性不变,也是本身会有外部路由的引入,本身不接收 LSA3类、LSA4类、LSA5类路由。比对 NSSA 区域的话,可以看见 Totally NSSA 区域的路由表会减少区域间的路由条目。
修改 Area2 区域为 Totally NSSA 区域,然后再 R4 上查看本机 OSPF 的 LSDB 库的路由信息条目,会发现区域间的路由条目都汇总成了一个默认路由指向 R1 。 R4:dis ospf lsdb
总结:
四种特殊区域,这个在面试的过程我想,面试官应该都会去问你,按照本文内容,结合实验一个个去配置,我想应该对这个区域会有极深的认识。这种特殊区域,其实都是会和路由聚合、路由过滤等功能挂钩,这一功能的目的就是简化路由表的条目,其实按照 OSPF 链路状态协议学习的路由,会有很多理论上来说的重复路由,例如 PC2 去往 PC1 ,实际上 R4 会有沿途所有设备的路由条目,但实际上他只需要把数据包发给 R1 即可,PC2 去访问 R2 访问 R3 这些,对于 R4 来说其实动作都是一样,直接丢给 R1 就可以了,减少了路由条目的数量,加快了路由转发的能力。所以在一些特定场景下,原则上不影响业务的情况下,还是需要尽可能的简化路由表的条目数量。