华为路由常见 LSA 类型的产生及作用域 | LSA 新旧判断

华为路由LSA详解

注:本文为 ”LSA“ 相关文章合辑。

未整理去重。


华为路由常见 LSA 类型的产生及作用域

  ~  

类型   ~  名称描述
1路由器 LSA(Router LSA)每个设备都会产生,描述了设备的链路状态和开销。
该 LSA 只能在接口所属的区域内泛洪
2网络 LSA(Network LSA)由 DR 产生,描述该 DR 所接入的 MA 网络中所有与之形成邻接关系的路由器,以及 DR 自己。
该 LSA 只能在接口所属区域内泛洪。
3网络汇总 LSA(Network Summary LSA)由 ABR 产生,描述区域内某个网段的路由,该类 LSA 主要用于区域间路由的传递
4ASBR 汇总 LSA(ASBR Summary LSA)由 ABR 产生,描述到 ASBR 的路由,通告给除 ASBR 所在区域的其他相关区域。
5AS 外部 LSA(AS External LSA)由 ASBR 产生,用于描述到达 OSPF 域外的路由。
7非完全末梢区域 LSA(NSSA LSA)由 ASBR 产生,用于描述到达 OSPF 域外的路由。
NSSA LSA 与 AS 外部 LSA 功能类似,但是泛洪范围不同。
NSSA LSA 只能在始发的 NSSA 内泛洪,并且不能直接进入 Area0。
NSSA 的 ABR 会将 7 类 LSA 转换成 5 类 LSA 注入到 Area0。

Router LSA 字段详解

LSA 的基本概念

  • LSA 是 OSPF 进行路由计算的关键依据。

  • OSPF 的 LSU 报文可以携带多种不同类型的 LSA。

  • 各种类型的 LSA 拥有相同的报文头部。

在这里插入图片描述

重要字段解释

  • LS Age(链路状态老化时间):此字段表示 LSA 已经生存的时间,单位是秒。

  • Options(可选项):每一个 bit 都对应了 OSPF 所支持的某种特性。

  • LS Type(链路状态类型): 指示本 LSA 的类型。

  • Link State ID(链路状态 ID): 不同的 LSA,对该字段的定义不同。

  • Advertising Router(通告路由器):产生该 LSA 的路由器的 Router ID。

  • LS Sequence Number(链路状态序列号):当 LSA 每次有新的实例产生时,序列号就会增加。

  • LS Checksum(校验和):用于保证数据的完整性和准确性。

  • Length: 是一个包含 LSA 头部在内的 LSA 的总长度值。

  • 链路状态类型、链路状态 ID、通告路由器 三元组 唯一地标识了一个 LSA。

  • 链路状态老化时间 、链路状态序列号 、校验和用于判断 LSA 的新旧。

链路状态广告(LSA)比较顺序

  • 1、LS Sequence Number :链路状态序列号。序列号越大,表示该 LSA 更新得更频繁,因此是较新的信息。

  • 2、LS Checksum :链路状态校验和。如果两个 LSA 的序列号相同,会通过校验和来进一步确认哪个是正确的版本。校验和用于检测数据在传输过程中是否发生了错误。

  • 3、LS Age :链路状态年龄。如果序列号和校验和都相同,那么会通过年龄来决定。年龄越小,表示该 LSA 越新。

    链路状态协议(如 OSPF)使用这些字段来确保网络中的路由信息是最新的和一致的。当路由器接收到一个 LSA 时,它会按照上述顺序进行比较,以决定是否需要更新自己的数据库中的相应信息。

Router LSA(1 类 LSA)

每台 OSPF 路由器都会产生。它描述了该路由器直连接口的信息。

  • Router LSA 只能在所属的区域内泛洪。

    在这里插入图片描述

  • V (Virtual Link) :如果产生此 LSA 的路由器是虚连接的端点,则置为 1。

  • E (External ): 如果产生此 LSA 的路由器是 ASBR,则置为 1。

  • B (Border ):如果产生此 LSA 的路由器是 ABR,则置为 1。

  • links :LSA 中的 Link(链路)数量。Router LSA 使用 Link 来承载路由器直连接口的信息。

  • Router LSA 使用 Link 来承载路由器直连接口的信息。

  • 每条 Link 均包含 “链路类型”、“链路 ID”、“链路数据” 以及 “度量值” 这几个关键信息。

  • 路由器可能会采用一个或者多个 Link 来描述某个接口。

    在这里插入图片描述

Network LSA(2 类 LSA)

由 DR 产生,描述本网段的链路状态,在所属的区域内传播

Network LSA 记录了该网段内所有与 DR 建立了邻接关系的 OSPF 路由器,同时携带了该网段的网络掩码。

