• OSPF学习笔记



    一、OSPF工作原理

    在这里插入图片描述

    二、OSPF报文

    OSPF协议报文有5种类型,分别是Hello报文、DD报文*(Database Description Packet)、LSR报文(Link-state Request Packet)、LSU报文(Link-state Update Packet)和LSAck报文(Link-state Acknowledgement Packet)。

    • Hello报文中所携带的信息是指,路由器某一接口所发送的Hello报文携带的信息,(用来发现、建立、维系邻居关系)
    • DD报文用于描述自己的链路状态数据库(Link-state Database,LSDB),并进行数据库的同步(相当于目录)
    • LDR报文用于请求相邻路由器LSDB中的一部分数据;(请求自身缺少的LSA)
    • LSU报文的功能是相对端路由器发送多条LSA用于更新。(携带完整的LSA信息)
    • LSAck报文是指路由器在接收到LSU报文后所发出的确认应答报文。(用于确认收到的信息)

    三、Router ID

    • Router ID 是OSPF协议区域中路由器的唯一标识,一台OSPF协议路由器的Router ID 一般有管理员手动配置或者自行选择。

    • 自行选择的顺序:
        (1)路由器上创建了逻辑接口(如环回接口),则会选择路由器中逻辑接口中IPV4地址数值最大的作为Router ID(无论该接口是否参与了OSPF协议)。
        (2)没有逻辑接口,路由器则会选择第一个活动物理接口为Router ID。

    • 手动配置,在这里插入图片描述

    • 一旦选定Router ID,只要OSPF协议进程没有重启,路由器的Router ID就不会变化,无论接口是否变化。

    四、邻居状态机

    • 邻居关系
      在OSPF协议中,每台路由器的接口都会周期性向外发送Hello报文,相邻的两个路由器之间发送给对方的Hello报文完全一直,两个路由器就会建立“邻居”关系。
    • 邻接关系
      在P2P或P2MP的二层网路类型中,两台互为“邻居”关系的路由器彼此同步LSDB成功完成后,就会建立“邻接”关系。
      在这里插入图片描述

    五、接口状态

    • Down,接口的ospf状态处于关闭状态
    • Witing:等待建立连接
    • DR:指定路由器(Designate Router, DR)
    • BDR:备份指定路由器(Backup Designate Router ,BDR)
      DR会与其他路由器(包括BDR)建立邻接关系,BDR也会与其他路由器之间建立邻接关系,其他路由器之间不会建立关系,互为邻接关系的路由器之间可以交互信息。
    • DR与BDR的选举规则
      (1)路由器的DR优先级值(0~255)最大的路由器将会成为DR
      (2)如果优先级相等,则Router ID 值最大的路由器将会成为DR
      (3)BDR的选举规则完全一样,BDR的选举发生在DR角色之后,在一个网络中,DR与BDR不能是同一台路由器。
      如果DR出现故障,BDR会替代DR,都故障则重新选举。

    六、OSPF区域

    • 一个OSPF协议网络可以被划分成多个区域(Area)。如果一个OSPF协议网络只包含一个区域,则被称为单区域OSPF协议网络;如果一个OSPF协议网络包含多个区域,则被称为多区域OSPF协议网络。
    • 在OSPF协议网络中,每一个区域都有一个编号,称为区域ID(Area ID)。
    • 区域ID 是一个32位的二进制数,一般用十进制数来表示。
    • 区域ID为0的区域称为骨干区域(Backbone Area),其他区域为非骨干区域。
    • 单区域OSPF协议网络中只包含一个区域,这个区域就是骨干区域。
    • 在多区域中,除骨干区域,其他都是非骨干区域
    • 非骨干区域之间的通信必须要通过骨干区域中转才能实现,当非骨干区域没有与骨干区域直连时,要采用虚链路(Virtual Link)技术从逻辑上实现非骨干区域与骨干区域的直连。

    七、OSPF 开销

    • 开销值作为加表原则需要在路由表条目中携带。
    • 开销值计算:接口开销值=参考带宽/接口带宽(结果取值,在0~2之间取值为1,2 ~ 3之间取值为2)
    • 路由表携带的开销值如何计算

    八、OSPF认证

    https://blog.csdn.net/weixin_45821358/article/details/121374524

  • 相关阅读:
    2.26回顾章节主体线索脉络,课程要求(评分)
    SpringBoot 集成 RabbitMq 实现五种常用消息模型
    C++学习日记——函数指针
    Mockito -- 如何Mock Util类中的static 方法?
    .git 目录中有什么?
    scratch班级成绩处理 电子学会图形化编程scratch等级考试四级真题和答案解析2022年9月
    PostgreSQL数据导出与恢复
    ML之PFI(eli5):基于mpg汽车油耗数据集利用RF随机森林算法和PFI置换特征重要性算法实现模型特征可解释性排序
    跟艾文学编程《Python基础》(1)Python 基础入门
    jenkins关联github
  • 原文地址:https://blog.csdn.net/qq_50981675/article/details/126389415