为什么 OSPF 需要 Type2 LSA?

网络工程 思科 路由 路由器 ospf
2021-07-09 16:29:49

了解有关 CCNP 研究的 OSPF 的更多信息。我正在研究 OSPF 如何构建其链接,并且刚刚介绍了 Type1 LSA。看看 Type1 LSA,我想知道为什么这些是必要的?

我正在阅读的这本书暗示,Type2 LSA 用于帮助路由器构建拓扑的“难题”,就好像仅使用 Type1 LSA 无法找出拓扑中的所有链路一样。似乎 Type1 LSA 为路由器提供了足够的信息,以便能够推导出两个甚至更多路由器是如何链接的。也许我正在阅读的这本书有一些糟糕的例子,但我看不到 OSPF 从 Type2 LSA 中获得了什么,并且很难理解它们是如何工作的。

4个回答

需要注意的是,类型 2 LSA 仅在已选择 DR/BDR 的网段上生成 - 这包括 BMA(广播多址)和 NBMA(非广播多址)网络。DR 是生成类型 2 LSA 的原因。通过配置您选择在其上运行 OSPF 的以太网接口,可以绕过此行为point-to-point(这也将阻止 DR 选举过程)。

在广播(以太网)或非广播多址(帧中继)介质上运行 OSPF 时,类型 2 LSA 是有益的。简而言之,是的,路由器可以使用类型 1 LSA 并详细说明每个路由器到所有其他路由器的链接,但这是低效的,并且会给 OSPF LSDB 带来不必要的膨胀。为了缓解这种情况,使用类型 2(网络)LSA 来表示广播子网。然后每个路由器 LSA 都有一个到广播子网的网络 LSA 的链接,并且网络 LSA 有到每个路由器 LSA 的链接。这是一个数学问题 - 对于每个使用类型 1 LSA 的路由器,您n * (n - 1)在链接状态数据库中都有链接。对于 2 类 LSA,这个数字减少到n * 2.

我强烈推荐阅读John Moy 关于 OSPF 的书他还为该协议编写了​​最初的 RFC。

很好的解释了!

也许这个图形有助于形象化。

LSA Flow 根据面积结构

此外:Type-2 LSA 仅用作 MA 段中路由器的“虚拟实例”,该伪节点与网络上所有连接的路由器(包括 DR/BDR)邻接,并列出该段上所有连接的路由器 (RID) . 对于传输 LSA,他们(DR/BDR)也使用 Type-1 LSA。

R1# sh ip ospf database
        OSPF Router with ID (1.1.1.1) (Process ID 1)
            Router Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum Link count
1.1.1.1         1.1.1.1         708         0x80000003 0x008686 2
2.2.2.2         2.2.2.2         709         0x80000003 0x00CB0C 2

            Net Link States (Area 0)
Link ID               ADV Router    Age         Seq#              Checksum
192.168.0.2     2.2.2.2         709         0x80000001 0x0014A6

R1# sh ip ospf database network
        OSPF Router with ID (1.1.1.1) (Process ID 1)
            Net Link States (Area 0)
  Routing Bit Set on this LSA in topology Base with MTID 0
  LS age: 780
  Options: (No TOS-capability, DC)
  LS Type: Network Links
  Link State ID: 1.1.1.1 (address of Designated Router)
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000001
  Checksum: 0x14A6
  Length: 32
  Network Mask: /24
    Attached Router: 2.2.2.2
    Attached Router: 1.1.1.1

R1#sh ip ospf database router self-originate
        OSPF Router with ID (1.1.1.1) (Process ID 1)
            Router Link States (Area 0)
  LS age: 400
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 1.1.1.1
  Advertising Router: 1.1.1.1
  LS Seq Number: 80000002
  Checksum: 0x729C
  Length: 48
  Number of Links: 2

Link connected to: a Stub Network
 (Link ID) Network/subnet number: 11.11.11.11
 (Link Data) Network Mask: 255.255.255.255
  Number of MTID metrics: 0
   TOS 0 Metrics: 1

Link connected to: a Transit Network
 (Link ID) Designated Router address: 192.168.0.1
 (Link Data) Router Interface address: 192.168.0.1
  Number of MTID metrics: 0
   TOS 0 Metrics: 10

这是 LSA 2 可能有用的示例(未在原始答案中找到):

R1----|----R2----|----R3 - 全部连接在广播媒体上。

假设 R3 链接断开:

R1----|----R2----|

当死区定时器到期时,R2 将检测到 R3 下降。但是 R1 怎么知道 R3 关闭了,因为 R2 不会改变它的类型 1 LSA(R2 到 R3 的链接仍然存在)。答案是 R2 将泛洪类型 2 LSA,其中它说 R3 不再是伪节点的一部分。收到此更新后,R1 将删除使用 R3 作为中转的路由。有趣的是,R1 仍然具有 R3 类型 1 LSA。它只是看到图形被中断(来自 R2 发送的类型 2 lsa)。

我认为一个原因是,在 Router-LSA 中,网络仅表示为该网络的 DR 的 IP 地址(无网络掩码),而 IP 和网络掩码都包含在网络 LSA 中。

从概念上讲,是 DR 标识网络,而不是链接到网络的普通路由器。

另一个原因是这样的 Network-LSA 将被发送给其他人并作为一个单元超时。例如,退休的 DR 可以刷新其旧的 Network-LSA,以便从其他路由器的链路状态数据库中删除该网络。