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

Posted Hades_Ling

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了路由 OSPF LSA介绍1~7类LSA详细介绍相关的知识,希望对你有一定的参考价值。

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

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

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

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

OSPF路由器通过不同类型的LSA组建成一下LSDB数据库(链路状态数据库)再通过SPF算法进行计算出最优的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消息新旧的第二个标准。

  • 红字部分借鉴CSDN博主「永远是少年啊」的原创文章:https://blog.csdn.net/weixin_40228200/article/details/118497166

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呢?


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

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

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到外部路由的总开销

啥时候用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只有单一的一条路无法置位。

环境介绍:

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

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

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

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

4、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介绍1~7类LSA详细介绍的主要内容,如果未能解决你的问题,请参考以下文章

假装网络工程师12——ospf中的特殊区域及6,7类lsa详解

假装网络工程师10——ospf中的4,5类lsa详解

八路由详细介绍之动态路由OSPF(重点)

假装网络工程师9——ospf中的1,2,3类lsa详解

ospf 总共有几种报文?

LSA 的五种类型