不懂这七个技术点?别说你真的懂OSPF!

72 阅读7分钟

大家好,这里是G-LAB IT实验室。身为网络工程师,你对于OSPF协议的了解有多少呢?

OSPF,这一开放最短路径优先的路由协议,凭借着其出色的路由选择能力和网络管理能力,已然成为了互联网工程领域的关键技术。

作为一款动态路由协议,OSPF能够灵活适应网络拓扑的变动,确保数据包始终沿着最短路径传输,从而优化网络的整体性能和稳定性。

当然,OSPF协议的复杂性也是不容忽视的,即使是经验丰富的网络工程师也可能只对其了解皮毛。

因此,深入掌握OSPF的工作原理,包括其状态机、报文格式、链路状态通告(LSA)以及区域类型等核心要素,对于每位网络工程师来说,都是不可或缺的技能。

01、OSPF简介

OSPF,即开放式最短路径优先协议,它在IP层之上运行,协议编号为89。该协议使用组播方式发送数据包,并通过SPF(最短路径优先)算法来计算和选择最佳路由。

工作过程可分为: 建立邻居---同步链路状态---计算路由三个阶段。首先是建立邻居关系,确保网络中的设备能够相互识别和通信;其次是同步链路状态,使设备了解整个网络的拓扑结构;最后是计算路由,基于收集到的链路状态信息,使用SPF算法确定最优路径。

在OSPF的工作过程中,会涉及到八种不同的状态机转变五种关键报文的生成,以及十类链路状态通告(LSA) 。尽管有十类LSA,但在此我们只重点讨论其中的六类。此外,OSPF还定义了五个不同的区域类型,这些区域类型有助于划分和管理网络。

LSDB: 即链路状态数据库,是一个集合,它存储了设备所知的所有链路状态信息。这些信息由LSA组成,每一条LSA都包含了关于某个链路的状态信息。

LSA: 一条链路信息,多个可以组成LSDB数据库。

02、OSPF工作过程

01建立邻居

以两个直连路由器为例,两台路由器开始时他们的状态为Down,R1开始发送第一个带有自己信息的Hello包。

当R2接收到R1的Hello包时发现没有自己的路由信息,此时R2的状态转变为Init,此时R2发送携带自己路由信息和R1信息的Hello包。

R1接收到后发现上面有自己的路由,状态转变为2-way后再向R2发送最后一个Hello包, 携带自己和R2的路由信息。

当R2收到后也将自己的状态转换为2-way。

02同步链路状态

邻居建立完成后。状态从2-way转换为EX-start。 开始发送DBD报文建立主从关系。RID大的为主否则为从。

随后从的状态转变为exchange,向主发送一个携带拓扑描述信息的DBD报文,主收到后状态转换为exchange,并向从发送携带拓扑的DBD报文,从回复DBD做确认。

03计算路由

当同步链路状态最后一个DBD发送后。R1状态从exchange变为loading,发送LSR请求完整拓扑信息LSA,对方R2收到消息后状态也变为loading,并发送LSU携带LSA信息回应R1的请求。

R1收到后回复确认,通过多个LSR和LSU的交换,两个路由器的LSDB数据库同步完毕。 形成拓扑表,这个过程中使用SPF算法计算出路由表。

04状态机总结

03、邻居关系的状态

01 Down

邻居会话初始阶段,在邻居失效时间内未收到邻居路由的Hello数据包。

02 Attempt

没有收到邻居的任何信息,但是已经周期性向邻居发送报文,发送间隔HelloInterval

03 Init

从邻居收到hello报文,但报文中并没有自己的Router-id。

04 2-way

收到的Hello表中有自己的Router-id。

04、邻接关系的状态

01 Exstart

开始协商主从关系,并确定DD的序列号。

02 Exchange

主从关系协商完成,交换DD报文(携带自己LSDB中的LSA)。

03 loading

使用LSR请求自己所需LSA信,LSU携带LSA信息对LSR做应答,LSack对LSU做确认。

05、OSPF报文

01 Hello

建立和维护OSPF邻居关系。

02 DBD

在Exstart时协商主从关系,并确定DD的序列号链路状态数据库描述信息,(LSDB数据库中的LSA头部列表)

03 LSR

链路状态请求,向OSPF邻居请求链路状态信息请求发送所需的LSA头部标识。

04 LSU

链路状态更新。主动时(在路由信息或拓扑信息发生变化时)。被动时(针对缺少详细LSA信息进行回应,携带详细的LSA信息)。周期更新,防止LSA老化。

05 LSAck

对LSU中LSA进行确认的报文。

06、六类LSA类型

01 Router-LSA(Type1)

每个设备都会产生,描述设备的链路状态和开销,在所属区域内传播

02 Network-LSA(Type2)

由DR产生,描述本网段的链路状态,在所属的区域内传播。

03 Network-summery-LSA(Type3)

由ABR产生,描述该区域内某个网段的路由,并通告给发布或接收此LSA的非Totally STUB或NSSA区域。

04 ASBR-summary-LSA(Type4)

由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。

05 AS-external-LSA(Type5)

由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了STUB区域和NSSA区域)。

06 NSSA LSA(Type7)

由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。

07、OSPF五个区域

01 普通区域

缺省情况下,OSPF区域被定为普通区域。普通区域包括标准区域和骨干区域。

1.标准区域是最通用的区域。 他传输区域内路由,区域间路由和外部路由。

2.骨干区域是连接所有其他OSPF区域的中央区域。 骨干区域通常用Area 0 表示。

02 STUB区域

不允许发布自治系统外部路由,只允许发送区域内路由和区域间路由。

为了保证自治系统外路由可达,由该区域ABR发布Type3缺省路由传播到区域内。

03 Totally STUB区域

不允许发布自治系统外部路由和区域间路由,只允许发布区域间路由。

为了保证自治系统和其他区域路由可达由该区域的ABR发布Type3缺省路由传播到区域内,所有自治系统外部和其他区域路由都必须经过ABR才能发布。

04 NSSA区域

允许引入自治系统外部路由。由ASBR发布Type7给本区域。 Type7在ABR上转换为Type5并泛洪到整个OSPF域中。所有域都必须通过ABR才能发布。

05 Totally NSSA区域

允许引入自治系统外部路由。由SABR发布Type7给本区域。在ABR上转换成Type5并泛洪到整个OSPF域。

该区域的ABR发布Type3和Type7缺省路由传播到区域内。所有域间路由必须通过ABR才能发布。

关注 工 仲 好:IT运维大本营 ,获取60个G的《网工系统大礼包》

最近新开课程(线上+线下):华为HCIP、思科CCNP、红帽RHCE、OpenShift;

更多课程可私信留言💥