OSPF(三)OSPF域内路由

前言

主要讲解内容:

  1. OSPF如何计算域内路由
  2. 两种域内路由LSA
  3. SPF算法

预备知识

LSA :Link-State Advertisement

LSA(链路状态广播)是链接状态协议使用的一个分组,它包括有关邻居和通道成本的信息。 LSA被路由器接收用于维护它们的路由选择表。

LSA头部

LSA头部

LSA分类

只记录了比较常见的LSA

Type 描述
1 路由器LSA(Router LSA)
2 网络LSA(Network LSA)
3 网络汇总LSA(Network-summary-LSA)
4 ASBR汇总LSA(ABSR-summary-LSA)
5 AS外部LSA(AS-external-LSA)
7 NSSA外部LSA(NSSA-LSA)

Router LSA(路由器LSA)

每一台路由器都会产生路由器LSA通告。这个最基本的LSA通告列出了路由器所有的链路或接口,并指明了它们的状态和沿每条链路方向出站的开销,以及该链路上所有已知的OSPF邻居。这些LSA通告只会在始发它们的区域内部进行泛洪扩散。华为设备通过命令display ospf lsdb router self-originate可以查看路由器自己产生的LSA

Router LSA描述P2P网络

Router LSA
每台OSPF路由器使用一条Router-LSA描述本区域内的链路状态信息。
一条Router-LSA可以描述多条链接,每条链接描述信息由Link ID,Data,Link Type和Metric组成,

<RTA>display ospf lsdb router self-originate 

 Type   : Router        //LSA类型
 Ls id   : 1.1.1.1      //链路状态ID
 Adv rtr  : 1.1.1.1    //产生此LSA的路由器Router ID
 
 //拓扑信息
  * Link ID: 3.3.3.3       //邻居路由器的Router ID
  Data  : 10.1.13.1      //宣告该Router LSA的路由器接口的IP地址
  Link Type: P-2-P         
  Metric : 48
  
  //路由信息
* Link ID: 10.1.13.0          //该Stub网络的IP地址
Data  : 255.255.255.0    //该Stub网络的网络掩码
 Link Type: StubNet       
 Metric : 48          //开销值
 Priority : Low

Router LSA描述MA网络或NBMA网络

Router LSA描述MA网络或NBMA网络
在描述MA或NBMA网络类型的Router-LSA中,Link ID为DR的接口IP地址,Data为本地接口的IP地址。
如图所示:

RTB、RTC、RTE之间通过以太链路互连,以RTC产生的LSA为例,Link ID为DR的接口IP地址(10.1.235.2),Data为本地路由器连接此MA网络的接口IP地址(10.1.235.3),Link Type为TransNet,Metric表示到达DR的开销值。

TransNet描述的链接中仅包括与DR的连接关系及开销,没有网络号/掩码及共享链路上其他路由器的任何信息。

<RTC>display ospf lsdb router self-originate 

 Type   : Router    //LSA类型
 Ls id   : 3.3.3.3   //链路状态ID
 Adv rtr  : 3.3.3.3   //产生此LSA的路由器的Router ID

//拓扑信息
  * Link ID: 10.1.235.2  //DR的接口IP地址
   Data  : 10.1.235.3   //宣告该Router LSA的路由器接口的IP地址
   Link Type: TransNet   
   Metric : 1

小技巧

如果Link ID与Data是一致的,则该路由器在本网段为DR

为什么,多路访问网络中的Router LSA只有拓扑信息,没有路由信息?多路访问网络的路由信息由该网络中的DR产生第二类LSA通告。

Network LSA (网络LSA)

每一个多路访问网络中的指定路由器(DR)将会产生网络LSA通告。正如前面讨论的,DR路由器可以看作一个“伪”节点,或是一个虚拟路由器,用来描绘一个多路访问网络和与之相连的所有路由器。从这个角度来看,一条网络LSA通告也可以描绘一个逻辑上的“伪”节点,就像一条路由器LSA通告描绘一个物理上的单台路由器一样。网络LSA通告列出了所有与之相连的路由器,包括DR路由器本身。就像路由器LSA一样,网络LSA也仅仅在产生这条网络LSA的区域内部进行泛洪扩散。

Network LSA描述MA、NBMA网络

MA、NBMA共享网段中的网络号/掩码以及路由器间的链接关系,通过Network LSA来呈现。

<RTB>display ospf lsdb network self-originate

  OSPF Process 1 with Router ID 2.2.2.2
​      Area: 0.0.0.0
  Link State Database 
//拓扑信息、路由信息
Type   : Network       //LSA类型
 Ls id   : 10.1.235.2     //DR接口的IP地址
Adv rtr  : 2.2.2.2       //产生此Network LSA的路由器Router ID及DR的Router ID
 Net mask : 255.255.255.0    //网络掩码
  Priority : Low
