下午好,我的网工朋友。
搞网络这个技术点你懂多少?开放最短路径优先(OSPF)协议,以其高效的路由选择和强大的网络管理能力,成为了互联网工程中的核心技术之一。
OSPF作为一种动态的路由协议,能够自动适应网络结构的变化,确保数据包通过最短路径传输,从而优化网络性能和可靠性。
当然,OSPF这玩意儿确实很复杂,好多老网工也都还是一知半解。
所以深入理解OSPF的工作原理,掌握其状态机、报文、LSA以及区域类型等核心概念,基本上属于是每位网工必备的技能了。
今天就给你对这些知识点进行一个深入剖析,让你知道如何更好地设计、部署和维护OSPF网络。
今日文章阅读福利:《 OSPF网络设计解决方案 》
作为网络基础,了解它是你入门精进的第一步。私信我,发送暗号“方案”,即可获取此份OSPF经典读物。
01 OSPF简介
OSPF开放式最短路径优先。工作在IP层之上,协议号为89,OSPF以组播方式发送协议包,使用SPF最短路径优先算法计算和选择路由。
工作过程可分为:建立邻居---同步链路状态---计算路由三个阶段。
其中会有八种状态机的改变,五个报文的产生、十类LSA(这里我们只讲其中六个)以及五个不同区域。形成三张表(邻居表、拓扑表、路由表)。
LSDB:数据库,设备所有的链路信息集合,由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才能发布。
整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部