通俗易懂深入浅出OSPF-LSA类型讲解

你是否了解过OSPF协议?是否为各种类型的LSA感到困惑?时常分不清它们的作用和传播范围?今天,我们就结合华三模拟器上的实践,深入浅出的来了解一下OSPF协议的LSA类型。

OSPF(开放最短路径优先)协议。通过多种类型的LSA(链路状态通告)来描述网络拓扑和路由信息。每种LSA都有其特定的作用和明确的传播范围。以下是常见LSA类型的详细介绍及其作用范围。

常见OSPF LSA类型概览

LSA类型 名称 主要作用 生成者 传播(泛洪)范围
Type 1 路由器LSA (Router LSA) 描述路由器的本地信息,最基本的LSA。 每台OSPF路由器 所在区域内部
Type 2 网络LSA (Network LSA) 描述多路访问网络(如以太网)中,连接到该网段的所有路由器 DR 所在区域内部
Type 3 网络汇总LSA (Network Summary LSA) 通告区域间的路由信息。 ABR(区域边界路由器) 整个自治系统内(特殊区域如Stub区域除外)
Type 4 ASBR汇总LSA (ASBR Summary LSA) 通告ASBR的位置。 ABR(区域边界路由器) 整个自治系统内(特殊区域如Stub区域除外)
Type 5 AS外部LSA (AS External LSA) 描述到达OSPF外部的路由 ASBR(自治系统边界路由器) 整个自治系统内(特殊区域如Stub区域、NSSA区域除外)
Type 7 NSSA外部LSA (NSSA External LSA) 在NSSA(非纯末梢区域)中通告外部路由。 NSSA区域内的ASBR NSSA区域内部(在ABR上可转换为Type5后继续传播)
Type 9/10/11 不透明LSA (Opaque LSA) 用于OSPF的扩展功能 支持扩展功能的路由器 根据类型不同:链路本地(Type9)、本地区域(Type10)、自治系统内(Type11)

Type1 LSA

Router LSA

正如字面意思,它代表了一个Router(路由器)。

实际意义是,描述自身(Router id)及包含的所有接口。

通俗的理解,Router LSA就像一个路由器的"身份证",它包含了路由器的基本信息(如Router id)和接口信息(如接口状态、成本、邻居)。

这里所说的自身是从OSPF角度说的,而不是设备角度。

即,没有宣告的接口,不会产生LSA。

如下所示,宣告了loopback接口, Router LSA中包含了loopback接口的信息。

复制代码
[H3C-R1]interface LoopBack 0
[H3C-R1-LoopBack0]ip add 10.20.1.1 32
[H3C-R1-LoopBack0]quit
[H3C-R1]ospf 1
[H3C-R1-ospf-1]ar 0
[H3C-R1-ospf-1-area-0.0.0.0]network 10.20.1.1 0.0.0.0
[H3C-R1-ospf-1-area-0.0.0.0]dis this
#
 area 0.0.0.0
  network 10.20.1.1 0.0.0.0
#
return

[H3C-R1]dis ospf ls
[H3C-R1]dis ospf lsdb

         OSPF Process 1 with Router ID 10.20.1.1
                 Link State Database

                         Area: 0.0.0.0
 Type      LinkState ID    AdvRouter       Age  Len   Sequence  Metric
 Router    10.20.1.1       10.20.1.1       10   36    80000002  0
[H3C-R1]

下面我们尝试宣告一个接口,查看Router LSA中是否包含该接口的信息。

似乎并没有包含GigabitEthernet0/1接口的信息,依然只有loopback接口的信息。

复制代码
[H3C-R1]interface g 0/1
[H3C-R1-GigabitEthernet0/1]ip add 10.20.2.1 30
[H3C-R1-GigabitEthernet0/1]quit
[H3C-R1]ospf 1
[H3C-R1-ospf-1]ar 0
[H3C-R1-ospf-1-area-0.0.0.0]net 10.20.2.1 0.0.0.3
[H3C-R1-ospf-1-area-0.0.0.0]dis this
#
 area 0.0.0.0
  network 10.20.1.1 0.0.0.0
  network 10.20.2.0 0.0.0.3