在这里插入图片描述

  • Link State ID:DR 的接口 IP 地址。

  • Network Mask:MA 网络的子网掩码。

  • Attached Router:连接到该 MA 网络的路由器的 Router-ID(与该 DR 建立了邻接关系的邻居的 Router-ID,以及 DR 自己的 Router-ID),如果有多台路由器接入该 MA 网络,则使用多个字段描述。

SPF 算法

Phase 1:构建 SPF 树

  • 路由器将自己作为最短路径树的树根,根据 Router-LSA 和 Network-LSA 中的拓扑信息,依次将 Cost 值最小的路由器添加到 SPF 树中。路由器以 Router ID 或者 DR 标识。

  • 广播网络中 DR 和其所连接路由器的 Cost 值为 0。

  • SPF 树中只有单向的最短路径,保证了 OSPF 区域内路由计算不会出现环路。

Phase 2:计算最优路由

  • 将 Router-LSA、Network-LSA 中的路由信息以叶子节点形式附加在对应的 OSPF 路由器上,计算最优路由。

  • 已经出现的路由信息不会再添加到 SPF 树干上。
    ……

via: huawei


路由 OSPF LSA 介绍、1~7 类 LSA 详细介绍

Hades_Ling 于 2023-01-14 14:43:13 发布

OSPF LSA 链路状态通告 (Link status announcement),作用于向其它邻接 OSPF 路由器传递拓扑信息与路由信息。

LSA 如何描述拓扑信息与路由信息 ?

基于不同类型 LSA 进行描述,而常见的 LSA 类型有 1 类、2 类、3 类、4 类、5 类、7 类

OSPF 的工作流程

  1. 交换 LSA:OSPF 路由器通过交换不同类型的 LSA 来彼此分享网络拓扑的信息。这些 LSA 包含关于路由器、链接和网络状态的重要信息。

  2. 建立 LSDB:所有 OSPF 路由器会维护一份一致的 LSDB,该数据库存储了所有接收到的 LSA。LSDB 反映了整个 OSPF 域的网络拓扑结构。

  3. 使用 SPF 算法:在构建完成 LSDB 后,OSPF 路由器使用 SPF 算法对 LSDB 进行计算。该算法根据网络拓扑计算从路由器到其他目的地的最优路径。

  4. 更新路由表:计算出的最优路径将被加入到 OSPF 路由器的路由表中,以便用于数据包转发。

宏观下的 6 种 LSA 作用:

1 类 Router

  • 路由器 LSA,描述设备的直连拓扑信息、路由信息。

  • 该 LSA 只能在接口所属的区域内泛洪。

    • 解释(接口所属的区域):在 OSPF 中以接口划分区域,故每个接口都可以属于不同的区域。

    • 1 类 LSA 只会在区域内泛洪 / 传递,不会泛洪到其它区域中。

在这里插入图片描述

2 类 Network

  • 网络 LSA,该 2 类 LSA 只会在广播类型网络中出现。
  • 由 DR 产生,描述 DR 所在的 MA 网络中所有与之形成邻接关系的路由器,以及 DR 自己。
    • 解释(所有与之形成邻接关系的路由器):
      • 在广播类型的网络中,OSPF 会选举出 DR 设备统一管理广播网络中的 LSA。
      • 在广播网络中只有 DR 与 BDR 能够与 DR-other 设备建立邻接关系。
      • 2 类 LSA 描述的正是 DR 与其它设备之间的拓扑信息 [DR 连接了谁],与 DR 广播网络的路由信息 [DR 广播网络是什么]
      • 该 LSA 只能在接口所属区域泛洪。

在这里插入图片描述

3 类 Summary-Network

  • 网络汇总 LSA,由 ABR 设备产生,描述区域内的路由信息。
    • 因为 1 类、2 类 LSA 只能在区域内传递。
    • 故其它区域需要学习到另一个区域的 1 类 2 类就需要有新的 LSA 来统一描述1 类 2 类的拓扑、路由信息。这个 LSA 就是 3 类 LSA。
      在这里插入图片描述

