OSPF故障排查,这10大技巧是个网工都在用!

中午好,我的网工朋友。

OSPF这个名词网工们都不陌生吧。

OSPF,即开放式最短路径优先(Open Shortest Path First,OSPF)是广泛使用的一种动态路由协议。

它属于链路状态路由协议,具有路由变化收敛速度快、无路由环路、支持变长子网掩码(VLSM)和汇总、层次区域划分等优点。

在网络中使用OSPF协议后,大部分路由将由OSPF协议自行计算和生成,无须网络管理员人工配置,而当网络拓扑发生变化时,协议可以自动计算、更正路由,极大地方便了网络管理。

但如果有些网工朋友在使用时不结合具体网络应用环境不做好细致的规划,OSPF协议的使用效果会大打折扣,甚至引发故障

OSPF路由问题,需要排查的地方较多,今天就帮大家梳理一个清晰的OSPF排查思路,以后可以直接用起来。

今日文章阅读福利:《 OSPF经典学习笔记(62页) 

私信我,发送暗号“学习笔记”,即可获得老网工珍藏的OSPF经典学习笔记一份。

01 为什么需要OSPF?

在OSPF出现前,网络上广泛使用RIP(Routing Information Protocol)作为内部网关协议。

由于RIP是基于距离矢量算法的路由协议,存在着收敛慢、路由环路、可扩展性差等问题,所以逐渐被OSPF取代。

OSPF作为基于链路状态的协议,能够解决RIP所面临的诸多问题。此外, OSPF还有以下优点

✔ OSPF采用组播形式收发报文,这样可以减少对其它不运行OSPF路由器的影响。

✔ OSPF支持无类型域间选路(CIDR)。

✔ OSPF支持对等价路由进行负载分担。

✔ OSPF支持报文加密。

由于OSPF具有以上优势,使得OSPF作为优秀的内部网关协议被快速接收并广泛使用。

02 原理及处理过程

01 路由器类型

先讲一下OSPF协议中常用到的路由器类型,如图所示

表 路由器类型

路由器类型含义
区域内路由器(Internal Router)该类设备的所有接口都属于同一个OSPF区域。
区域边界路由器ABR(Area Border Router)该类设备可以同时属于两个以上的区域,但其中一个必须是骨干区域。ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。
骨干路由器(Backbone Router)该类设备至少有一个接口属于骨干区域。所有的ABR和位于Area0的内部设备都是骨干路由器。
自治系统边界路由器ASBR(AS Boundary Router)与其他AS交换路由信息的设备称为ASBR。ASBR并不一定位于AS的边界,它可能是区域内设备,也可能是ABR。只要一台OSPF设备引入了外部路由的信息,它就成为ASBR。

02 路由类型

AS区域内和区域间路由描述的是AS内部的网络结构,AS外部路由则描述了应该如何选择到AS以外目的地址的路由。

OSPF将引入的AS外部路由分为Type1Type2两类。

如下表中按优先级从高到低顺序列出了路由类型。

表 路由类型

路由类型含义
Intra Area区域内路由。
Inter Area区域间路由。
第一类外部路由(Type1 External)这类路由的可信程度高一些,所以计算出的外部路由的开销与自治系统内部的路由开销是相当的,并且和OSPF自身路由的开销具有可比性。到第一类外部路由的开销=本设备到相应的ASBR的开销+ASBR到该路由目的地址的开销。
第二类外部路由(Type2 External)这类路由的可信度比较低,所以OSPF协议认为从ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销。所以,OSPF计算路由开销时只考虑ASBR到自治系统之外的开销,即到第二类外部路由的开销=ASBR到该路由目的地址的开销。

03 OSPF是如何工作的?

OSPF协议路由的计算过程可简单描述如下:建立邻接关系和路由计算。

1.建立邻接关系

它的过程如下

本端设备通过接口向外发送Hello报文与对端设备建立邻居关系

两端设备进行主/从关系协商DD报文交换

两端设备通过更新LSA完成链路数据库LSDB的同步

此时,邻接关系建立成功

2.路由计算

OSPF采用SPF(Shortest Path First)算法计算路由,可以达到路由快速收敛的目的。

好了,了解完这些基础技术后,我们回到OSPF的故障处理来,首先根据多年工作经验,整理出如下故障排查流程图 :

由于OSPF路由正确的加入到全局路由表,依赖于正确的OSPF路由计算,而OSPF计算路由依赖于正确的OSPF LSDB数据库信息,要建立正确的OSPF LSDB数据库则首先要确保邻居之间能够形成正确的邻接关系。

因此OSPF路由问题的排查整体思路技巧为 :

  • 首先检查OSPF邻居关系
  • 然后检查OSPF LSDB数据库信息
  • 最后检查全局路由表

03 10大解决方案

具体排查如下:

01 OSPF邻居状态

查看两端OSPF邻居状态是否正常,正常情况下DRother之间的邻居关系应该稳定在2-way状态,非DRother之间的邻居关系应该稳定在Full状态

命令:display ospf peer x.x.x.x

例如:通过命令查看,可以确认OSPF的邻居状态是否正常。

02 是否加入OSPF路由表

查看OSPF路由表中是否存在相应路由

命令:display ospf routing x.x.x.x

例如:查看外部路由9.9.9.9是否加入ospf路由表

03 接口使能OSPF及邻居参数是否匹配

1.操作步骤

第一步 确认接口启动OSPF