Attached Router  2.2.2.2 //连接到该网段的路由器列表,呈现了此网段的拓扑信息
Attached Router  3.3.3.3
 Attached Router  5.5.5.5
 //基于上述字段表达的信息,LS ID和Net mask做与运算,即可得出该网段的IP网络号,另外,从DR路由器到其所连接的路由器的开销为0
 //从Attached Router部分可以看出,2.2.2.2、3.3.3.3、5.5.5.5共同连接到该共享MA网段中,DR路由器为2.2.2.2,网络号10.1.235.0,掩码255.255.255.0。

OSPF区域内的LSDB

LSDB

链路状态数据库。LSA是LSDB的最小组成单位,也就是说LSDB有一条条LSA组成。
OSPF拓扑

通过display ospf lsdb来查看路由器上的LSDB信息

如图所示,五台路由器互连并运行OSPF协议。以RTA的LSDB为例,其中包括了五个路由器产生的Router-LSA,以及两个广播型网络中产生的Network-LSA

注意
DR的选举
  1. 每个网段中之间选举
  1. P2P网络中不会选举DR、BDR

所以该拓扑中只有RTA和RTB之间;RTB和RTC、RTE之间选举出两个DR

<RTA>display ospf lsdb 

  OSPF Process 1 with Router ID 1.1.1.1
              Link State Database 
​                      Area: 0.0.0.0
 Type         LinkState ID      AdvRouter      Age      Len      Sequence      Metric
 Router         4.4.4.4          4.4.4.4      1436      72       80000007        48
 Router         2.2.2.2          2.2.2.2      1305      72       80000019         1
 Router         1.1.1.1          1.1.1.1      1304      60       80000007         1
 Router         5.5.5.5          5.5.5.5      1326      60       80000017 		  1
 Router         3.3.3.3	         3.3.3.3      1325 		60 	     8000000F         1
 Network       10.1.235.2 	     2.2.2.2      1326      36       80000004         0
 Network       10.1.12.2         2.2.2.2      1305      32       80000001         0

SPF算法

SPF算法(最短路径优先算法)也被称为Dijkstra算法,是由荷兰计算机科学家狄克斯特拉于1959年提出的。

SPF算法将每一个路由器作为根(ROOT)来计算其到每一个目的地路由器的距离,每一个路由器根据一个统一的数据库会计算出路由域的拓扑结构图,该结构图类似于一棵树,在SPF算法中,被称为最短路径树。在OSPF路由协议中,最短路径树的树干长度,即OSPF路由器至每一个目的地路 由器的距离,称为OSPF的Cost。SPF使用开销(cost)作为度量值。

SPF算法基本步骤
  1. 构建SPF树
    根据Router LSA和Network LSA中的拓扑信息,构建SPF树干
  1. 计算最优路由
    基于SPF树干和Router LSA、Network LSA中的路由信息,计算最优路由

步骤详解

以下图拓扑为例来解释SPF算法具体步骤
OSPF拓扑

步骤1

OSPF路由器将分别以自身为根节点计算最短路径树。以RTA为例,计算过程如下
RTA将自己添加到最短路径树的树根位置,然后检查自己生成的Router-LSA,对于该LSA中所描述的每一个连接,如果不是一个Stub连接,就把该连接添加到候选列表中,分节点的候选列表为Link ID,对应的候选总开销为本LSA中描述的Metric值和父节点到达根节点开销之和。
根节点RTA的Router-LSA中存在TransNet中Link ID为10.1.12.2 Metric=1和P-2-P中Link ID为3.3.3.3 Metric=48的两个连接,被添加进候选列表中。
RTA将候选列表中候选总开销最小的节点10.1.12.2移到最短路径树上,并从候选列表中删除。
在这里插入图片描述

步骤2

DR被加入到SPF中,接下来检查Ls id为10.1.12.2的Network-LSA。如果LSA中所描述的分节点在最短路径树上已经存在,则忽略该分节点。

如图所示,在Attached Router部分:
节点1.1.1.1被忽略,因为1.1.1.1已经在最短路径树上。
将节点2.2.2.2,Metric=0,父节点到根节点的开销为1,所以候选总开销为1,加入候选列表。
候选节点列表中有两个候选节点,选择候选总开销最小的节点2.2.2.2加入最短路径树并从候选列表中删除。
在这里插入图片描述

步骤3

节点2.2.2.2新添加进最短路径树上,此时继续检查Ls id为2.2.2.2的Router-LSA:
第一个TransNet连接中,Link ID为10.1.12.2,此节点已经在最短路径树上,忽略。
第二个TransNet连接中,Link ID为10.1.235.2,Metric=1,父节点到根节点的开销为1,候选总开销为2,加入候选列表。
第三个P-2-P连接中,Link ID为4.4.4.4,Metric=48,父节点到根节点的开销为1,候选总开销为49,加入候选列表。
候选节点列表中有三个候选节点,选择候选总开销最小的节点10.1.235.2加入最短路径树并从候选列表中删除。
在这里插入图片描述

