OSPF的由来

RIP有缺陷:

  • 跳数: 数值有限制0-15跳
  • 次优路径: 不一定选择的最优路径
  • 收敛慢: 30s

    OSPF是什么

  • 动态路由协议(算法)

    • 链路状态路由协议: OSFP(靠自己),SPF算法(最短路径算法,无环),链路状态数据库(类似地图) LSA: link state Advertisement 链路状态信息
    • 距离矢量路由协议: RIP(听信邻居)
  • 应用分类
    • 内部网关路由协议:RIP、OSPF、EIGRP、IS-IS
    • 外部网关路由协议:BGP
  • OSPF工作原理:
    • 通过发送hello数据报文建立邻居关系
    • 建立邻接(full)关系,LSDB(链路状态数据库)同步
    • 以自身为起点,通过SPF算法算出最佳路径
  • OSPF数据报文

    • hello报文 发现、维持邻居(10s/30s),选举DR/BDR
    • DBD报文

      • 选举主从(RID大的为主,小的从),确定序列号,确保数据可靠性(I:初始报文 M: 后续还有没有报文 MS: 主/从)(因为DBD是网络层的报文,不可靠)
      • 宣告LSA的摘要(LSA的头部信息)

        第一个带着LSA摘要的报文是从设备发出的

    • LSR报文 link state Request 请求需要的LSA信息

    • LSU报文 link state update 发送LSA的详细信息(详细的链路状态信息:网段信息)
    • LSAck报文 对收到的LSU做确认

image.png

OSPF邻居状态

  • 我认为我的邻居此时此刻是什么状态

    • DOWN 当启动OSPF的时候,还没有收到对方的hello报文
    • Init 收到hello报文,不包含自己
    • Attempt NBMA现网看不到,不需要研究
    • 2-way: 收到hello报文,包含自己
      • 完成DR/BDR的选举
    • Exstart DBD(不带LSA头部信息)选举主从,确定序列号
    • Exchange 进行DBD报文(带LSA头部信息)的交互,可能同时有LSA更新的交互(请求不知道的链路状态信息)
    • loading:继续加载LSA
    • full: LSA交互完成,邻接状态

      OSPF网络接口类型

  • 以太网接口, Broadcast广播(BMA broadcast Mutil-Access),10s

  • ppp接口 默认p2p,10s
  • 帧中继,默认NBMA(Non-broadcast Mutil-Access),30s
  • 手动强制P2mP,30s

    DR/BDR

  • 怎么选举

    • 接口优先级:非0,优先级最大是DR,次之BDR
    • 优先级一样,比较RID。RID最大DR,次之BDR
  • 在一个多路访问的网络环境中(例如广播网络,当数据报文发出,可能有多个接收者),弱没有DR的概念,则需要在所有路由器之间两两建立邻接关系
  • 若有了DR,普通路由器只需要和DR建立邻接关系,只需要和DR交互链路状态信息即可,邻接关系数大大减少
  • DR是稳定的
  • 224.0.0.5 DRother
  • 224.0.0.6 DR/BDR

    OSPF怎么用

  • RID

    • 华为:手动 -> loopback最大 -> 物理接口最大/或第二大(根据具体型号)
    • cisco:手动 -> loopback最大 -> 物理接口最大
  • network并不是宣告一个网段,而是宣告某些接口开启OSPF
    • 0.0.0.0 0.0.0.0 危险宣告 0.0.0.0-255.255.255.255
    • 12.1.1.1 0.0.0.0 精确宣告 12.1.1.1
    • 12.1.1.0 0.0.0.255 网段宣告 12.1.1.0-12.1.1.255
    • 正掩码 255.255.255.0 : 碰到1不懂,碰到0变化,判断网段
    • 反掩码(通配符) : 0.0.0.255 碰到0不动,碰到1变化,判断范围
    • display ospf interface 启用OSPF的接口
    • show ip ospf interface
  • cost 参考带宽/接口带宽 100M/100M=1 100M/1000M=1 T1 1.544M / E1 2.048M(取整)
  • ospf配置
    • 华为
      • ospf x router-id X.X.X.X
        • area X
        • network X.X.X.X X.X.X.X
      • interface X
        • ospf cost X
        • ospf dr-pri X
        • ospf network X
      • display ospf int
      • display ospf peer bri
      • display ip routing-table pro ospf
    • 思科
      • router ospf X
        • network X.X.X.X X.X.X.X area X
      • interface X
        • ip ospf cost X
        • ip ospf network X
        • ip ospf priority X
      • show ip ospf nei
      • show ip ospf int bri
      • show ip route ospf
  • ospf有V2,V3版本,OSPF V2支持ipV4,V3支持ipV6
  • ospf的协议优先级为10(OSPF外部路由为150,RIP优先级100)
  • OSPF基于IP协议,协议号为89(RIP基于UDP,端口号520)
  • 天然无环,基于SPF算法生成最优路径
  • 使用链路状态数据库保存全网链路状态信息(路径信息、路由信息)
  • OSPF使用接口cost值作为链路开销的度量方式。cost值=参考带宽/实际带宽。默认参考带宽为100M
  • OSPF的三张表
    • 邻居表(display ospf peer)保存本设备的所有邻居信息及邻居状态
    • 拓扑表(LSDB display ospf lsdb)保存本OSPF区域内部整网的链路状态信息
    • 路由表(display ospf routing) 保存OSPF路由表