0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是OSPF?OSPF的工作流程概述

冬至子 来源:摸鱼网工的私塾 作者:Magic清凨 2023-05-24 10:45 次阅读

什么是OSPF

OSPF(OPen Shortest Path First)开放最短路径优先,由IETF开发的基于链路状态的自治系统内部路由协议(IGP)采用Dijkstra的最短路径优先算法来计算和选择路由。

该协议关注网络中链路或者接口的状态、带宽、利用率、延时等。使用SPF算法计算和选择路由,OSPF 将协议包直接封装在 IP 包中,协议号 89。并且OSPF以组播形式发送协议报文,减少链路带宽资源浪费。

OSPF的工作流程概述

图片

工作流程主要有四个阶段:

寻找邻居建立邻接关系链路状态信息传递计算路由

寻找邻居

在网络中寻找可能与自己交换链路状态信息的周边路由器,可以交换链路状态信息的路由器互为邻居(Neighbor)

建立邻接关系

邻接关系(Adjacency)可以抽象的想象成一条虚拟的链路,用于邻居路由器之间传递链路状态信息,且只有建立了邻接关系才能传递

链路状态信息传递

OSPF路由器将建立描述网络链路状态的LSA(Link State Advertisement - 链路状态公告),建立邻接关系的OSPF路由器之间将交互LSA,最终形成包含整个网络完整链路状态信息的LSDB(Link State DataBase)链路状态数据库

计算路由

获取完整的LSDB过后,OSPF区域内的每个路由器将会对着区域的网络结构有相同的认识,如何根据LSDB的信息,运用SPF算法计算出路由,且避环路的产生。

如何建立邻居关系

图片

OSPF进程启动后,以224.0.0.5进行组播发送Hello包,用以寻找邻居, Hello包里面包含了:

始发路由器的Router-id
始发路由器接口的区域ID(Area ID)
始发路由器接口的子网掩码
选定的DR路由器
路由器的优先级
等信息

其中建立邻居关系的前提是:双方接口UP``双方接口IP地址在同一网段``双方接口在同一区域一台路由器可以有很多邻居,也可以同时成为几台或者其他的路由器邻居,所有的信息都会存在邻居表内。 通过互收Hello包,将状态转换为Init状态,之后两边Hello包内协商某些参数后,才能确定为邻居,状态修改为2-Way当双方链路状态信息交互成功后,邻居状态修改为Full,就表明邻居之间链路状态信息已经同步

Init:
初始化[收到了对方的Hello报文,但Hello报文中的邻居字段没有本机的Router-ID]
2-Way:
邻居关系[双方互相发现,收到了对方的Hello报文,并且报文中包含了乙方路由的Router-ID,并且确认了DR/BDR的角色关系]

BR与BDR选举

图片

在未选举BR与BDR的状态下,链路中的邻接关系将变得非常巨大,消耗巨大的网络资源,可以由上图公式可算得网络内邻接关系的数量,为了解决这个问题,在OSPF引入了DR与BDR的概念。

图片

本意是在网络中选举一台DR(Designated Router)指定路由器负责描述用LSA描述该网络类型以及网络内其他路由器,同时,他们也负责链路状态信息交互过程。 同样在选举DR的同时也在选举BDR(Backup Designated Riyter)指定备份路由器简单的说就是DR的备份,DR挂了就由他顶上,提升了可靠性

选举规则

首先优先级数字大的优先选择,默认优先级都是1

再接着是Router-id大的优先

Router-id

用来表述路由器的身份,产生的方法,有两种手动配置一个可存在/不可存在的IPv4的地址格式作为Router-ID,自动选举在所有环回口中选举IP地址最大的作为Route-ID,在所有物理接口中选举IP地址最大的作为Router-ID,建议是用手动方式配置一个环回口的IP地址作为Router-ID

链路状态信息传递

图片

通过在路由器之间发送LSA(Link State Advertisement)链路状态公告来交换链路状态信息,通过获取对方LSA,来同步乙方OSPF区域内的链路状态信息。

图片

为避免网络资源浪费,OSPF 路由器采取路由增量更新的机制发布 LSA,即只发布邻居缺失的链路状态给邻居

路由计算

图片

路由计算

  • 首先评估一台路由器到另一台路由器所需的开销(Cost)
  • 同步区域内的所有路由器的LSDB
  • 使用SPF算法计算出路由

数据库同步的工作流程

  • 向邻接路由器发送DD报文,通告本地LSDB中所有LSA的摘要信息
  • 收到DD后,与本地LSDB对比,向对方发送LSR报文,请求发送本机所需的LSA的完整信息
  • 收到LSR后,把对方所需的LSA的完整信息打包为一条LSU报文,发送至对方
  • 收到LSU后,向对方回复LSAck报文,进行确认

