【干货】网工人必须知道的OSPF路由计算知识点~
区域内路由计算
LSA概述
同一个区域中的所有路由器拥有完全一致的LSDB,如R2的LSDB所示,该网络中有多个LSA。
LSA的基本概念
LSA是OSPF进行路由计算的关键依据。
OSPF的LSU报文可以携带多种不同类型的LSA。
各种类型的LSA拥有相同的报文头部。
重要字段解释
LS Age(链路状态老化时间):此字段表示LSA已经生存的时间,单位是秒。
Options(可选项):每一个bit都对应了OSPF所支持的某种特性。
LS Type(链路状态类型):指示本LSA的类型。
Link State ID(链路状态ID):不同的LSA,对该字段的定义不同。
Advertising Router(通告路由器):产生该LSA的路由器的Router ID。
LS Sequence Number(链路状态序列号):当LSA每次有新的实例产生时,序列号就会增加。
LS Checksum(校验和):用于保证数据的完整性和准确性。
Length:是一个包含LSA头部在内的LSA的总长度值。
链路状态类型、链路状态ID、通告路由器三元组唯一地标识了一个LSA。
链路状态老化时间 、链路状态序列号 、校验和用于判断LSA的新旧
LS Age:当LSA被始发时,该字段为0,随着LSA在网络中被泛洪,该时间逐渐累加,当到达MaxAge(缺省值为3600s)时,LSA不再用于路由计算。
LS Sequence Number:该字段用于判断LSA的新旧或是否存在重复的实例。序列号范围是0x80000001-0x7FFFFFFF,路由器始发一个LSA,序列号为0x80000001,之后每次更新序列号加1,当LSA达到最大序列号时,重新产生该LSA,并且把序列号设置为0x80000001。
常见LSA的类型
在许多场合中,我们习惯使用类型值来称呼对应的LSA,例如1类LSA等同于Router LSA,2类LSA等同于Network LSA,以此类推。
Router-LSA
Router LSA详解 (1)
Router LSA(1类LSA):每台OSPF路由器都会产生。它描述了该路由器直连接口的信息。
Router LSA只能在所属的区域内泛洪。
V (Virtual Link ) :如果产生此LSA的路由器是虚连接的端点,则置为1。
E (External ):如果产生此LSA的路由器是ASBR,则置为1。
B (Border ):如果产生此LSA的路由器是ABR,则置为1。
links :LSA中的Link(链路)数量。Router LSA使用Link来承载路由器直连接口的信息。
Router LSA详解 (2)
Router LSA使用Link来承载路由器直连接口的信息。
每条Link均包含“链路类型”、“链路ID”、“链路数据”以及“度量值”这几个关键信息。
路由器可能会采用一个或者多个Link来描述某个接口。
度量值(Metric):Cost值。
Router LSA描述P2P网络
Router LSA描述TransNet
Network-LSA
Network LSA详解
Network LSA(2类LSA) :由DR产生,描述本网段的链路状态,在所属的区域内传播。
Network LSA 记录了该网段内所有与DR建立了邻接关系的OSPF路由器,同时携带了该网段的网络掩码。
Link State ID :DR的接口IP地址。
Network Mask:MA网络的子网掩码。
Attached Router:连接到该MA网络的路由器的Router-ID(与该DR建立了邻接关系的邻居的Router-ID,以及DR自己的Router-ID),如果有多台路由器接入该MA网络,则使用多个字段描述。
Network LSA描述MA网络
SPF计算过程
SPF算法 (1)
Phase 1:构建SPF树。
路由器将自己作为最短路径树的树根,根据Router-LSA和Network-LSA中的拓扑信息,依次将Cost值最小的路由器添加到SPF树中。路由器以Router ID或者DR标识。
广播网络中DR和其所连接路由器的Cost值为0。
SPF树中只有单向的最短路径,保证了OSPF区域内路由计算不会出现环路。
SPF算法 (2)
Phase 2:计算最优路由。
将Router-LSA、Network-LSA中的路由信息以叶子节点形式附加在对应的OSPF路由器上,计算最优路由。
已经出现的路由信息不会再添加到SPF树干上。
SPF算法举例
构建SPF树 (1)
1.R1以自己为根,检查Router LSA,对于非StubNet类型的Link,将Link ID加入候选列表并记录路径开销。
2.R1将候选列表中候选总路径开销最小的移到最短路径树上,并从候选列表中删除。
·注意:
候选总开销为本LSA中描述的Metric值和父节点到达根节点开销之和。
候选列表本质上记录的是邻居列表。
3.继续查询DR产生的Network LSA。将描述的拓扑信息添加到候选列表。如果LSA中所描述的分节点在最短路径树上已经存在,则忽略该分节点。
4.R1将候选总路径开销最小的邻居移到最短路径树上,并从候选列表中删除。
5.根据R2产生的Router LSA,将邻居信息记录在候选列表。
6.将候选总路径开销最小的邻居移到最短路径树上,并从候选列表中删除。
7.继续查询DR产生的2类LSA。将描述的拓扑信息添加到候选列表。
8.将候选总路径开销最小的邻居移到最短路径树上,并从候选列表中删除。
R3在候选列表中存在两个不同的Cost值,分别为48和2,因此将Cost值较小的添加到最短路径树,并从候选列表中删除。
9.查询R3的1类LSA,R3所有邻居都已在SPF树中,拓扑不再变化。
10.查询R5的1类LSA,将R4加入SPF树,并从候选列表删除。
11.查询R4的1类LSA,发现所有邻居已在SPF树干中。并且已计算完全部的LSA,SPF树构建完成。
计算最优路由
从根节点开始依次添加各节点LSA中的路由信息。
添加顺序为各节点加入SPF树的顺序,已经出现的忽略。
第二阶段根据Router LSA中的Stub、Network LSA中的路由信息,完成最优路由的计算。
从根节点开始,依次添加LSA中的路由信息(添加顺序按照每个节点加入SPF树的顺序):
10.0.1.1(R1)的Router LSA中,共1个Stub连接,网络号/子网掩码10.0.13.0/24,Metric=48;
10.0.12.2(DR)的Network LSA中,网络号/子网掩码10.0.12.0/24,Metric=1+0=1;10.0.2.2(R2)的Router LSA中,共1个Stub连接,网络号/子网掩码10.0.24.0/24,Metric=1+0+48=49;
10.0.235.2(DR)的Network LSA中,网络号/子网掩码10.0.235.0/24,Metric=1+0+1=2;
10.0.3.3(R3)的Router LSA中,共1个Stub连接,网络号/子网掩码10.0.13.0/24,已在R1上,忽略;
10.0.5.5(R5)的Router LSA中,共1个Stub连接,网络号/子网掩码10.0.45.0/24,Metric=1+0+0+1+48=50;
10.0.4.4(R4)的Router LSA中,共2个Stub连接,网络号/子网掩码10.0.24.0/24,已在R2上,忽略;网络号/子网掩码10.0.45.0/24,已在R5上,忽略。
结果验证
思考:为什么R1的OSPF路由表中的路由没有全部出现在全局路由表中?
思考题
01
(多选题)Router-LSA中主要包含哪几种链路类型?( )
A.P2P
C.StubNet
A.TransNet
D.Vlink
答案
点击下方空白处获得答案
ABCD
02
1.(判断题)经过SPF算法计算后,被认为是最优的OSPF路由一定会被放入路由器的路由表。( )
A.对
B.错
答案
点击下方空白处获得答案
B
OSPF根据LSDB计算路由表,LSDB中可能存在多种类型的LSA,并且所有的LSA有相同的报文头部格式。
同一区域的OSPF路由器拥有完全一致的LSDB。在只有一个区域的情况下,区域内部主要存在两种类型的LSA,即Router-LSA和Network-LSA。·每台路由器都会产生Router-LSA,描述了路由器的直连接口信息。
在MA网络中,DR会产生Network-LSA来描述接入该MA网络的所有路由器的Router-ID(其中包括DR自身),以及这个网络的掩码。