「OSPF」- 域内路由:通告、计算(Inter-area Route:LSA TYPE 1, LSA TYPE 2)

  CREATED BY JENKINSBOT

问题描述

对于区域内路由(Intra-area Route)计算,仅需要 LSA Type 1 与 LSA Type 2 便可完成。

LSA TYPE 1: Router LSA

名称:路由器 LSA;一类 LSA;
来源:每台设备
作用:正如其名称(Router LSA),是用来描述设备自身的信息,包括 自身接口信息、所连链路信息、开销信息 等等;
范围:仅能在 Interface 所属 Area 内泛洪;

我们的拙见

在 MA-Network 中,Link-Type=TransNet 无法完整地描述网段信息:针对 Router 来说,其仅知道自己所在的 MA-Network,但是并不清楚在 MA-Network 中的其他设备。所以引入 Network-LSA 类型,由 DR 负责向各个 Router 通告 MA-Network 相关的信息。而 Router-LSA.Link-Type.TransNet 只是让 Router 通知 DR 其在当前 MA-Network 中。

要想描述完整的网络拓扑,需要两种类型的数据 —— 设备及网络:
1)在 P2P-Network 中: Router-LSA.Link-Type.P2P 描述设备(接口信息、所连设备);Router-LSA.Link-Type.StubNet 描述网段;两者是同时出现,能够确定 P2P 的路由信息;
2)在 MA-Network 中:Router-LSA.Link-Type.TransNet 描述信息;而 Network-LSA 负责描述网络信息;

LSA TYPE 2: Network LSA

名称:网络 LSA;二类 LSA;
来源:DR(注意 BDR 不产生)
作用:携带该网段的网络掩码;描述 DR与其有邻接关系的路由器
范围:在 Broadcase Network 中;仅能在接口所属区域内泛洪;

路由通告

WIP

路由计算流程概览

Phase 1:构建 SPF 树 ⇒ 摆放设备

流程:路由器将自己作为最短路径树的树根,根据 Router-LSA 和 Network-LSA 描述的拓扑信息,依次将 Cost 值最小的路由器添加到 SPF Tree 中。

解释(按照我们的理解来解释):
1)P2P 与 TransNet 都是在描述链路信息(直连网络信息),其中包含设备的 Router ID(或接口地址),还有设备间的开销
2)通过(1)的三要素,以当前设备为根,我们能够补充其直连网络,以及直连网络内的设备 ⇒ 这就是拓扑还原的过程;
3)然后,继续向下递归地挂接设备(但对于到达同个目的,仅保留累计开销最小的),直到所有设备全部已经挂接到 SPF 树中;

补充:
1)路由器以 Router ID 或 DR 来标识;
2)在 MA Network 中,DR 和其所连接路由器的 Cost 值为 0 ⇒ 这是定义
3)在 SPF树中,只有单向的最短路径,此举保证 OSPF Area 内路由计算不会出现环路;
4)仅检查 非 StubNet 类型的 LSA 数据,因为 StubNet 描述的是路由信息;

Phase 2:计算最优路由 ⇒ 挂接路由

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

解释(按照我们的理解来解释):
1)在 Phase 1 中,所有的设备已完成最佳排序的挂接;
2)然后,仅需从树根开始,将路由信息绑定到其首次出现的设备上;

补充:
1)已经出现的路由信息不会再添加到 SPF 树干上。

路由计算简单示例

当 LSA 同步完成后,AR1 的 LSDB 将拥有整个 Area 的所有 LSA 信息(其他 AR 设备也是如此),鉴于此我们这里以 AR1 为例进行解释。

查看 LSDB 信息

