链路状态路由协议-OSPF

开放式最短路径优先OSPF(Open Shortest Path First)协议是IETF定义的一种基于链路状态的内部网关路由协议。

一 OSPF介绍

OSPF是一种先进的链路状态路由协议,其设计机制从根本上杜绝了路由环路的发生。该协议通过以下方式确保网络稳定性:

  1. 区域化架构设计:

采用层次化区域划分结构

区域内使用SPF最短路径算法确保无环路

严格的区域间连接规则防止跨区域环路

  1. 高效的拓扑更新机制:

支持触发式更新

快速检测并传播网络拓扑变化

确保路由信息及时同步

  1. 优秀的扩展能力:

区域划分有效控制路由信息流量

支持大规模网络部署

可与MPLS等协议协同工作,扩展广域覆盖

  1. 完善的安全特性:

提供路由器间报文认证机制

确保路由信息交换的安全性

二 工作原理

OSPF协议要求网络中所有运行该协议的路由器掌握完整的链路状态信息,以便计算最优路径。其收敛流程如下:

  1. 首先通过LSA(链路状态通告)泛洪机制,路由器会广播包含其接口IP、掩码、开销和网络类型等关键信息的LSA报文

  2. 各路由器接收到LSA后,会据此构建自己的LSDB(链路状态数据库)

  3. 基于完整的LSDB,路由器使用SPF算法进行计算,生成以自身为根的最短路径树

  4. 最终,根据最短路径树计算出最优路由,并将这些路由条目更新到IP路由表中

三 OSPF五种报文类型

OSPF直接运行在IP协议之上,使用IP协议号89。 OSPF有五种报文类型,每种报文都使用相同的OSPF报文头。

  1. Hello报文:最常用的一种报文,用于发现、维护邻居关系。并在广播和NBMA(None-Broadcast Multi-Access)类型的网络中选举指定路由器DR(Designated Router)和备份指定路由器BDR(Backup Designated Router)。

  2. DD报文:两台路由器进行LSDB数据库同步时,用DD报文来描述自己的LSDB。DD报文的内容包括LSDB中每一条LSA的头部(LSA的头部可以唯一标识一条LSA)。LSA头部只占一条LSA的整个数据量的一小部分,所以,这样就可以减少路由器之间的协议报文流量。

  3. LSR报文:两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地LSDB所缺少的,这时需要发送LSR报文向对方请求缺少的LSA,LSR只包含了所需要的LSA的摘要信息。

  4. LSU报文:用来向对端路由器发送所需要的LSA。

  5. LSACK报文:用来对接收到的LSU报文进行确认。

四 邻居和邻接关系建立的过程

1. Down:这是邻居的初始状态,表示没有从邻居收到任何信息。

2. Attempt:此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,发送间隔为HelloInterval。如果RouterDeadInterval间隔内未收到邻居的Hello报文,则转为Down状态。

3. Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,尚未与邻居建立双向通信关系。

4. 2-Way:在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。

5. ExStart:这是形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向邻居发送DD报文。主从关系是在此状态下形成的,初始DD序列号也是在此状态下决定的。在此状态下发送的DD报文不包含链路状态描述。

6. Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD报文,描述本地LSDB的内容。

7. Loading:相互发送LSR报文请求LSA,发送LSU报文通告LSA。

8. Full:路由器的LSDB已经同步。

五 Hello报文

OSPF的邻居发现过程是基于Hello报文来实现的,Hello报文中的重要字段解释如下:

1. Network Mask:发送Hello报文的接口的网络掩码。

2. HelloInterval:发送Hello报文的时间间隔,单位为秒。

3. Options:标识发送此报文的OSPF路由器所支持的可选功能。具体的可选功能已超出这里的讨论范围。

4. Router Priority :发送Hello报文的接口的Router Priority,用于选举DR和BDR。 5. RouterDeadInterval:失效时间。如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效;单位为秒,通常为四倍HelloInterval。

6. Designated Router:发送Hello报文的路由器所选举出的DR的IP地址。如果设置为0.0.0.0,表示未选举DR路由器。

7. Backup Designated Router:发送Hello报文的路由器所选举出的BDR的IP地址。如果设置为0.0.0.0,表示未选举BDR。

8. Neighbor:邻居的Router ID列表,表示本路由器已经从这些邻居收到了合法的Hello报文。

六 配置命令

华为设备OSPF配置与实战指南

相关推荐
苦学编程的谢32 分钟前
Java网络编程API 1
java·开发语言·网络
alien爱吃蛋挞44 分钟前
【JavaEE】万字详解HTTP协议
网络·网络协议·http
vortex53 小时前
浅谈 Linux 防火墙:从原理到实践
linux·网络·php
leona_nuaa3 小时前
关于udp——mqtt运行注意事项
网络·网络协议·udp
hgdlip4 小时前
手机上网可以固定ip地址吗?详细解析
网络·tcp/ip·智能手机
GISer_Jing4 小时前
XHR / Fetch / Axios 请求的取消请求与请求重试
前端·javascript·网络
Likeadust4 小时前
视频汇聚平台EasyCVR“明厨亮灶”方案筑牢旅游景区餐饮安全品质防线
网络·人工智能·音视频
光电的一只菜鸡5 小时前
Wireshark使用教程(含安装包和安装教程)
网络·测试工具·wireshark
领世达检测V133529092496 小时前
【联网玩具】EN 18031欧盟网络安全认证
网络·en 18031
靡樊6 小时前
Socket编程UDP\TCP
网络·c++·学习·tcp/ip·udp