4 类 ASBR-Summary

  • ASBR 汇总 LSA,由 ABR 产生,描述到 ASBR 的路由,服务于 5 类 LSA。

  • 通告给除 ASBR 所在区域的其它区域。

  • 这里需要进行图形的解释:

    • 5 类 LSA 在传递过程中下一跳是不可改变的,故 AR5 想访问 AR1 就需要去往 AR2 的 2.2.2.2。

    • 1、首先 AR2 的 router-id=2.2.2.2 并没有发布到 OSPF 网络中,故 AR5 不会学习到去 2.2.2.2 的路由。

    • 2、由于 AR3 与 AR2 在同一个区域中,通过 1 类 LSA 就可以知道如何去 2.2.2.2。

      • 【唉?不是说 2.2.2.2 是 RID 吗?不是没有发布到 OSPF 吗?AR3 如何知道去 2.2.2.2 的呢?】

      • 【答案就是在 1 类 LSA 的子类型中可以得知去往 RID 的拓扑信息,往后会详细讲解 1 类 LSA 的其它子类型】

        Type      : Router 
      -  Ls id     : 2.2.2.2	【该 LSA 由谁产生?因为 1 类描述自己的直连接口信息,当然是自己】
         Adv rtr   : 2.2.2.2	【谁通告的?1 类 LSA 由自己产生,当然是自己】
         Ls age    : 623 
         Len       : 36 
         Options   :  ASBR  E  
         seq#      : 80000007 
         chksum    : 0x2ec3
         Link count: 1
          * Link ID: 10.1.23.3【基于 TransNet 子类型可知该地址表示广播网络的 DR 地址】
            Data   : 10.1.23.2【谁通告的该 LSA 信息?基于该地址我们就知道如何去 2.2.2.2 了】
            Link Type: TransNet     
            Metric : 1
             该 LSA 由 2.2.2.2 通告过来给 AR3 的,其中产生了 1 条拓扑信息,可通过 10.1.23.2 访问到。
             故同样的也可以访问到 2.2.2.2。
      
    • 3、由于 1 类只能在区域中传递,故 AR5 无法学习到去往 2.2.2.2 的路由信息。这个时候就需要用到ABR(AR3) 发布的 4 类 LSA(去 2.2.2.2 来找 AR3 准没错了)

    在这里插入图片描述

5 类 AS-External

  • AS 外部 LSA,由 ASBR 产生,描述到 OSPF 域外的路由。
  • OSPF 引入的路由,如引入 RIP、ISIS、BGP 等路由,引入的路由就属于外部路。外部路由用 5 类 LSA 进行通告。
  • 5 类 LSA 在传递的过程中,下一跳不会被中间设备修改。
    在这里插入图片描述

7 类 NSSA

  • 用于特殊区域 NSSA 中的 LSA。
  • 由 ASBR 产生,用于描述到达 OSPF 域外的路由。NSSA7 类与 5 类功能一样,但泛洪范围不同。
  • NSSA7 类只能在始发区域内泛洪,并不能直接进入 Area0。当 7 类需要传递 Area0 的时候,ABR 会将 7 类转换成 5 类传递入到 Area0 中。
    在这里插入图片描述

查看 LSDB 数据库

LSDB 链路状态数据库,是存放各类 LSA 的地方,在路由设备上通过命令:display ospf lsdb 查看数据库信息。

Type表示 LSA 的类型(1 类 Router、2 类 Network、3 类 Sum-Net、4 类 )

Linkstate通常表示谁产生的 LSA

AdvRouter表示谁通告的 LSA

Age表示 LSA 的年龄,也是老化时间。

Len为 LSA 的大小

Sequence为 LSA 序列号

Metric表示去往该 LSA 的开销。

<AR3>display ospf lsdb 

	 OSPF Process 1 with Router ID 3.3.3.3【OSPF 路由设备的 router-id】
		 Link State Database 【以下就是关于 AR3 的 LSDB 数据库信息】

		         Area: 0.0.0.0【区域 0 的 LSA】
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    4.4.4.4         4.4.4.4           1240  36    80000005       1
 Router    3.3.3.3         3.3.3.3            834  36    80000005       1
 Network   10.1.34.4       4.4.4.4           1240  32    80000002       0
 Sum-Net   10.1.45.0       4.4.4.4           1277  28    80000001       1
 Sum-Net   10.1.23.0       3.3.3.3            834  28    80000002       1
 
		         Area: 0.0.0.1【区域 1 的 LSA】
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    2.2.2.2         2.2.2.2            585  36    80000007       1
 Router    3.3.3.3         3.3.3.3            785  36    80000005       1
 Network   10.1.23.3       3.3.3.3            785  32    80000001       0
 Sum-Net   10.1.45.0       3.3.3.3            834  28    80000001       2
 Sum-Net   10.1.34.0       3.3.3.3            834  28    80000001       1
 NSSA      0.0.0.0         3.3.3.3            834  36    80000001       1
 NSSA      10.1.23.0       2.2.2.2            585  36    80000002       1
 NSSA      192.168.1.0     2.2.2.2            585  36    80000002       1
 NSSA      10.1.12.0       2.2.2.2            585  36    80000002       1
 

		 AS External Database【外部路由的 LSA】
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 External  192.168.1.0     3.3.3.3            584  36    80000002       1
 External  10.1.12.0       3.3.3.3            584  36    80000002       1

新旧 LSA 判断

话说网络中的 LSA 如此之多,OSPF 路由器是如何进行判断哪些是新的 LSA,哪些是旧的 LSA 呢?

对于 LSA,有三个重要的字段。通过这三个字段可以判断出 LSA 的新旧:序列号 seq校验 chksum年龄 Age

LSA 优先区域顺序

1、先比较序列号,越大越新,越新越优先。

  • 因为 OSPF 最新生成的 LSA 会比旧的 LSA 序列号更大。

