OSPF网络中路由超限问题的分析与解决

2021-07-30 02:38刘松鹤陈相宇杨童斌
通信电源技术 2021年7期
关键词:路由表访问控制列表

叶 俊,刘松鹤,陈相宇,路 杨,杨童斌

(中国电子科技集团公司第十五研究所,北京 100083)

0 引 言

随着计算机网络技术的不断发展,路由器逐渐成为重要的网络设备。路由器围绕路由表进行路径选择和报文转发,可分为直连路由、静态路由以及动态路由[1]。路由协议是路由器之间维护路由表的规则,用于发现路由、生成路由表,并指导报文的转发。常见的路由协议包括RIP、OSPF、EIGRP以及BGP。其中开放式最短路径优先(Open Shortest Path First,OSPF)协议具有众多优势,逐渐成为广域网和企业网中应用最广泛的路由协议之一[2]。网络的规模越大,路由表也就越大。现实网络环境中,路由器的性能问题导致网络设备出现通信异常的情况时有发生。基于此,针对实际使用时网络设备在OSPF网络中出现的路由超限问题,提出了几种解决方案,为类似网络设备在OSPF网络中出现路由超限问题提供了低成本的解决方案。

1 OSPF网络中路由超限问题描述

在实际使用中,出现了终端设备与目的设备通信不稳定或时通时断的现象,故障时的网络拓扑如图1所示。终端通过三层交换机和路由器连接至网络,所有网络设备运行OSPF协议,且都位于区域0。排查故障时发现问题出现在三层交换机上,故障原因为三层交换机运行OSPF路由协议时路由数量达到系统上限,即路由超限。

图1 故障时网络拓扑图

本例中,三层交换机的路由表容量最大值为512条,而通过路由器查看到实际环境中的路由表数量超过1 000条,远超三层交换机路由表容量的最大值。当三层交换机学习到目的设备对应的路由时,交换机正常转发数据包,通信正常。当交换机未学习到对应路由时,通信中断。

2 技术实现

2.1 OSPF路由协议

2.1.1 OSPF路由协议介绍

OSPF路由协议是一种基于链路状态的内部网关协议,它将自治系统划分为一个或多个逻辑区域。同一自治系统内的所有OSPF路由器会通过泛洪的方法来交换链路状态广播(Link State Advertisement,LSA),路由器根据其接收到的LSA报文更新自己的链路状态数据库(Link State Data Base,LSDB),并将该LSA报文转发给与其建立邻接关系的路由器,直至稳定。当LSDB同步完成时,路由器会根据LSDB采用最短路径优先算法(Shortest Path First,SPF)计算出各自的OSPF路由表[3]。

2.1.2 LSA类型

OSPF路由协议共规定了11种LSA,但常见的只有以下6种[4]。一是一类LSA(Router LSA),用于描述路由器的直连链路状态信息,仅在所属区域内传播;二是二类LSA(Network LSA),用于描述本区域内的网络信息及连接到此网络的所有路由器,仅在所属的区域内传播;三是三类LSA(Network summary LSA),用于描述OSPF的区域间路由,由边界路由(Area Border Router,ABR)产生,ABR发送此类LSA到一个区域,用来通告该区域外部的目的地址;四是四类LSA(ASBR summary LSA),由ABR产生,描述到ASBR的路由,通告给与ASBR所在区域的其他相关区域;五是五类LSA(AS external LSA),由自治系统边界路由器(AS Boundary Router,ASBR)产生,描述到自治系统外部的路由,通告到所有的区域;六是七类LSA(NSSA External LSA),由ASBR产生,描述到自治系统外部的路由,仅在非纯末节区域内传播[5]。

2.1.3 区域类型