OSPF三张表

路由表

记录了由SPF算法计算过后的路由

邻居表

记录邻居关系和状态

拓扑表

链路状态数据库

OSPF报文类型

  • Hello报文

    用于发现和建立邻居关系,维护邻居状态

  • DD报文

    用于描述本地LSDB中所有的LSA摘要

  • LSR报文

    用于链路状态请求,自身所要更新的链路状态详细信息

  • LSU报文

    用于链路状态更新

  • LSACK报文

    用于链路状态确认报文

OSPF多区域概念

图片

分区域管理是为了环节单区域管理中,节点压力过大的问题,将一个大区域划分为多个小区域(Area)来管理,划分之后的系统内通信将划为三种:区域内通信区域间通信区域外部通信

区域内通信

—在同一个区域内的路由器之间的通信 路由角色可以叫IR,区域内部路由器 用于内部通信,所有接口都在同一个区域内

区域间通信

不同区域的路由器之间的通信 路由器角色可以叫ABR,区域间路由器 用于区域之间通信

区域内部通信

OSPF 域内路由器与另一个自治系统内的路由器之间的通信 路由器角色可以叫ASBR,自治系统边界路由器 用于连接外部自治系统的路由器

OSPF区域类型

  • 骨干区域

    每个OSPF网络中只能有一个骨干区域,一般都是Area 0,骨干区域主要用于连接其他非骨干区域,且每个非骨干区域必须要与骨干区域相连接

  • 非骨干区域

  • 所有的非骨干区域必须和骨干区域相连接

OSPF的开销计算

参考带宽:

  • 计算开销的基准带宽值
  • 默认参考带宽为100M
  • 建议把网络中最高的链路带宽设置为参考带宽。
  • 参考带宽仅本地有效

计算方法:

  • 链路带宽大于等于参考带宽 Cost = 1
  • 链路带宽小于参考带宽Cost = 参考带宽/链路带宽MB

OSPF的优点

  1. OSPF 区域内的路由器对整个网络的拓扑结构有相同的认识,在此基础上计算的路由不可能产生环路
  2. 当网络结构变更时,所有路由器能迅速获得变更后的网络拓扑结构,网络收敛速度快
  3. 由于引入了Router ID的概念,OSPF区域内的每台路由器的行为都能很好地被跟踪
  4. 使用 SPF 算法计算路由,路由选择与网络能力直接挂钩,选路更合理
  5. OSPF 采用多种手段保证信息传递的可靠性、准确性,确保每台路由器网络信息同步,同时,避免了不必要的网络资源浪费

OSPF基础配置

[系统]ospf [ID] router-id [Router-ID]  #设置Router-id 
router-id [Router-ID] #在系统视图下设置Router-ID 会被应用到所有的协议[全局],其中在协议内配置的Router-ID[进程]area [ID] #进入区域ID,区域的编号格式也是IPv4地址格式
[区域]network [network] [反网掩码]#宣告网络,反网掩码也叫掩码通配符
[进程]silent-interface [interface] #静默接口
ospf network-type [broadcast | nbma | p2mp unicast | p2p | peer-address-check ] #手动修改网络类型
[进程]ospf-router-advertise [always | permit-calculate-other | cost [Cost] | route-policy [name] | type [Type] | summary cost [cost]] #配置OSPF引入缺省路由,always,如果本机没有配置默认路由,使用此参数可以参数一个描述默认路由的一个LSA发布出去,Cost为改默认路由的度量值,typeLSA的类型。
[接口]ospf timer hello [seconds] #修改Hello Time 计时器时间
[接口]ospf time dead [seconds] #修改邻居失效时间
[接口]ospf dr-priority [priority] #修改启用OSPF的接口的路由器优先级
[接口]ospf cost [cost] #修改开销值
bandwitdth-reference [value] #修改OSPF的参考带宽
display ospf interface #显示ospf接口信息
display ospf peer #显示邻居关系FULL为邻接关系,2-Way为邻居关系
display ospf lsdb #查看LSDB数据库
display ospf routing #查看OSPF路由
display ospf lsdb #插件本地LSDB汇总情况
display ospf verbose #查看OSPF进程详细信息
display ospf statistics #显示OSPF统计信息
display ospf interface #查看OSPF接口信息
display ospf routing #查看OSPF路由信息
dispaly ospf statistics error #显示ospf错误信息[排错常用]
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 交换机
    +关注

    关注

    19

    文章

    2441

    浏览量

    95694
  • 路由器
    +关注

    关注

    22

    文章

    3508

    浏览量

    111368
  • OSPF
    +关注

    关注

    0

    文章

    77

    浏览量

    14826