2、序列号一样,校验和越大越新。

  • OSPF 报文中的校验和并不单是用来判断报文有没有出错的,该值的计算不仅仅需要 LSA 报文的信息,还需要上一次计算出的校验和,并且每次计算校验和,都会比之前的校验和更大,因此校验和被认为是 OSPF LSA 消息新旧的第二个标准。

3、特例就是当 Age=3600 时该 LSA 最优先,其它 Age 则是越小越优先。

  • Age 表示 LSA 产生至今有多久了,默认从 0 开始。
  • 当 OSPF 设备需要删除某个 LSA 时,就会通过设置 Age 时间为 3600 秒进行泛洪,让其它 OSPF 设备进行删除指定 LSA。所以 LSA=3600 比 Age=0 更具备优先级。
  • 正常情况下 Age 是不会达到 3600 的,因为 OSPF 默认情况下 1800 秒(30 分钟)周期性更新一次 LSA,当收到新的 LSA 之后就会进行刷新 Age 时间。

查看 LSA 的详细信息

通过命令:display ospf lsdb LSA 类型 LSA 条目 ID

如查看 2.2.2.2 的 1 类 LSA 详细信息:display ospf lsdb router 2.2.2.2

<AR3>display ospf lsdb router 2.2.2.2

	 OSPF Process 1 with Router ID 3.3.3.3
		         Area: 0.0.0.0
		 Link State Database 

		         Area: 0.0.0.1【查询的 1 类 LSA 所属区域】
		 Link State Database 
  Type      : Router
  Ls id     : 2.2.2.2
  Adv rtr   : 2.2.2.2  
  Ls age    : 455 	【新旧 LSA 判断依据 3】
  Len       : 36 
  Options   :  ASBR
  seq#      : 80000007 【新旧 LSA 判断依据 1】
  chksum    : 0x4ca7   【新旧 LSA 判断依据 2】
  Link count: 1
   * Link ID: 10.1.23.3    
     Data   : 10.1.23.2    
     Link Type: TransNet     
     Metric : 1

详细介绍 1~7 类 LSA 的内部信息

了解 LSA 的产生,什么情况下产生 LSA,产生什么样的 LSA。

查看并了解其 LSA 内部信息所表示的含义。

1 类 Router

产生:运行了 OSPF 的设备并配置活动接口使用之后,必然会产生 1 条 1 类 LSA 描述该直连链路信息。

一类 LSA 头部信息

<AR4>display ospf lsdb router 4.4.4.4

  Type      : Router	【LSA 的类型】
  Ls id     : 4.4.4.4	【该 LSA 由谁产生?因为 1 类描述自己的直连接口信息,当然是自己】
  Adv rtr   : 4.4.4.4	【谁通告的?1 类 LSA 由自己产生,当然是自己】
  Ls age    : 1521		【该 LSA 活了多久?1521 秒】
  Len       : 36		【LSA 的大小,36Byte】
  Options   :  ABR  E	【ABR 身份,E 表示可接收 OSPF 外部 LSA 的能力】
  seq#      : 80000007 
  chksum    : 0xab1e
  Link count: 1			【直连链路信息数量】
   * Link ID: 10.1.34.4
     Data   : 10.1.34.4
     Link Type: TransNet【子类型】     
     Metric : 1

一类 LSA 子类型与内部信息

不同的子类型,其 LinkID、Data 所表示的含义也不同。

  • Link ID: 10.1.34.4【DR 地址】
    Data : 10.1.34.4【宣告该 LSA 的接口】
    Link Type: TransNet【子类型】
    Metric : 1
Link TypeLink IDData
P2P(P2P 接口网络中产生)邻居的 RID宣告该 LSA 的路由器接口的 IP 地址
StubNet(广播网络中产生)路由器接口的网络 IP 地址该 Stub 网络的网络掩码
TransNet(广播网络中产生)DR 的接口地址宣告该 LSA 的路由器接口的 IP 地址
Virtual(虚链路路由器产生)邻居的 RID宣告该 LSA 的路由器接口的 IP 地址

P2P、TransNet、virtual 三类都是一类 LSA 用于描述拓扑信息,StubNet 则用于描述路由信息。

疑惑:为什么都是通过 network 宣告网络,有时候产生的是 1 类的 Transnet、有时候产生的是 StubNet 呢?

在这里插入图片描述

在这里插入图片描述
宣告的网络未进行建立邻居时,宣告的网络子类型为 Stubnet;当宣告的网络建立邻居之后,子类型就会变为 Transnet。

Vritual Link 虚链路

为了避免区域间的环路,OSPF 规定不允许直接在两个非骨干区域之间传递路由信息。

在这里插入图片描述

但是非骨干区域非骨干区域之间还是可以通过 hello 报文建立邻居关系,并学习到对方自己产生的路由

即:非骨干区域之间不能传递其它区域的路由,但是可以传递自己产生的路由。