#
return

[H3C-R1]dis ospf lsdb

         OSPF Process 1 with Router ID 10.20.1.1
                 Link State Database

                         Area: 0.0.0.0
 Type      LinkState ID    AdvRouter       Age  Len   Sequence  Metric
 Router    10.20.1.1       10.20.1.1       160  36    80000002  0

我们查看一下OSPF接口状态。我们看到接口GigabitEthernet0/1的OSPF状态是Down。这是因为我们没有配置对端设备。

准确的说,我在模拟器中目前只有一台设备,没有对端设备。

复制代码
[H3C-R1]dis ospf interface


         OSPF Process 1 with Router ID 10.20.1.1
                 Interfaces

 Area: 0.0.0.0
 IP Address      Type      State    Cost  Pri   DR              BDR
 10.20.2.1       Broadcast Down     1     1     0.0.0.0         0.0.0.0
 10.20.1.1       PTP       Loopback 0     1     0.0.0.0         0.0.0.0

下面我们将对端接口也配置IP地址并宣告,查看Router LSA中是否包含该接口的信息。

在R2上配置IP,并宣告接口。我们看看R1的Router LSA中是否包含该接口的信息。

复制代码
[H3C-R1]dis ospf lsdb

         OSPF Process 1 with Router ID 10.20.1.1
                 Link State Database

                         Area: 0.0.0.0
 Type      LinkState ID    AdvRouter       Age  Len   Sequence  Metric
 Router    10.20.1.2       10.20.1.2       67   48    80000006  0
 Router    10.20.1.1       10.20.1.1       66   48    80000006  0
 Network   10.20.2.1       10.20.1.1       65   32    80000002  0
[H3C-R1]

我们看到,R1接收到了R2 loopback接口(10.20.1.2)的Router LSA的信息。

但是R1宣告的接口GigabitEthernet0/1并不是Router LSA,而是Type2 LSA,即Network LSA

下面我们来了解下Network LSA

Type1 LSA小结

  1. Router LSA包含了Router自身的信息及所有接口的信息。
  2. Router LSA的Age字段表示该LSA的年龄,单位是秒。Age字段的值越小,表示该LSA越新。
  3. Router LSA的Metric字段表示该接口到目的网络的成本。
  4. Router LSA在OSPF中是一种单播LSA,只能在本地区域范围泛洪。

Type2 LSA(网络中的)

Network LSA

正如字面意思,它代表了一个网络。如果我们把Router LSA看作是一个个的点,那么Network LSA就由多个点组成的网络。从Type1到Type2,以及到后面的Type3 LSA......,可以把OSPF的LSA看作是一个从点到面不断扩展的过程。

Network LSA,它由DR(Designated Router)生成,描述所在(MA多路访问)网络(如以太网)中所有邻接关系的路由器,包括DR本身。

这便解释了为什么在上节中,R1宣告的接口GigabitEthernet0/1不是Router LSA,而是Network LSA。因为R1的GigabitEthernet0/1默认是一个Broadcast接口。

正如我们看到的拓扑结构,R1和R2是点对点连接的,没有其他设备。所以它们之间并不需要DR,BDR选举,这完全可以避免,加快OSPF的收敛速度。

现在我们尝试将R1,R2的互联接口配置为Point-to-Point。看看是否还有Network LSA

以R1为例,R2过程也类似。

复制代码
[H3C-R1-GigabitEthernet0/1]ospf net
[H3C-R1-GigabitEthernet0/1]ospf network-type p2p

[H3C-R1]dis ospf lsdb

         OSPF Process 1 with Router ID 10.20.1.1
                 Link State Database

                         Area: 0.0.0.0
 Type      LinkState ID    AdvRouter       Age  Len   Sequence  Metric
 Router    10.20.1.2       10.20.1.2       123  60    8000000D  0
 Router    10.20.1.1       10.20.1.1       122  60    8000000C  0

