• OSPF协议详解及快速学会(OSPF协议与RIP协议对比,区域划分,数据包类型,OSPF的状态机,工作过程,基础配置,扩展配置,条件匹配)


    OSPF----开放式最短路径优先协议

    1、RIP是基于跳数选路的----跳数小的优,不会考虑带宽问题,可能会导致选路不佳 
    2、RIP的占用资源过多---30S的周期更新,使得链路中充斥着大量的广播报文 
    3、仅支持小规模网络----RIP支持最大跳数为15
    
    • 1
    • 2
    • 3

    1、基本概念

    • OSPF是一个标准的IGP协议(AS内部使用)

    • OSPF的协议算法是链路状态型协议-font>—>传递拓扑

    • OSPF版本

      • OSPFv1、OSPFv2、OSPFv3
    • OSPF是携带真实掩码的(无类别的路由协议)

    • 优先级----10(华为)

    • 开销值:参考带宽/实际带宽(华为默认的参考带宽100Mbps)

    • OSPF是跨层封装协议----协议号为89

    • OSPF协议特点

      • OSPF传递的不是路由,是LSA(链路状态通告)

      • OSPF的更新方式

        • 触发更新
        • 30min的周期链路状态刷新
    • OSPF算法叫做SPF算法

    • OSPF是一种比较消耗路由器资源的协议,并且也会消耗链路资源

    • 更新方式

      • 使用组播
      • 224.0.0.5(所有OSPF路由器)
      • 224.0.0.6(一个MA网络中的DR/BDR接收的信息地址)

    2、OSPF区域化结构

    • OSPF为了适应大中型网络环境,进行了结构化部署----区域划分

    • 我们把只有一个区域的OSPF网络称为单区域OSPF网络

    • 我们把只有多个区域的OSPF网络称为多区域OSPF网络

    • 区域划分的特点

      • 区域内部传递拓扑信息,区域间传递路由信息

      • 区域划分的标准是基于路由器的接口

      • 区域的编号----帮助设备区分信息的不同来源、方便管理

        • 32位二进制组成,也是点分十进制表现形式
        • 区域编号为0的区域—>他被称为骨干区域(有且只有一个),其他编号的区域被称为非骨干区域
        • 在单区域网络中,这个区域一定是骨干区域。
        • 在多区域网络中,所有的非骨干区域必须和骨干区域直接相连。
    • 区域边界路由器----ABR

      • 同时属于多个区域,并且一个接口对应一个区域,且至少有一个接口是属于区域0的
      • 区域间可以存在多个ABR,一个ABR也可以对应多个区域
    • 自治系统边界路由器----ASBR

      • 同时属于多个网络,例如某台路由器既属于OSPF网络,又属于RIP网络
    • 为什么要区域划分

      • 限制LSA的传播范围
      • 减少LSA的数量
    OSPF的工作过程:5种数据包、7种状态机、2种关系、3种接口角色、4种路由器角色与3张表
    
    • 1

    3、OSPF的五种数据包

    • hello包

      • 周期保活、发现、建立邻居关系

      • 10s hello-time

      • 死亡时间hold-time====4倍的hello包时间

        • 如果在死亡时间内没有接收到对端邻居发送的hello报文,则认为邻居不存在
      • Router-ID

        • 全网唯一,标识路由器的身份
        • 32位二进制组成,由点分十进制形式表示
    • DBD包

      • 数据库表述报文

      • 内部包含了所有的拓扑的目录信息,本地数据库目录

    • LSR包

      • 链路状态请求报文

      • 请求获取未知的链路信息

    • LSU包

      • 链路状态更新报文

      • 携带真正的LSA信息的数据包

    • LSAck包

      • 链路状态确认报文

    Lsa-链路状态,具体的一条一条路由信息或拓扑信息;但它不是一个包,是被lsu数据包来携带

    4、OSPF的七个状态机

    • down:关闭状态----一旦启动OSPF协议后,则发出Hello报文,进入init状态
    • Init初始化:一旦接收到的hello包中,存在本地的Rid,进入下一个状态:
    • 2way双向通讯:邻居关系建立的标志

    条件匹配:匹配成功进入下一状态,匹配失败,则停留在邻居关系

    • Exstart预启动:使用不携带目录信息的DBD包,进行主从关系的选举;RID大的为主,优先进入下一个状态,解决了目录共享时的无序

    • Exchange准交换:使用携带目标信息的dbd包,共享本地数据库目录

    • loading加载:查看完邻接的dbd信息后,对比本地,然后基于本地未知的lsa进行查询;使用lsr向对端查询,对端使用lsu来传输这些lsa信息,本地收到后需要lsack来进行确认

    • Full 转发状态:邻接关系的建立的标志;意味着邻接间,数据库的同步(一致)

    5、条件匹配(选举)

    • 三种接口角色

      • 指定路由器—DR
      • 备份指定路由器----BDR
      • 其他路由器—DROther
    • OSPF成为邻接关系的条件—根据网络类型不同而不同

      • MA网络(以太网)类型
        • 多路访问–在一个网段中的节点数量不限制;不是当下连接了几个节点;而是该网络类型允许最终连接多个节点 —以太网
      • 点到点网络类型
        • 在一个网段内只能存在两个节点 — 串线链路
      • 点到点网络邻居关系直接成为邻接关系;
      • MA网络中,将进行DR/BDR的选举;在一个网段中仅DR/BDR与其他路由器为邻接关系;非DR/BDR之间为邻居关系
    • 角色之间的关系

      • DR与BDR—邻接
      • DR与DRother—邻接
      • BDR与DRother—邻接
      • DRother与DRother----邻居
    • 选举规则

      • 先比较该网段所有参选设备接口的优先级,越大越优;默认优先级为1;取值范围0-255,0标识不参选

      • 若所有参选者优先级相同,比较参选设备的RID,数值大优

    • 选举的范围

      • 一个广播域,进行一次DR/BDR的选举
    • 选举模式

      • 非抢占性的
        • 一旦选举成功,不会因为新加入的设备而重新选举
        • 若需要重新选举,则需要重启OSPF进程
        • reset ospf 1 process
    • 干涉选举

      • 1、DR优先级最大,BDR次大 – 切记OPSF的选举是非抢占性的;故在修改完优先级后,需要所有路由器重启OSPF进程
      • 2、DR优先级最大,BDR次大,其他路由器优先级为0,无需重启设备
    • 修改接口优先级

      • [r3-GigabitEthernet0/0/0]ospf dr-priority 0
      • 当修改接口优先级为0时,则认为不参与选举
    • 在一个MA网络中,可以没有BDR,但是一定要有DR

    6、OSPF的工作过程

    • OSPF协议启动后,路由器A向本地所有启动了OSPF协议的直连接口,使用组播地址224.0.0.5发送hello报文;hello报文中携带了本地的全网唯一的RID值;之后对端路由器B也将回复hello报文,该hello报文中若携带了对端A的RID值,则A与B建立邻居关系,并生成邻居表
    • 邻居关系建立后,邻居间进行条件匹配,匹配失败就停留在邻居关系,仅使用hello报文保活;若条件匹配成功,则可以开始建立邻接关系。
    • 邻接间共享DBD报文,将本地与邻接的DBD包进行对比,查找本地没有的LSA信息,之后使用LSR报文来询问,对端使用LSU报文来回复具体的LSA信息,之后本地使用LSAck报文进行显性确认,该过程完成后,生成数据库表(LSDB表)。
    • 在之后,本地基于数据库表,启用SPF算法,生成有向图—>最短路径树—>计算本地到达所有未知网段的最短路径,然后将其加载到本地的路由表中。此时收敛完成。
    • 最后,收敛完成后,邻居和邻接关系间均hello包每10s保活;每30min一次邻接关系间的周期数据库比对,保障一致;

    7、结构突变

    • 新增网络

      • 直接使用更新包(LSU)告知邻居路由器
    • 断开网段

      • 直接使用更新包告知邻居路由器
    • 无法沟通

      • hello包10s发送一次,若40s时间未接收到对端发来的hello报文,即超出死亡时间
      • 断开邻接关系,删除路由

    8、基本配置

    [r1]ospf 1 router-id 1.1.1.1 //启动OSPF进程1,并配置rid为1.1.1.1 如果不进行手工配置RID,最大环回IP地址>最大物理接口IP地址 
    [r1-ospf-1]area 0 //进入骨干区域 
    [r1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255 //宣告,使用反掩码的形式宣告; 反掩码:32位二进制,使用点分十进制表示,由连续的0和连续的1组成,0表示IP的对 应位不变,1表示IP对应位可变 
    [r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0 
    [r1-ospf-1-area-0.0.0.0]network 0.0.0.0 255.255.255.255
    
    • 1
    • 2
    • 3
    • 4
    • 5

    宣告 – 需要使用反掩码,来匹配宣告的IP地址范围:

    1、激活接口 – 可以收发OPSF的信息

    2、被选中接口的拓扑信息可以共享给邻接

    3、区域划分

    • OSPF邻居表

      • [r1]display ospf peer //查看邻居表
      • [r1]display ospf peer brief //查看邻居简表
    • OSPF数据库表

      • [r2]display ospf lsdb //查看数据库简表
    • OSPF路由表

      • [r1]display ip routing-table protocol ospf

    9、OSPF扩展配置

    • 修改参考带宽

      • [r1-ospf-1]bandwidth-reference 1000
      • 一台设备修改参考带宽后,所有设备均需要修改
    • 缺省路由(默认路由)----一般在ABR上配置

      • 非强制性下发
        • [r3-ospf-1]default-route-advertise //路由器中必须有缺省路由存在
      • 强制性下发
        • [r3-ospf-1]default-route-advertise always
    • 静默接口

      • 只接接不发,一般在连接用户的接口配置

      • [r3-ospf-1]silent-interface GigabitEthernet 0/0/1

    • 认证

      • 支持在邻居间的接口上配置认证秘钥
      • 认证类型
        • 不认证—0
        • 明文认证-1
        • 密文认证-2
      • [r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
      • 双方都要配置,并且key ID保持一致
    • 区域汇总:

      • OSPF协议不支持接口汇总;只能在ABR上将a区域拓扑计算所得路由,共享给b区域时进行汇总

        • [r2]ospf 1
          [r2-ospf-1]area 0
          [r2-ospf-1-area-0.0.0.0]abr-summary 1.1.0.0 255.252.0.0
          
          • 1
          • 2
          • 3

          R2为一台连接区域0和其他区域的ABR;以上操作将区域0学习到的拓扑计算所得到的路由,传递给其他区域时进行汇总,汇总网端1.1.0.0/22

    • 加快收敛

      • 邻居间计时器 10s hello time 40s dead time

      • 邻居间,修改本端的hello time,本端的dead time自动4倍关系匹配;但OSPF中邻居间的hello time 和dead time必须完全一致,否则无法建立邻居关系

      • [r1-Gin]ospf timer hello 5

  • 相关阅读:
    现货伦敦金分析中几种常见的资金管理技巧
    Cookie基本使用 [JavaWeb][Servlet]
    C++ shared_ptr类型转换的实现原理与type traits类型萃取
    前端-----ES5知识点小梳理一
    S波与P波的定义(光波电矢量)(菲涅耳公式)
    RibbitMQ学习笔记之MQ练习
    安徽某高校数据挖掘作业4-5 (与一些碎碎念)
    AWS-Basic-S3
    k线图精解与实战应用技巧(见位进场)
    《C++避坑神器·十八》运算符重载,小白也能看懂
  • 原文地址:https://blog.csdn.net/m0_63342921/article/details/127450193