在这里插入图片描述
非骨干区域之间建立邻居后可传递自己的路由信息给对方,但无法把从其它区域(包括骨干区域)学习到的路由,传递给其它非骨干区域。

1、建立 Vlink 的作用?

为了实现以上区域 2 与区域 5 之间的路由传递,让区域 5 也能学习到其它区域的路由信息,就需要建立 Vlink 虚链路。

Vlink 实现非骨干区域之间能够交互路由信息的逻辑是什么?

因为非骨干区域与非骨干区域无法交互路由信息,只有非骨干区域与骨干区域之间可以。

基于上面的环境,AR4 与 AR5 建立 Vlink(区域 0 与区域 2 的两台边界路由器),实现逻辑上将骨干区域 0 扩展到 AR5 上。

建立完成之后就会和下图一样的:由于 AR5 逻辑上属于骨干区域,故区域 5 的 AR10 就会与 AR5 交互路由了。

在这里插入图片描述

2、如何配置 Vlink ?

首先观察环境,因为区域 5 与区域 0 之间相隔了区域 2,需要做的就是将区域 2 打通,实现区域 5 与区域 0 的通信。

AR4 是区域 0 与区域 2 的边界、AR5 是区域 2 与区域 5 的边界,在这两台上配置 Vlink 是最优的。

配置 Vlink 的时候通常都是指定对端的 router-id。

为什么虚链路不直接指定对端 IP 地址,而是指定对端的 router-id 呢?

  • 从实用性上看,如果单独指定其接口地址,那么这个时候去往目标时并不一定是最优的。

    而使用 router-id,OSPF 将会基于 OSPF 路由进行最优路由的转发。

  • 从可靠性上看,如果单独指定其接口地址,如果该接口断开了,那么该虚链路就断开了。

    使用 router-id,只要还有路由能到 router-id 该虚链路就不会断开

在这里插入图片描述

3、配置 Vlink 的注意事项

  • Vlink 虚链路只能在同区域建立连接,无法跨域建立虚链路。

    • 因为 Vlink 计算到达目标路径需要依靠 1、2 类 LSA,而 1、2 类 LSA 无法跨区域传递,导致 Vlink 无法跨区域寻邻居。

以实验结果理解 1 类 LSA

1、通过在 AR2、AR3 上查看 lsdb 可以知道 1 类的 LSA 只会在区域内传递 (因为除了在区域 1 中可以看到 1 类的 2.2.2.2,其它区域都不会有 1 类的 2.2.2.2)

2、1 类 2.2.2.2 中只有一条信息,也就是 transnet 子类型的 LSA,表示的是 AR2 与 AR3 相连的拓扑信息 (10.1.23.0)

3、其它区域想要学习到该 1 类的 LSA,只能通过 3 类的 LSA 学习。(如:AR4 需要学习区域 1 中的 1 类 2.2.2.2 的路由信息,只能通过 AR3 产生的 3 类学习到)

4、为什么 AR4 收到的 3 类是 10.1.23.0 呢为什么不是 2.2.2.2?因为 3 类是统一汇总通告 1 类 2 类的拓扑信息、路由信息。故只会将 1 类 2.2.2.2 中的拓扑信息(10.1.23.0)通告出去。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2 类 Network

产生:在广播类型的接口运行 OSPF 时,由选出的 DR 设备产生。

二类 LSA 头部信息与内部信息

<AR4>display ospf lsdb network 10.1.34.4

  Type      : Network
  Ls id     : 10.1.34.4【DR 的地址】
  Adv rtr   : 4.4.4.4【该 LSA 由谁宣告的?】
  Ls age    : 1297
  Len       : 32 
  Options   :  E  
  seq#      : 80000001 
  chksum    : 0xf903
  Net mask  : 255.255.255.0【与 LS id 结合,表示 DR 所在的广播网络】
  Priority  : Low
     Attached Router    4.4.4.4【表示与 DR 相连的设备】
     Attached Router    3.3.3.3【表示与 DR 相连的设备】

通过上面的报文可以绘制一个逻辑拓扑

配合 1 类的 LSA,我们就可以知道 4.4.4.4 与 3.3.3.3 互联接口为这个链路中的 DR。以及这个链路连接有哪些设备。

在这里插入图片描述

3 类 Sum-Network

产生:由 ABR 边界路由器产生

三类 LSA 头部信息与内部信息

<AR4>dis ospf lsdb summary 10.1.23.0

	 OSPF Process 1 with Router ID 4.4.4.4
		         Area: 0.0.0.0
		 Link State Database 

  Type      : Sum-Net
  Ls id     : 10.1.23.0【某条 1 类或 2 类的路由信息】
  Adv rtr   : 3.3.3.3 【下一跳找谁】
  Ls age    : 1557 
  Len       : 28 
  Options   :  E  
  seq#      : 80000002 
  chksum    : 0x8ca0
  Net mask  : 255.255.255.0【Lsid 的掩码,与 Lsid 结合就知道了路由信息】
  Tos 0  metric: 1
  Priority  : Low