<AR1>display ospf lsdb 

	 OSPF Process 1 with Router ID 10.0.1.1
		 Link State Database 

		         Area: 0.0.0.0
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    10.0.5.5        10.0.5.5          1350  60    80000013       1
 Router    10.0.3.3        10.0.3.3           964  60    80000018      48
 Router    10.0.4.4        10.0.4.4          1349  72    80000011      48
 Router    10.0.2.2        10.0.2.2           929  72    80000020       1
 Router    10.0.1.1        10.0.1.1           930  60    8000001A       1
 Network   10.0.235.2      10.0.2.2          1364  36    80000010       0
 Network   10.0.12.2       10.0.2.2           929  32    80000003       0

从上述 LSDB 概述中,我们能够得知:
1)整个 Area 内,有五台路由器(根据 Type=Router 的数量),以及两个 MA 网络(根据 Type=Network 的数量);
2)实际的拓扑中,还包含 P2P 网络 ⇒ 这些信息隐藏在 Type=Router 条目中。

拓扑还原(设备摆放)

OSPF 要求以当前设备为树根,所以我们查看 AR1 的 Type=Router、LinkState ID=10.0.1.1 条目:

<AR1>display ospf lsdb router 10.0.1.1
...
  Type      : Router
  Ls id     : 10.0.1.1
  Adv rtr   : 10.0.1.1  
  Ls age    : 1651 
  Len       : 60 
  Options   :  E  
  seq#      : 8000001a 
  chksum    : 0x44f0
  Link count: 3
   * Link ID: 10.0.12.2    
     Data   : 10.0.12.1    
     Link Type: TransNet     
     Metric : 1
   * Link ID: 10.0.3.3     
     Data   : 10.0.13.1    
     Link Type: P-2-P        
     Metric : 48
   * Link ID: 10.0.13.0    
     Data   : 255.255.255.0 
     Link Type: StubNet      
     Metric : 48 
     Priority : Low

通过这条 Router LSA 信息,能够直接得知:
1)P-2-P 与 StubNet 直接能够还原出:AR1 的 10.0.13.1 直连 10.0.13.0/24 的 P2P 网络,对端的 Router ID=10.0.3.3
2)TransNet 表示 10.0.12.1 接口连接一个 MA 网络,其中 DR 接口地址是 10.0.12.2

接下来,就要通过 Link ID=10.0.12.2 来查看 Network LSA,以找到这个网络的信息:

<AR1>display ospf lsdb network 10.0.12.2
...
  Type      : Network
  Ls id     : 10.0.12.2
  Adv rtr   : 10.0.2.2  
  Ls age    : 238 
  Len       : 32 
  Options   :  E  
  seq#      : 80000004 
  chksum    : 0xe135
  Net mask  : 255.255.255.0
  Priority  : Low
     Attached Router    10.0.2.2
     Attached Router    10.0.1.1

根据这条 Network LSA 信息,能够得知:
1)这个 MA 网络为 10.0.12.0/24,
2)并且还有 Router ID=10.0.2.2 设备(Router ID=10.0.1.1 是自身,忽略)

至此,结合这两条 LSA(Router LSA 与 Network LSA),我们得知:
1)到达 AR1 可以通过 AR2 与 AR3,但由于通过 AR2 经过 10.0.12.0/24 到达 AR1 开销最小(Metric=1+0),因此选取该路由。
2)而通过 AR3 到达 AR1 的开销较大(Metric=48+0),因此忽略该路径。但暂留,因为 AR3 也是在 Area 内的设备,还未被挂接;

后面,继续按照该算法,选找 AR2 后面到达 AR1 设备最近的设备。但要注意,路径的开销是累加的,而 LSA 中的 Metric 并非累计开销。

路由计算(挂接路由)

将 LSDB 中描述网络的 LSA 挂接在其首次出现在的设备上。

常见问题

Q:路由的下一跳都是 DR 设备,那么流量是否都会通过 DR 设备?
A:不能这样理解,因为 DR 的目的是减少网络内 LSA 报文,任何设备都可能成为 DR。只是有时候计算 SPF Tree 之后,具有 DR 功能的路由器正好在路径上,导致看起来像是所有流量都通过 DR 设备。