步骤4

lDR被加入到SPF中,接下来检查Ls id为10.1.235.2的Network-LSA。

如图所示,在Attached Router部分:
节点2.2.2.2被忽略,因为2.2.2.2已经在最短路径树上。
将节点3.3.3.3,Metric=0,父节点到根节点的开销为2,候选总开销为2,加入候选列表。(如果在候选列表中出现两个节点ID一样但是到根节点的开销不一样的节点,则删除到根节点的开销大的节点。所以删除节点3.3.3.3 累计开销为48的候选项)。
将节点5.5.5.5,Metric=0,父节点到根节点的开销为2,候选总开销为2,加入候选列表。
候选节点列表中有三个候选节点,选择候选总开销最小的节点3.3.3.3和5.5.5.5加入最短路径树并从候选列表中删除。
在这里插入图片描述

步骤5

节点3.3.3.3和5.5.5.5新添加进最短路径树上,此时继续检查Ls id分别为3.3.3.3和5.5.5.5的Router-LSA。

Ls id为3.3.3.3的LSA:
Link ID为10.1.235.2的节点已经在最短路径树上,忽略。
pLink ID为1.1.1.1的节点已经在最短路径树上,忽略。
在这里插入图片描述

步骤6

Ls id为5.5.5.5的LSA:
Link ID为10.1.235.2的节点已经在最短路径树上,忽略。
Link ID为4.4.4.4的P-2-P连接,Metric=48,父节点到根节点的开销为2,候选总开销为50。因为节点4.4.4.4已经在候选列表中出现,且候选总开销为49。49<50,所以子节点4.4.4.4的父节点选择2.2.2.2。

至此,再通过命令display ospf lsdb router 4.4.4.4发现,LSA中的连接所描述的相邻节点都已经添加到了SPF树中。
此时候选列表为空,完成SPF计算,其中10.1.12.2和10.1.235.2是虚节点(DR)。
在这里插入图片描述

步骤7:计算最优路径

第二阶段根据Router LSA中的Stub、Network LSA中的路由信息,完成最优路由的计算。

从根节点开始,依次添加LSA中的路由信息(添加顺序按照每个节点加入SPF树的顺序):
p1.1.1.1(RTA)的Router LSA中,共1个Stub连接,网络号/掩码10.1.13.0/24,Metric=48;
p10.1.12.2(DR)的Network LSA中,网络号/掩码10.1.12.0/24,Metric=1+0=1;
p2.2.2.2(RTB)的Router LSA中,共1个Stub连接,网络号/掩码10.1.24.0/24,Metric=1+0+48=49;
p10.1.235.2(DR)的Network LSA中,网络号/掩码10.1.235.0/24,Metric=1+0+1=2;
p3.3.3.3(RTC)的Router LSA中,共1个Stub连接,网络号/掩码10.1.13.0/24,已在RTA上,忽略;
p5.5.5.5(RTE)的Router LSA中,共1个Stub连接,网络号/掩码10.1.45.0/24,Metric=1+0+0+1+48=50;
p4.4.4.4(RTD)的Router LSA中,共2个Stub连接,网络号/掩码10.1.24.0/24,已在RTB上,忽略;网络号/掩码10.1.45.0/24,已在RTE上,忽略。
在这里插入图片描述

查看OSPF路由表

<RTA>display ospf routing

  OSPF Process 1 with Router ID 1.1.1.1
  Routing Tables 
 Routing for Network 
 Destination      Cost      Type         NextHop         AdvRoute      Area
 10.1.12.0/24       1      Transit      10.1.12.1        1.1.1.1       0.0.0.0
 10.1.13.0/24      48      Stub         10.1.13.1        1.1.1.1       0.0.0.0
 10.1.24.0/24      49      Stub         10.1.12.2        2.2.2.2       0.0.0.0
 10.1.45.0/24      50      Stub         10.1.12.2        5.5.5.5       0.0.0.0
 10.1.235.0/24      2      Transit      10.1.12.2        2.2.2.2       0.0.0.0
 Total Nets: 5 
 Intra Area: 5 Inter Area: 0 ASE: 0 NSSA: 0 

单区域OSPF配置

路由器单区域配置

ospf router-id 1.1.1.1
area 0
network [相邻网段] [反子网掩码]
network 10.1.12.0 0.0.0.255   //举例
发布了20 篇原创文章 · 获赞 27 · 访问量 3192

猜你喜欢

转载自blog.csdn.net/qq_46254436/article/details/104555070