4 类 ASBR-Summary

产生:由 ABR 边界路由器产生

4 类 LSA 主要的作用就是通过头部的 Ls id 与 Adv rtr 了解如何去往 ASBR。

四类头部信息

<AR4>display ospf lsdb asbr 3.3.3.3

  Type      : Sum-Asbr
  Ls id     : 3.3.3.3【ASBR 的 router-id】
  Adv rtr   : 4.4.4.4【去往 ASBR 找我】
  Ls age    : 1716
  Len       : 28 
  Options   :  E  
  seq#      : 80000002 
  chksum    : 0x62db
  Tos 0  metric: 1
123456789101112

5 类 / 7 类 AS-External

产生:由 ASBR 区域自治边界路由器产生

5 类与 7 类都是一样的 LSA,只不过 Type 类型不一样。

五类头部信息与内部信息

<AR4>display ospf lsdb ase 192.168.1.0

	 OSPF Process 1 with Router ID 4.4.4.4
		 Link State Database

  Type      : External
  Ls id     : 192.168.1.0【5 类外部路由】
  Adv rtr   : 3.3.3.3 【去往该路由的下一跳】
  Ls age    : 95 
  Len       : 36 
  Options   :  E  
  seq#      : 80000003 
  chksum    : 0xa68d
  Net mask  : 255.255.255.0【路由掩码】
  TOS 0  Metric: 1
  E type    : 2【外部路由开销的计算类型】
  Forwarding Address : 10.1.23.2 【转发地址】
  Tag       : 1 【Tag 标签】
  Priority  : Low

五类 LSA—E Type 字段

External Type 外部路由类型

OSPF 外部路由默认优先级为 150

TypeCost
第一类外部路由 (External Type-1)AS 内部开销值 + AS 外部开销值
第二类外部路由 (External Type-2)AS 外部开销值

Type 1

可学习到外部的开销为:ASBR 到外部路由部开销+本路由器到 ASBR 之间的路由部开销= 该外部路由的总开销

通过 LSA 可以知道访问 192.168.1.0 就需要经过 3.3.3.3、2.2.2.2 最终到 192.168.1.0,故开销为 3。

在这里插入图片描述

Type 2