一般可将区域划分为如下5种。一是普通区域。普通区域包括标准区域和骨干区域。标准区域是最通用的区域,骨干区域是连接所有其他OSPF区域的中央区域。二是末节区域。末节区域不允许发布自治系统外部路由,只允许发布区域内路由和区域间的路由。三是完全末节区域。完全末节区域不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。四是非纯末节区域。非纯末节区域允许引入自治系统外部路由,由ASBR发布七类LSA通告给本区域,这些七类LSA在ABR上转换成五类LSA。五是完全非纯末节区域。完全非纯末节区域允许引入自治系统外部路由,由ASBR发布七类LSA通告给本区域,这些七类LSA在ABR上转换成五类LSA[6]。

2.1.4 路由计算

运行OSPF路由协议的路由器建立邻接关系并完成LSDB同步后,采用SPF算法计算路由。OSPF路由器将LSDB转换成一张带度量的有向图,每台路由器得到的有向图是完全相同的。每台路由器根据有向图,使用SPF算法计算出一棵以自己为根的最短路径优先树,此树给出了到自治系统中各节点的路由[7]。

2.2 访问控制列表与地址前缀列表

访问控制列表本质上是一种报文过滤器,它可以依据报文的源地址、目的地址、端口号、协议类型以及生效时间等对报文进行匹配[8]。访问控制列表是解决网络安全性问题的有效方法之一,是用来过滤和控制进出路由器数据流的一种访问控制技术,可以限制网络流量,提高网络性能,控制通信流量[9]。地址前缀列表也是一种报文过滤器,其作用类似于访问控制列表,但比访问控制列表更为灵活。使用地址前缀列表过滤路由信息时,其匹配对象为路由信息的目的地址信息域[10]。

2.3 技术实现原理及方案

查看图1中路由器的路由表发现,OSPF路由占大多数,其他路由数量很少。因此减少路由器发往交换机的OSPF路由数量即可有效减少交换机的最终路由表数量。通过减少三层交换机接收的LSA数量,可实现其路由表数量的减少。通过分析,本文提出3种实现方案。一是保持原始区域属性不变,直接配置上游路由器。二是将三层交换机由骨干区域移至标准区域,再通过其他方法减少LSA数量。三是将三层交换机由骨干区域移至特殊区域。

按照实际环境搭建图2模拟测试环境。R4配置一个IP地址为4.4.4.4/32的环回口并在OSPF进程中引入直连路由。为了方便描述,三层交换机及路由器在模拟环境中均采用路由器进行替代。

图2 模拟环境

OSPF同步完成后,R1的LSDB信息如图3所示,共包含5类LSA。

图3 R1的LSDB信息

2.3.1 配置例程

(1)保留在骨干区域。保留模拟环境中区域信息不变,减少上游路由器R2下发给R1的LSA,即可减少R1最终路由表的数量。本文给出了基于AR2220E-S型号路由器设备的部分配置例程,供项目实施过程中参考。

R1新增配置为:

R2的GE 0/0/0口配置了ospf filter-lsa-out all命令,此命令可以对OSPF接口出方向的所有LSA进行过滤。

OSPF同步完成后,R1的LSDB信息如图4所示。

图4 保留在骨干区域配置后R1的LSDB信息

此时,R1只剩下1条一类LSA(R1自身发出),同时查看R2~R4的LSDB信息均无变化。由此可知,以上配置成功实现了R1中LSA数量的减少,结果达到预期。因为R1不能正常接收OSPF网络中其他路由器的LSA信息,所以此时R1的路由表中没有其他网段的路由。为了终端及R1能与其他网段正常通信,可以在R1上配置一条缺省路由。配置完成后,模拟环境中所有设备均能互相通信。

(2)移至标准区域。将R1及相连R2接口移至标准区域后,使用过滤器(访问控制列表、地址前缀列表)过滤指定LSA也能实现R1中LSA数量的减少。修改模拟环境,如图5所示。R1的所有接口及R2的GE 0/0/0口移至区域2,其他保持不变。

图5 模拟环境(标准区域)

OSPF同步完成后,R1的LSDB信息如图6所示,共包含5类LSA。

图6 移至标准区域后R1的LSDB信息

以下介绍通过配置访问控制列表控制引入LSA的方式来减少上游路由器R2发出的LSA数量。

R1新增配置为:

在R2中创建一条访问控制列表,过滤规则为拒绝所有源地址的报文,并通过filter import命令将此规则应用在区域2中,用来对区域内入方向的三类LSA进行过滤。区域2为新建区域,区域内只存在极少量一类及二类LSA,有一条通往自治系统外部的四类LSA,没有五类LSA。

OSPF同步完成后,R1的LSDB信息如图7所示。

图7 R1的LSDB信息(ACL方式)

通过图7可以发现,R1中三类LSA数量变为0,LSA的总数量明显减少。此方法与保留在骨干区域方法一样,需要在R1上配置一条缺省路由才能保证测试环境中所有设备互相通信。此外,通过配置地址前缀列表并将其应用在区域中的方法也可以控制区域引入的LSA数量。配置方法与配置访问控制列表方法类似,最终结果也与其相同。

(3)移至特殊区域。特殊区域能够屏蔽部分LSA,故将目标路由器R1移至特殊区域也能实现LSA数量的减少。完全末节区域不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。按照图5的拓扑,将区域2的类型由标准区域修改为完全末节区域可以减少LSA数量。

OSPF同步完成后,R1的LSDB信息如图8所示。

图8 R1的LSDB信息(Totally STUB区域)

通过上图可以发现,R1中LSA的总数量明显减少。四类及五类LSA数量均为0,同时路由器学习到1条三类的缺省LSA,不存在其他三类LSA。因为存在缺省LSA,故此方法无需在R1中额外配置一条缺省路由。

通过配置完全非纯末节区域的方法同样也能减少R1的LSA数量。配置完成后,除新增了1条三类的缺省LSA外还新增了1条七类的缺省LSA,其他结果与配置完全末节区域方式相同。

2.3.2 各方案比较

以上方案均能实现目标路由器LSA数量的减少,即能实现最终路由表数量的减少,解决路由超限问题,并且不影响上游路由器正常学习目标路由器网段的路由,但各方案在使用中有所区别。

保留在骨干区域的方案是最简单有效的,只需要在上游路由器中配置相关命令,即可实现目标路由器LSA的显著降低,二类、三类、四类、五类这4类LSA均减为0。但在实际环境中部分厂商的路由器不支持类似命令,只能通过其他方案才能解决路由超限问题。

移至标准区域的方案是将路由器移至标准区域后,再通过配置过滤器(访问控制列表或地址前缀列表)的方式对区域内入方向的三类LSA进行过滤来实现LSA数量的减少。因为新建区域中占大多数的是三类LSA,故其也能解决路由超限问题。配置过滤器时,可以实现全部过滤或部分过滤,灵活性较好。实际环境中,各厂商路由器均支持相关配置命令,故本方案为普适性最好的方案。

移至特殊区域的方案同样也能解决路由超限问题,但完全末节区域不支持三类、四类、五类及七类等LSA,完全非纯末节区域不支持三类、四类及五类等LSA。因此在实际环境中,此方案可能会与某些实际需求冲突。

在某些应用环境中,也可通过将目标路由器移至特殊区域与过滤器相结合的方式来解决特定环境下的问题。

3 结 论

随着网络发展规模越来越大,网络设备中路由表的数量也在迅速增加。OSPF路由协议作为目前广域网和企业网中应用最广泛的路由协议之一,运行该协议的网络设备数量也在增加。通过分析OSPF路由协议的原理,提出了多种解决性能低下网络设备在OSPF网络中存在路由超限问题的解决方案,并比较了各方案的优缺点。利用上游路由器来解决目标路由器或三层交换机路由超限问题,实现了某些运行OSPF路由协议场景下的低成本且使用灵活的解决方案,具有一定的指导意义。

猜你喜欢
路由表访问控制列表
一种跨策略域的林业资源访问控制模型设计
学习运用列表法
扩列吧
内外网隔离中ACL技术的运用
一种无线自组网通信协议设计
云计算访问控制技术研究综述
列表画树状图各有所长
2011年《小说月刊》转载列表
IP 路由技术与RIP 协议探析
访问控制机制在数据库中的应用研究