可以看到,R1接收到了R2的Router LSA,且仅有Router LSA,没有Network LSA

在R2上,拥有和R1相同的LSDB。

再深入一点

再增加一个R3,且与R2使用默认的Broadcast互联。

在为R2,R3配置完成后,我们看看R1上的LSDB变化。

复制代码
[H3C-R1]dis ospf lsdb

         OSPF Process 1 with Router ID 10.20.1.1
                 Link State Database

                         Area: 0.0.0.0
 Type      LinkState ID    AdvRouter       Age  Len   Sequence  Metric
 Router    10.20.1.3       10.20.1.3       56   48    80000007  0
 Router    10.20.1.2       10.20.1.2       55   72    80000011  0
 Router    10.20.1.1       10.20.1.1       1106 60    8000000C  0
 Network   10.20.2.6       10.20.1.3       50   32    80000002  0
[H3C-R1]

可以看到,在R1的LSDB中,多了一个Network LSA,它的LinkState ID10.20.2.6,即R3的GigabitEthernet0/1接口的IP地址,宣告者AdvRouter是R310.20.1.3

有一个细节,LinkState ID是R3的接口IP,为什么不是R2的接口IP呢?

R2的OSPF接口状态。

复制代码
[H3C-R2]dis ospf interface


         OSPF Process 1 with Router ID 10.20.1.2
                 Interfaces

 Area: 0.0.0.0
 IP Address      Type      State    Cost  Pri   DR              BDR
 10.20.2.5       Broadcast BDR      1     1     10.20.2.6       10.20.2.5
 10.20.2.2       PTP       P-2-P    1     1     0.0.0.0         0.0.0.0
 10.20.1.2       PTP       Loopback 0     1     0.0.0.0         0.0.0.0
[H3C-R2]

R3的OSPF接口状态。

复制代码
[H3C-R3]dis ospf interface


         OSPF Process 1 with Router ID 10.20.1.3
                 Interfaces

 Area: 0.0.0.0
 IP Address      Type      State    Cost  Pri   DR              BDR
 10.20.2.6       Broadcast DR       1     1     10.20.2.6       10.20.2.5
 10.20.1.3       PTP       Loopback 0     1     0.0.0.0         0.0.0.0
[H3C-R3]

正是因为R3的接口是DR,R2的接口是BDR,所以在R1看到的Network LSALinkState ID是R3的接口IP。

准确的说,你在本地网络内所有设备上看到的这条Network LSALinkState ID都是R3的接口IP。因为本地网络范围内,所有设备都有相同的LSDB。

Type2 LSA小结

  1. Network LSA包含了所在(MA)网络中所有邻接关系的路由器,包括DR本身。
  2. Network LSA只能在本地区域范围泛洪。
  3. 在Point-to-Point网络中,没有Network LSA,只有Router LSA。

Type3 LSA(网络间的)

Network Summary LSA

正如字面意思,它代表了一个网络的汇总。

它由区域边界路由器ABR(Area Border Router)生成,描述一个区域内的网络信息,并将该信息通告给其他区域。它会根据收到的Network LSA,生成Network Summary LSA,以减少区域内的LSA数量,提高OSPF的效率。

前面我们说,Type1相当于点,很多个点组使用Type2构成了面,如此我们便拓展出了一个网络。而Type3 LSA,就相当于把这个网络继续扩大,拓展,将Type1和2汇总一下,实现面与面之间的连接,即区域与区域之间的连接。

我们在之前的拓扑上,构建一个Area 1的OSPF域。

图中R4,R6并不是ABR,是命名失误。R1,R3才是ABR。

配置过程与前面的相似。看一下各设备上的LSDB内都有什么类型的LSA。

可以看到,R1作为Area 1的ABR,Area 1的LSDB中,存在Router LSANetwork LSANetwork Summary LSA三种LSA类型。