5 类 LSA 的外部路由开销为:(ASBR 到外部路由的总开销

在这里插入图片描述
因为 5 类 LSA 默认 Type=2,故 5 类路由开销只会计算 ASBR 到外部路由的开销,中间经过设备多少都不会增加其 5 类开销。

啥时候用 Type1、啥时候用 Type2 ?

当网络中有多个 ASBR 都引入同一条外部路由时,如果用默认的 Type2 方式引入,则去往该外部路由时必然是负载分担的。

如下图,AR14 学习到的外部路由开销都是 1,故 AR14 会认为该路由负载分担流量。

但很明显,走 AR13 是次优的路径,故在多个 ASBR 引入同一条外部路由的时候需要考虑使用 Type1 类型。

在这里插入图片描述

在这里插入图片描述

五类 LSA—Forwarding 字段

转发地址作用:解决广播型网络中 OSPF 路由次优路径问题

引入外部路由时,连接其他协议的接口运行了 OSPF 协议并且网络类型为广播类型,则 FA 地址为重发布之前路由的下一跳地址,若网络类型为 P2P,则不会产生 FA 地址

转发地址不置位(0.0.0.0)

转发地址置位条件:

  1. ASBR 与外部路由交互的接口,启用了 OSPF 协议(即接口运行了 OSPF 协议,还运行了其它外部路由协议)

  2. 链接外部的接口不能配置 Slient-interface(类似边缘端口,禁止设备向该接口发送 OSPF 报文)

  3. 只有广播型网络的接口才会置位,P2P 只有单一的一条路无法置位。

环境介绍:

AR5 的 G0/0/0 接口与 AR7 建立 OSPF、并且 G0/0/0 还与 AR6 建立 ISIS

路由引入操作:AR5 将 ISIS 与 OSPF 进行双向的路由引入,即 OSPF 引入 ISIS、ISIS 引入 OSPF 中。

这时 AR7 就能通过 AR5 学习到 AR6 的 ISIS 相关路由,但是访问 AR6 的网络时会优先通过 AR5 进行中转,在该环境中明显是不合适的,因为 AR7 明显可以直接与 AR6 进行通信。

为此,OSPF 的 FA 地址生效了。该环境满足了 FA 地址置位的要求。

AR5 会将引入的 AR6 路由相关 SLA 的 FA 地址设置为去往 AR6 网络的下一跳接口地址(192.168.1.2),这样 AR7 需要访问 AR6 的时候就直接访问 AR6 即可。

在这里插入图片描述

五类 LSA—Tag 字段

用于区分路由,将特定的路由打上 tag 之后,可以通过路由策略选择性的接收和拒绝指定的路由。ISIS 与路由策略相关知识在后面几章介绍到

双点双向引入时、环路就是通过 tag 解决的。

汇总 1~7 类相关查看命令

查看所有类型 LSA 的汇总信息,LSDB 数据库

<AR4>display ospf lsdb 

查看指定类型的 LSA

1 类

<AR4>display ospf lsdb router

2 类

<AR4>display ospf lsdb network

3 类

<AR4>display ospf lsdb summary

4 类

<AR4>display ospf lsdb asbr

5 类

<AR4>display ospf lsdb ase

7 类

<AR4>display ospf lsdb nssa

查看指定类型的 LSA 详细信息,如查看 1 类 1.1.1.1 的详细 LSA 信息

<AR4>display ospf lsdb router 1.1.1.1

查看 ospf 网络中哪些是 ABR、ASBR

<AR3>dis ospf abr-asbr 

	 OSPF Process 1 with Router ID 3.3.3.3
		 Routing Table to ABR and ASBR 

 RtType      Destination       Area       Cost  Nexthop         Type
 Intra-area  4.4.4.4           0.0.0.0    1     10.1.34.4       ABR 
 Intra-area  5.5.5.5           0.0.0.0    2     10.1.34.4       ABR 
 Intra-area  2.2.2.2           0.0.0.1    1     10.1.23.2       ASBR 

在 OSPF 网络中,如何判断 LSA 的新旧?

永远是少年啊 于 2021-07-05 20:03:26 发布

在 OSPF 网络中,如何判断 LSA 的新旧?为何要进行这样的判断?其背后的原因是什么?若您存在上述疑问,本文不容错过。本文主要阐述了在 OSPF 网络中 LSA 更新的原则与原理。阅读本文,您需对 OSPF 有基本的认知,若您在此方面知识有所欠缺,可查阅博主博客中的其他文章,相信会对您有所助益。

一、判断 LSA 新旧的原因

在 OSPF 网络中,LSA 消息新旧的判断在一定程度上是 OSPF 网络的核心要点。这是因为 OSPF 路由器依靠 LSA 报文来学习整个网络的拓扑信息,进而计算路由。所以,当网络拓扑发生变化时,感知到该变化的路由器必须向网络内其他路由器通告 LSA 信息,以保证网络内路由器对整体网络架构的认知达成一致。

在 OSPF 中,使用链路状态类型(Link - state Type)、链路状态 ID(Link - state ID)和通告路由器(Advertised Router)来唯一标识一条 LSA 消息。当一个路由器收到一条 LSA 消息后,如果其本地的 LSDB 中已存在该 LSA 消息,那么它就必须将收到的 LSA 消息与本地的 LSA 消息进行比较,选择保留更新的 LSA 消息。因此,运行 OSPF 的路由器需要在此时判断 LSA 消息的新旧。

二、判断标准

OSPF 使用链路状态序列号、老化时间和校验和来进行决策,具体决策规则如下:

  1. 拥有更高链路状态序列号的 LSA 实例被视为最新。
  2. 若链路状态序列号相同,拥有更大校验和的 LSA 实例被视为最新。
  3. 如果收到的 LSA 老化时间被设定为 Max - Age(缺省为 1h),则该实例被视为最新。
  4. 当本地 LSA 和新收到的 LSA 老化时间超过 Max - Age - Diff(缺省为 15m)时,这两个 LSA 被认为是不同的实例,且老化时间越小的 LSA 被视为最新。
  5. 如果上述 4 点均无法进行判断,那么认为这两条 LSA 是相同的 LSA 实例。

上述 5 条判断原则,按照从上到下的顺序进行匹配,当匹配到某一规则后,就不再继续进行后续匹配。

判断流程图

收到LSA消息
└── 已有该LSA?
├── 是:比较链路状态序列号
│ ├── 收到的LSA序列号更高 → 更新本地LSDB
│ ├── 本地LSA序列号更高 → 丢弃收到的LSA
│ └── 序列号相同:比较校验和
│ ├── 收到的LSA校验和更大 → 更新本地LSDB
│ ├── 本地LSA校验和更大 → 丢弃收到的LSA
│ └── 校验和相同:老化时间检查
│ ├── 是 (到达MaxAge) → 更新本地LSDB
│ └── 否:比较AgeDiff
│ ├── 超过MaxAgeDiff:比较老化时间
│ │ ├── 收到的LSA老化时间更小 → 更新本地LSDB
│ │ └── 本地LSA老化时间更小 → 丢弃收到的LSA
│ └── 未超过MaxAgeDiff → 认为相同,不更新
└── 否:直接更新本地LSDB

三、难点说明

  1. 之所以将链路状态序列号作为 LSA 新旧判断的第一标准,是因为每次路由器在刷新 LSA 的时候,都会将序列号加 1 。因此,链路状态序列号越高,就代表 LSA 消息越新。
  2. OSPF 报文中的校验和并非仅仅用于判断报文是否出错。该值的计算不仅需要 LSA 报文的信息,还需要上一次计算出的校验和,并且每次计算校验和,都会比之前的校验和更大。所以,校验和被视为 OSPF LSA 消息新旧的第二个标准。关于 OSPF 中校验和算法,可查阅博主博客内的其他文章。
  3. 关于判断标准的第三点,这是因为如果一个路由器希望从网络中删除一条自己之前产生的 LSA,那么就会生成老化时间为 Max - Age 的 LSA 实例。

在 OSPF 网络中,如何判断 LSA 的新旧

永远是少年啊 于 2021-07-05 20:03:26 发布

在 OSPF(开放最短路径优先)网络中,链路状态通告(LSA)的新旧判断是网络路由计算与拓扑同步的关键环节。本文将详细阐述 LSA 新旧判断的原因、标准及其背后的原理。

一、判断 LSA 新旧的原因

在 OSPF 网络中,LSA 是路由器用于描述网络拓扑信息的基本单元。路由器通过收集和处理 LSA 来构建链路状态数据库(LSDB),并基于此计算路由表。因此,LSA 的新旧判断对于确保网络拓扑信息的准确性和一致性至关重要。当网络拓扑发生变化时,感知到变化的路由器需要向其他路由器通告新的 LSA,以确保所有路由器对网络的拓扑结构达成一致的认知。

在 OSPF 中,每条 LSA 通过链路状态类型(Link-State Type)、链路状态 ID(Link-State ID)和通告路由器(Advertising Router)唯一标识。当路由器收到一条已存在于本地 LSDB 中的 LSA 时,必须通过比较来确定其新旧,以决定是否更新本地 LSDB。

二、判断标准

OSPF 通过以下三个主要因素来判断 LSA 的新旧:链路状态序列号(Link-State Sequence Number)、老化时间(Age)和校验和(Checksum)。

判断规则:

  1. 链路状态序列号优先级最高:序列号较高的 LSA 被视为更新。每次路由器刷新 LSA 时,序列号会加 1,因此序列号越高,LSA 越新。
  2. 校验和作为辅助判断:如果两条 LSA 的序列号相同,则比较校验和。校验和较大的 LSA 被视为更新。OSPF 的校验和计算不仅基于 LSA 的内容,还依赖于上一次的校验和值,因此校验和也可用于判断 LSA 的新旧。
  3. 老化时间的特殊规则
    • 如果收到的 LSA 的老化时间被设置为 Max-Age(默认为 1 小时),则该 LSA 被视为最新。
    • 如果本地 LSA 和收到的 LSA 的老化时间差超过 Max-Age-Diff(默认为 15 分钟),则老化时间较小的 LSA 被视为更新。
  4. 相同实例的判断:如果上述规则均无法区分两条 LSA 的新旧,则认为它们是相同的实例,无需更新。

判断流程

  1. 检查本地 LSDB 是否已存在该 LSA:
    • 若不存在,直接更新本地 LSDB。
    • 若存在,进入下一步。
  2. 比较链路状态序列号:
    • 若收到的 LSA 序列号更高,更新本地 LSDB。
    • 若本地 LSA 序列号更高,丢弃收到的 LSA。
    • 若序列号相同,进入下一步。
  3. 比较校验和:
    • 若收到的 LSA 校验和更大,更新本地 LSDB。
    • 若本地 LSA 校验和更大,丢弃收到的 LSA。
    • 若校验和相同,进入下一步。
  4. 检查老化时间:
    • 若收到的 LSA 老化时间为 Max-Age,更新本地 LSDB。
    • 若老化时间差超过 Max-Age-Diff,比较老化时间:
      • 若收到的 LSA 老化时间更小,更新本地 LSDB。
      • 若本地 LSA 老化时间更小,丢弃收到的 LSA。
    • 若老化时间差未超过 Max-Age-Diff,认为两条 LSA 相同,不更新。

三、难点说明

  1. 链路状态序列号的优先级:链路状态序列号是判断 LSA 新旧的首要标准。每次路由器刷新 LSA 时,序列号会加 1,因此序列号越高,LSA 越新。
  2. 校验和的作用:OSPF 报文中的校验和不仅用于检测报文错误,还用于判断 LSA 的新旧。校验和的计算依赖于 LSA 的内容和上一次的校验和值,因此每次计算的校验和都会比上一次更大。
  3. 老化时间的特殊规则:当路由器希望从网络中删除一条之前生成的 LSA 时,会生成一个老化时间为 Max-Age 的 LSA 实例。这种机制允许路由器主动删除不再有效的拓扑信息。

通过上述机制,OSPF 网络能够高效地同步链路状态信息,确保所有路由器对网络拓扑的认知始终保持一致。


via:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值