OSPF路由协议:LSA1、LSA2与路由计算步骤

LSA的含义

LSA(Link-State Advertisement,链路状态通告),是OSPF路由协议的协议报文中携带的、用于进行路由计算的信息。根据用途及作用范围的不同,可以分为11类(即type1~11)。
本文介绍LSA中用于区域内路由计算的LSA1和LSA2,以及路由计算的 步骤。

LSA type 1 (Router LSA)

每台路由器会为自己所处的每一个区域产生一份RouterLSA,该LSA包含本区域所有链路的状态信息。

LSA1消息包含的字段:

  • LS Age :DoNotAge Flag和age数值(秒)
  • Option位
  • LS type :1
  • Link State ID
  • Advertising Router
  • Sequence Number
  • CheckSum
  • Flags
  • Number Of Links: OSPF有向图上的Link
    • Point to point
      • ID:邻居路由器的RID;Data:自己接口的IP
    • TransNetwork:MA类型链路
      • ID:DR的接口IP ;Data:自己接口IP
    • StubNetwork:末节类型链路/网络
      • ID:网络号 Data:掩码
    • Virtual Link
      • ID:vlink对端ABR的RID ;Data:本地Vlink的IP

有向图的说明

  • 每个实节点外出方向的链路成本是该接口的成本(OSPF Cost值)
  • MA网络:所有节点之间通过虚节点(N1)拓扑互联
    • N1到所连节点的距离为0
    • 节点到N1的边的距离是其cost值
  • 末节网络:到其他节点的叶子的cost需要计算邻居间cost和对方节点到其叶子的cost的和
    • 路由器到自身叶子节点的cost也是叶子所在链路的cost(如果叶子是链路接口的网段)

LSA type2 (Network LSA)

Network LSA用于描述MA网络的拓扑关系:TransNet网络号和该网络与路由器的关系,在MA网络的DR路由器产生。

LSA2消息包含的字段:

  • LS Age:同LSA1
  • Option
  • LSType : 2
  • Link Stat ID :DR接口IP地址
  • Advertising Router
  • Sequence Num
  • Checksum
  • Netmask:和LS ID逻辑与,得出LSA2的网络号
  • Attacked Router:本网络所有邻居路由器列表

与lSA1区别

LSA1由实节点(代表路由器的节点)产生,描述实节点周边的关系;LSA2由虚节点DR产生,描述虚节点周边关系。

DR的作用

  • DR选举机制
    • MA网络可以没有BDR但不能没有DR
    • 在2-way之后,交互hello完成选举
    • 根据所有邻居的hello报文,构建接口的数据结构
      • DR集合:接口刚开启时为全0
      • BDR集合:接口刚开启时为全0
      • DRother集合:有资格成为DR/BDR的路由器(优先级不为0的)
    • 选举过程:
      • 接口开启,hello中DR字域全0,wait timer启动
      • 若收到hello中有dr字域,wait timer停止,接受字域数值
      • 从other中选出BDR,再从这里面选出DR,如果BDR空,则再次从other中选出BDR

路OSPF由计算

OSPF路由计算包含以下步骤。

  • 画出网络图Graph:根据LSA1和LSA2
    • LSDB中的链路信息不能反映出路由
  • 对Graph进行SPF计算:以该路由器为Root
    • 华为设备初次计算过程执行全部节点的Full SPF,此后执行iSPF
    • iSPF只重画受影响的节点及周边连接关系,位置不同范围不同,根节点的边发生变化则重新计算整个拓扑
  • 添加叶子节点
    • PRC:在ISPF计算出的最短路径树基础上计算叶子节点路由
    • 链路网段的cost:对端路由器和本路由器均下挂同一网段,选择成本更小的本路由器的网段放到OSPF路由中,IP路由表中的直连路由更优所以看不到OSPF这条
    • lSA2:MA网络 的网段挂在虚节点N上
    • LSA3:挂在ABR节点上(其他区域内拓扑变化不影响本区域SPF
    • LSA7:挂在ASBR节点上
    • LSA5: 挂在ASBR或ABR,依ASBR是否在当前区域而定
上一篇:OSPF详解


下一篇:下面用linq写很顺手