收藏 人收藏

    评论

    相关推荐

    OSPF协议概述

    OSPF协议详解
    发表于 08-06 07:29

    OSPF协议

    课程说明  . 2课程介绍  . . 3课程目标  . . 3相关资料  . . 3第一节 OSPF协议入门 . 11.1 概述  . . . 11.2 术语和基本概念 21.3 OSP
    发表于 06-24 17:50 3次下载

    OSPF协议详解

    OSPF协议详解:OSPF协议概述OSPF的邻居状态机,OSPF与路由自环,OSPF调试与监控
    发表于 09-09 22:20 50次下载
    <b class='flag-5'>OSPF</b>协议详解

    OSPF Conformance Test Suite E7

    Agilent Technologies automated OSPF conformance test suite provides realistic internet-scale
    发表于 07-14 23:18 3次下载

    OSPF协议,OSPF协议是什么意思

    OSPF协议,OSPF协议是什么意思 OSPF协议  OSPF(Open Shortest Path First)是一个内部网关协议(Interior Gateway Protoco
    发表于 03-29 17:27 4565次阅读

    OSPF路由协议,OSPF路由协议是什么意思

    OSPF路由协议,OSPF路由协议是什么意思  ——随着Internet技术在全球范围的飞速发展,OSPF已成为目前Internet广域网和Intra
    发表于 03-30 09:50 1836次阅读

    EIGRP和OSPF协议课件下载

    EIGRP基础理论 Basic Theory of EIGRP (Enhanced Interior Gateway Routing Protocol) 2. OSPF基础理论 Basic Theory of OSPF (Open Shortest Path First
    发表于 04-14 15:01 0次下载
    EIGRP和<b class='flag-5'>OSPF</b>协议课件下载

    ospf的网络类型_OSPF的优点

    OSPF(OpenShortestPathFirst开放式最短路径优先)是一个内部网关协议(InteriorGatewayProtocol,简称IGP),用于在单一自治系统(autonomoussystem,AS)内决策路由。
    发表于 04-04 16:33 6517次阅读

    ospf工作原理_ospf工作过程

    当路由器开启OSPF后,路由器之间就会相互发送HELLO报文,HELLO报文中包含一些路由器和链路的相关信息,发送HELLO报文的目的是为了形成邻居表。
    发表于 04-04 16:36 3.2w次阅读

    跟大家聊聊BGP与OSPF

    BGP和OSPF是两种最常见的路由协议,BGP在大型网络中具有动态路由优势,而OSPF具有更高效的路径选择和收敛速度。
    的头像 发表于 01-30 11:56 2942次阅读

    OSPF路由协议:​趣解OSPF区域

    OSPF是开放式最短路径协议,通过SPF协议进行计算从而防止路由进行规范计算。整个OSPF区域可以理解为一个国家,其中每个区域可以看成是每个国家里面省。
    的头像 发表于 05-24 15:28 1206次阅读

    OSPF的四种接口网络类型

    首先,强调一下:这里OSPF路由协议下选举DR、BDR是 在广播网络、NBMA网络中进行的 。既然提到了OSPF网络类型,那我们就先来了解一下吧。 OSPF的四种接口网络类型 网络类型 底层链路类型
    的头像 发表于 07-05 09:48 1038次阅读
    <b class='flag-5'>OSPF</b>的四种接口网络类型

    OSPF是如何计算路由的?OSPF如何适应大型网络的?

    OSPF是如何计算路由的? 接下来,就要隆重介绍下动态路由协议中的当红炸子鸡一-OSPF (Open Shortest Path First,开放最短路径优先)啦!
    发表于 08-18 11:23 576次阅读
    <b class='flag-5'>OSPF</b>是如何计算路由的?<b class='flag-5'>OSPF</b>如何适应大型网络的?

    OSPF配置命令梳理汇总

    abr-summary(OSPF区域) //用来在区域边界路由器(ABR)上配置路由聚合。 area(OSPF) //用来创建OSPF区域,并进入OSPF区域视图。 asbr-su
    的头像 发表于 11-15 15:49 508次阅读

    浅谈OSPF的5种报文

    OSPF头部:以下五个报文都会携带OSPF头部
    的头像 发表于 12-21 10:11 356次阅读
    浅谈<b class='flag-5'>OSPF</b>的5种报文