复制代码
[H3C-R1]dis ospf lsdb

         OSPF Process 1 with Router ID 10.20.1.1
                 Link State Database

                         Area: 0.0.0.0
 Type      LinkState ID    AdvRouter       Age  Len   Sequence  Metric
 Router    10.20.1.3       10.20.1.3       138  48    80000005  0
 Router    10.20.1.2       10.20.1.2       140  72    80000007  0
 Router    10.20.1.1       10.20.1.1       1139 60    80000004  0
 Network   10.20.2.6       10.20.1.3       138  32    80000003  0
 Sum-Net   10.20.3.4       10.20.1.1       977  28    80000001  2
 Sum-Net   10.20.3.0       10.20.1.1       1118 28    80000001  1
 Sum-Net   10.20.1.5       10.20.1.1       892  28    80000001  2
 Sum-Net   10.20.1.4       10.20.1.1       977  28    80000001  1
                         Area: 0.0.0.1
 Type      LinkState ID    AdvRouter       Age  Len   Sequence  Metric
 Router    10.20.1.5       10.20.1.5       902  48    80000006  0
 Router    10.20.1.4       10.20.1.4       901  60    80000009  0
 Router    10.20.1.1       10.20.1.1       983  36    80000005  0
 Network   10.20.3.5       10.20.1.4       899  32    80000002  0
 Network   10.20.3.1       10.20.1.1       977  32    80000002  0
 Sum-Net   10.20.2.4       10.20.1.1       1118 28    80000001  2
 Sum-Net   10.20.2.0       10.20.1.1       1118 28    80000001  1
 Sum-Net   10.20.1.1       10.20.1.1       1118 28    80000001  0
 Sum-Net   10.20.1.3       10.20.1.1       1118 28    80000001  2
 Sum-Net   10.20.1.2       10.20.1.1       1118 28    80000001  1
[H3C-R1]
  • Area 0.0.0.0 内,除了原来的TYPE1、TYPE2 LSA,还多了4条TYPE3 LSA,分别是Area 1中Aear1-R4,R5的loopback接口,Aear1-R4的2个互联接口。
  • Area 0.0.0.1 内,包含了区域内3台路由器自身的TYPE1 LSA,R4上2个接口的TYPE2 LSA,同最初的Area 0一样,区域1作为一个网络(Network),它包含区域内所有路由器的信息TYPE1、TYPE2 LSA
  • Area 1中剩下的5条Sum-Net LSA,则是区域0和区域1之间的连接,分别是区域0的2个网络(Network)和3台路由器(Router)。

如下图所示,区域0中3个TYPE1,2个TYPE2 共计5条以TYPE3 LSA的形式通告给了区域1。

同样区域1中,3个TYPE1(包含R1),2个TYPE2 共计"5"条以TYPE3 LSA的形式通告给了区域0。那为什么区域0中只有4条Sum-Net LSA? 因为R1作为Area 1的ABR,没必要把自己通告自己了,所以只需要4条Sum-Net LSA即可。

Aear1-R4和R5的LSDB是什么样的呢?无需查看,肯定和R1中区域1的LSDB是一样的。

例如下面是R4的LSDB,和R1的区域1的LSDB是一样的。

复制代码
<Aear1-R4>dis ospf lsdb

         OSPF Process 1 with Router ID 10.20.1.4
                 Link State Database

                         Area: 0.0.0.1
 Type      LinkState ID    AdvRouter       Age  Len   Sequence  Metric
 Router    10.20.1.5       10.20.1.5       1388 48    80000007  0
 Router    10.20.1.4       10.20.1.4       1388 60    8000000A  0
 Router    10.20.1.1       10.20.1.1       1472 36    80000006  0
 Network   10.20.3.5       10.20.1.4       1388 32    80000003  0
 Network   10.20.3.1       10.20.1.1       1468 32    80000003  0
 Sum-Net   10.20.2.4       10.20.1.1       1608 28    80000002  2
 Sum-Net   10.20.2.0       10.20.1.1       1608 28    80000002  1
 Sum-Net   10.20.1.1       10.20.1.1       1608 28    80000002  0
 Sum-Net   10.20.1.3       10.20.1.1       1608 28    80000002  2
 Sum-Net   10.20.1.2       10.20.1.1       1608 28    80000002  1
