1 OSPF邻居状态机的详细讲解-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

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

3天内不再提示

OSPF邻居状态机的详细讲解

电子设计 来源:电子设计 作者:电子设计 2020-12-26 02:12 次阅读

1、背景

我们都知道,任何新技术的诞生,都是有它一定的自然规律的。绝逼不是凭白无故的产生。所以,龙哥希望大家学习一个技术时,学会多关联相关协议,联想他们各自的特点,学会把知识串联起来,这样你就不会觉得学技术好难啊,就不会总是跟龙哥抱怨:总是记不住怎么办呢?

会有链路状态协议的OSPF产生,是因为前面距离矢量路由协议存在两个非常严重的问题:

1、收敛速度缓慢,就是太磨叽了;2、容易产生路由环路。

OSPF,全称Open Shortest Path First,即开放最短路径优先,是由IETF的OSPF工作组在1989年10月开发的,发表的RFC为1131, OSPFv1从此诞生,该协议是基于著名的DijKstra算法。不过版本1一直都是在实验室中使用,未推广成功。版本2才开始被广泛使用,在RFC2328说明。

注:IETF:国际互联网工程任务组(The Internet Engineering Task Force,简称 IETF。1985年年底成立。

2、LSDB

LSDB,全称是Link State DataBase,链路状态数据库。为啥会有它呢?还不是因为距离矢量路由协议RIP,是个“传言”路由协议,在距离矢量路由协议中,邻居说有啥路由,你就信啥,你心中自己都没有一张地图,就很容易经常被骗,所以会导致环路。所以OSPF干脆就给区域内每台路由器都搞一张地图,这样就不会上当受骗了,这个地图就是LSDB,这样就使得OSPF可以保证区域内无环,区域间无环,通过一些规则来限制,这样区域内外都能保证无环。下面,简单介绍一下:

简单说明一些,区域内路由器一旦配置了OSPF,每台路由器就会开始泛洪LSA(包含IP地址、掩码、开销、网络类型等信息),每台都能收到LSA,会构建一张数据库,即LSDB。然后每台路由器都会以自己为根节点,构建一颗最短路径树,然后从这棵树中计算路由,将最优的放进路由表,用于指导业务数据转发。

可能上图小白看着会觉得有点抽象,很难受。行吧,那龙哥动手搭个环境,联系实际场景,可能就会更好理解了。

现在我登录到每台设备给大家演示一下如何查看LSDB(链路状态数据库):

从以上截图来看,相信大家应该发现一个现象了,那就是每台路由器的LSDB是一样的,说明区域内每台路由器的“地图”都是长一个样的。

然后我再每台路由器都创建loopback 0,都宣告到OSPF,目的是验证计算路由。不然上述环境,直连路由优先OSPF路由,所以查看路由表是不会看到OSPF路由的。

创建后随便登录一台路由器就可以了(因为每台路由器LSB都是一样的),去查看1类LSA(1类LSA每台路由器都会产生的)

然后我们在R1查看路由表中的OSPF路由:

我们可以看到只有2条OSPF路由,10.10.10.10没有在里面,是因为它不是最优的,因为它是直连路由,直连路由(优先级0)比OSPF(优先级10)优。

3、报文类型

不管你学什么协议,都绕不开学习报文。报文,就是协议之间互相交付的数据内容。

OSPF在层次模型中,是基于IP层之上的,协议号是89。

上图看完,我们是不是就可以定位出OSPF其实也是跟TCP、UDP同一传输层级别的协议了。

现在,是不是明白了,为啥OSPF报文需要LSAck了吧? 因为OSPF不是基于TCP,TCP有确认机制,所以OSPF如果要确认机制,就需要开发一个报文类型,用来做确认,即LSAck。

现在,我们来总结一下OSPF的报文类型有:

Hello报文:用于发现、建立、维护邻居关系。

DBD报文:链路状态数据库的目录,即摘要信息。

LSR报文:发现自己缺少哪些摘要信息的,就去请求缺少的LSA。

LSU报文:完整的LSA信息。

LSAck报文:确认收到LSA。

本期主题龙哥于大家分享的是OSPF邻居状态机,所以重点介绍一下OSPF的Hello报文。

有些人遇到OSPF邻居不能建立成功,总是不知所措;或者有些考试应付考试,来问龙哥,影响OSPF邻居建立因素好几条,总是记不住怎么办呀?其实,这个问题很简单,就是你没有把Hello报文格式内容给了解透彻。

你细品Hello报文,再去看影响OSPF邻居建立的因素,就清晰多了:(1)router id(2)area id(虚链路的area id可以不一致,什么意思)(3)认证(4)hello/dead(5)区域类型(option位,e=1、n=0为普通/骨干区域,e=0、n=0为stub区域,e=0、n=1为nssa区域)(6)接口的地址掩码(ma网络,LSA2的掩码描述接口的掩码,如果掩码不一致会认为有两台DR,p2p没有问题)不在hello包(7)接口mtu(邻接关系出问题)(8)ospf进程下静默

审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7002

    浏览量

    88938
  • OSPF
    +关注

    关注

    0

    文章

    80

    浏览量

    14878
收藏 人收藏

    评论

    相关推荐

    Simulink中的状态机建模方法 Simulink数据可视化与分析功能

    1. Simulink中的状态机建模方法 1.1 理解状态机的基本概念 在开始建模之前,了解状态机的基本概念是必要的。状态机由以下几个部分组成:
    的头像 发表于 12-12 09:27 270次阅读

    华为设备中的OSPF命令详解

    OSPF网络。这篇文章将详细介绍华为设备中的OSPF命令,包括基本配置、路由策略、邻居关系和故障排除等方面,帮助读者全面了解和掌握这些命令。
    的头像 发表于 08-12 18:13 1680次阅读

    触发器和状态机的关系是什么

    触发器和状态机在数字电路设计中有着紧密的关系,它们共同构成了时序逻辑电路的基础,用于实现数据的存储、处理和传输。
    的头像 发表于 08-12 11:24 422次阅读

    如何在FPGA中实现状态机

    在FPGA(现场可编程门阵列)中实现状态机是一种常见的做法,用于控制复杂的数字系统行为。状态机能够根据当前的输入和系统状态,决定下一步的动作和新的状态。这里,我们将
    的头像 发表于 07-18 15:57 566次阅读

    玩转Spring状态机

    说起Spring状态机,大家很容易联想到这个状态机和设计模式中状态模式的区别是啥呢?没错,Spring状态机就是状态模式的一种实现,在介绍S
    的头像 发表于 06-25 14:21 928次阅读
    玩转Spring<b class='flag-5'>状态机</b>

    关于SMU状态机的问题求解

    我有一些关于 SMU 状态机的问题。 假设由于某种原因,SMU 已进入故障状态。 手册指出,要返回运行状态并将 FSP 恢复到无故障状态,应调用IfxSmu_releaseFSP()。
    发表于 05-29 08:18

    请问STM32F051用了操作系统RTX后还需要写状态机不?

    现在学会了rtx操作系统后,原来用状态机的学的程序,可不可以不切割,直接单线程来执行列?各位前前辈指点一下。多谢!
    发表于 05-08 06:11

    在Verilog中实现Moore型和Mealy型状态机的方法简析

    编写能够被综合工具识别的状态机,首先需要理解状态机的基本概念和分类。状态机(FSM)是表示有限个状态以及在这些状态之间转换的逻辑结构。
    的头像 发表于 05-01 11:38 1552次阅读

    求助LabVIEW,状态机里面反馈节点如何初始化问题

    求助labview,状态机里面反馈节点如何初始化,下次执行这个状态的时候初始化一次!谢谢谢谢!
    发表于 03-25 18:17

    如何采用“状态机”解析UART数据帧

    如果一个系统接收上述“不定长度”的协议帧,将会有一个挑战--如何高效接收与解析。 为简化系统设计,我们强烈建议您采用“状态机”来解析UART数据帧。
    的头像 发表于 03-25 14:29 680次阅读
    如何采用“<b class='flag-5'>状态机</b>”解析UART数据帧

    请问GPIF状态机的内部信号需要延迟才能断言吗?

    dma_wm_thn 这样的过渡触发器需要一些周期的延迟才能断言吗? 在我的实践中,DMA_WM_THN 触发器似乎有 1 个时钟周期延迟:   图像是我的状态机的一部分,数据总线是 32 位
    发表于 02-23 07:43

    什么是有限状态机?如何解决传统有限状态机状态爆炸」问题?

    有限状态机(Finite State Machine,简称FSM)是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列以及如何响应来自外界的各种事件。
    的头像 发表于 02-17 16:09 6219次阅读
    什么是有限<b class='flag-5'>状态机</b>?如何解决传统有限<b class='flag-5'>状态机</b>「<b class='flag-5'>状态</b>爆炸」问题?

    Verilog状态机+设计实例

    在verilog中状态机的一种很常用的逻辑结构,学习和理解状态机的运行规律能够帮助我们更好地书写代码,同时作为一种思想方法,在别的代码设计中也会有所帮助。 一、简介 在使用过程中我们常说
    的头像 发表于 02-12 19:07 4039次阅读
    Verilog<b class='flag-5'>状态机</b>+设计实例

    状态机该怎么监控

    状态机卡住的场景——通过状态跳转条件的DFX信号去判断卡住的原因
    的头像 发表于 01-15 10:03 415次阅读
    <b class='flag-5'>状态机</b>该怎么监控

    Spring状态机的实现原理和使用方法

    说起 Spring 状态机,大家很容易联想到这个状态机和设计模式中状态模式的区别是啥呢?没错,Spring 状态机就是状态模式的一种实现,在
    的头像 发表于 12-26 09:39 1968次阅读
    Spring<b class='flag-5'>状态机</b>的实现原理和使用方法