OSPF的运行是基于设备接口的,如果OSPF没有在接口启动,那么邻居关系肯定无法形成。

在接口上启用OSPF是通过Area视图下的network命令实现的,必须确保network中的网络范围包括需要启动OSPF的接口地址

命令:display ospf interface

例如:通过命令查看接口是否启动OSPF

第二步 确认邻居两端OSPF参数匹配

命令:display ospf error

例如:通过命令查看邻居两端OSPF参数匹配

2.反复使用以上命令显示,对应错误数增加则存在问题相应的参数匹配问题

常见几种错误如下:

(1)OSPF区域配置是否匹配

启动OSPF的接口属于某个区域,同时区域有多种类型,区域依靠区域ID进行标识,如果两边的区域类型或区域ID不匹配,则不会形成邻居关系。

(2)OSPF验证配置是否匹配

OSPF支持报文验证功能,验证分为简单验证MD5验证两种类型,如果两边验证类型或密钥配置不同,则OSPF无法通过验证,邻居关系无法形成。

(3)两端OSPF接口上计时器设定值是否匹配

OSPF通过周期性的交互Hello报文维系邻居关系,Hello报文中携带了Hello报文的发送间隔计时器及邻居失效计时器

如果这些计时器的值在两边的Hello报文中不匹配,那么OSPF的邻居关系无法形成。注意dead timer的值至少应为hello timer值的4倍。

(4)两端OSPF接口类型是否匹配

OSPF邻居关系的正常建立需要确保邻居两端接口的OSPF网络类型一致,否则将无法形成邻居关系。

需要说明的是若邻居双方一端设置为P2P类型另一端设置为广播类型,那么邻居状态可以达到FULL状态,但此时无法计算出路由信息

(5)广播网络中两端接口子网掩码是否相同

OSPF Hello报文中携带子网掩码信息。在广播网络中,如果两端接口属于不同的IP子网,那么邻居关系无法形成。

(6)NBMA网络是否指定邻居

OSPF网络类型为NBMA时必须手工指定邻居的IP地址,否则端口无法发送Hello报文,无法形成邻居关系。

命令:

display current-configuration interface

display current-configuration configuration ospf

例如:通过命令查看接口下的OSPF参数设置是否一致。

04 是否使能静默端口

当接口在OSPF协议视图中被设置为静默端口时,它将不能发送OSPF Hello报文,因此OSPF邻居关系无法形成

命令:

display current-configuration configuration ospf

例如:通过命令查看接口正确启动OSPF并设置为非静默端口,下例中配置了静默端口

05 全局路由表是否正确

查看OSPF路由是否正确加入到全局路由表内,只有加入到全局路由表的路由才能指导数据包的转发。

如果相同的路由信息同时也从其他路由协议学到,为了确保OSPF学习的路由能够最终加入全局路由表,需要确保其优先级为最优

命令:

display ip routing-table x.x.x.x verbose

06 路由信息是否正确发布

若查看OSPF路由表未发现相应路由信息,请首先确认路由信息是否在OSPF中正确发布,对于未进行发布的路由请修改配置将路由正确发布

命令:

display current-configuration configuration ospf

例如:查看10.1.145.4/24的路由信息是否在OSPF中发布

07 确认LSA信息正确

确认OSPF LSDB数据库中是否存在路由计算所需的正确LSA信息。

对于区域内的路由需要检查是否存在该路由始发者的Router LSA,DR的Network LSA(广播网络);

对于区域间的路由需要首先检查是否存在LS ID为该网段的Summary LSA,然后检查是否存在该Summary LSA所对应Adv Rtr的Router LSA

如果外部路由是通过区域内学习到的,需要首先检查是否存在LS ID为该网段的ASE LSA,然后检查是否存在该ASE LSA中所对应Adv Rtr的Router LSA

如果外部路由是通过区域间学到的那么首先检查对应的ASE LSA,然后检查是否存在该ASE LSA所对应Adv Rtr的Asbr Sumarry LSA,最后检查该Asbr Summary LSA所对应Adv Rtr的Router LSA

命令:

display ospf lsdb router

display ospf lsdb network

display ospf lsdb summary

display ospf lsdb asbr

display ospf lsdb ase

例如:通过命令查看外部路由9.9.9.9相关的LSA信息。

例如:通过命令查看区域内路由10.1.145.0/24相关的LSA信息

例如:通过命令查看区域间路由10.1.35.0/24相关的LSA信息

导致OSPF数据库中LSA异常或缺失的原因主要包括如下几种情况,需要从相关的配置或规划角度进行修正:

1. 骨干区域被分割,导致LSA缺失

2. 虚连接配置错误,导致LSA缺失

3. RouterID冲突,导致LSA震荡

08 外部路由FA地址确认

若外部路由携带FA地址确认FA路由为有效路由。

OSPF必须能够通过区域内或区域间路由到达该FA地址,否则该外部路由不会加入OSPF路由表。

例如:外部路由172.1.40.0携带了FA地址为10.1.4.4,通过OSPF内部路由能够学习到10.1.4.4的路由,外部路由172.1.40.0正确加入路由表

09 确认路由过滤策略

排查路由策略过滤路由的配置是否正确。

<HUAWEI> display route-policy policy1Route-policy : policy1  permit : 10 (matched counts: 0)    Match clauses :        if-match acl 2000    Apply clauses :        apply cost 100        apply tag 100

10 确认OSPF路由优先级

查看OSPF的路由优先级

整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

  • 17
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值