<Aear1-R4>

区域间的路由传递

下面我们把Area 2也加入到OSPF域中。看看LSDB中都有什么类型的LSA。

拓扑如下所示。

图中R4,R6并不是ABR,是命名失误。R1,R3才是ABR。

R1作为Area 1的ABR,看看有什么类型的LSA。

可以看到:

  • R1的区域0的LSDB中,除了原来的LSA,又新增了4条与Area 3的域间TYPE3 LSA
  • R1的区域1的LSDB中,除了原来的LSA,又新增了4条与Area 3的域间TYPE3 LSA

那Area 3的LSDB中会有哪些LSA呢?对于下面的结果,想必你也能猜到。

三个区域的LSA通告示意图如下。

Type3 LSA小结

  1. Network Summary LSA由ABR生成,描述一个区域内的网络信息,并将该信息通告给其他区域。
  2. Network Summary LSA对外代表的是本区域内的Type1,Type2 LSA。
  3. 非0域的Network Summary LSA,需要通过0域来通告。(文中未体现,可通过实验验证)
  4. 0域可以和任何域的Network Summary LSA互相通告。

思考这个网络

Type1 LSA就像是众多的点(Router),这些点通过Type2 LSA组成网(Network),TYPE3 LSA将这些网(Network)组成更大的网。

由此,我们使用这3种LSA,便可以组建出一个健壮性极高的大型网络。

关于这个网络存在什么问题吗?当网络更大时,会有什么问题?

  1. 0域包含了所有区域的网络信息,未来LSDB会非常庞大。
  2. 0域中的路由器需要处理来自所有区域的LSA,压力会非常大。
  3. 非0域包含了其它所有域的Network Summary LSA,未来LSDB也会非常庞大。
  4. ABR需要处理两个域中的大量的LSA,压力会非常大。
  5. 巨大的LSDB会增加路由计算的时间,导致路由收敛时间增加。
  6. 全网任意一条路由的变动更新,都会被广播到全网所有区域,所有路由器。
  7. ......

关于这些问题如何解决我们后续会继续探讨。

总结

  1. OSPF通过多种类型的LSA来描述网络拓扑和路由信息,每种LSA都有其特定的作用和传播范围。
  2. LSDB是OSPF路由选择的基础,它包含了所有区域的LSA,是OSPF路由选择的依据。
  3. OSPF通过LSDB来计算路由,路由选择算法是Dijkstra算法。
  4. OSPF的路由选择是基于LSDB的,LSDB的大小直接决定了路由选择的效率。
相关推荐
haosend4 天前
传输网络概述:从PTN到SPN
路由器·交换机·spn·光传输·ptn
久绊A6 天前
H3C 交换机用户密码修改与策略管理指南
服务器·交换机·h3c
深念Y6 天前
腾达路由器无线中继模式:WISP与Client+AP什么意思
网络·wifi·智能路由器·路由器·ssid·腾达·无线中继
深念Y7 天前
OpenWrt路由器通过USB共享网络(随身WiFi/手机)简明教程
网络·智能手机·路由器·openwrt·数码·网络共享·流量
haosend9 天前
数据网络小知识-VLAN基础及延伸技术简介
路由器·vlan·交换机·数据网络
haosend12 天前
IP计算不求人,掩码,反掩码,通配符一次学会
路由器·交换机·数据网络
haosend15 天前
AI时代,传统网络运维人员的转型指南
python·数据网络·网络自动化
haosend17 天前
计算机基础百科-彻底搞懂子网掩码(Subnet Mask)与CIDR的地址掩码(Address Mask):从困惑到清晰
路由器·交换机·数据网络
haosend22 天前
【练习版】使用paramiko批量的查询,管理,配置路由器交换机
python·路由器·交换机·网络自动化