OSPF路由计算

OSPF域内路由计算

OSPF是链路状态路由协议,泛洪的是LsA: Link state Advertise,LsA本身不是报文,他需要基于Lsu报文传递,存放在LsDB中。

域内是指的OSPF区域内部

OSPF的区域划分:骨干区域

          非骨干区域

当路由器运行的0SPF协议,接口宣告到osPF进程当中,那么该接口的IP地址,子网掩码,以及其他的一些信息,都会生成链路状态

当路由器的一个接口宣告进了OSPF,那么这个接口就会生成链路状态,存放到LSA当中,每个路由器都会生成一个1类LSA,用来描述自身的直连链路状态

 

Type      :Router     LSA类型,router代表1类LSA,用来描述路由器自身直连接口的链路状态信息

Ls id      :1.1.1.1     链路状态ID,也就是这条LSA的名字,在1类LSA中,使用本路由器的router-id充当

Adv rtr      :1.1.1.1     通告者,产生这条LSA的路由器router-id

Ls age      :140       老化时间

Len      :48         报文长度

Options       :E        特殊区域标识 E=1 代表普通区域

                      E=8代表末节区域

                      E=8且N=1 代表NSSA区域

seq#      :80000002    序列号

chksum       :0xdf28      校验和

Link count   :2         链路状态数量

 

1类LSA

在1类LSA当中,使用4种1ink-type来描述链路状态:

1、当link-type为stubNet:用来描述一条路由信息的(叶子节点)

Link ID: 12.1.1.0      用来描述这条路由信息的网络号

Data   :255.255.255.0   用来描述这条路由信息的网络掩码

Metric :1562            用来描述该路由器达到目标网络的开销值

 

2、当link-type为P-2-P:用于描述直连链路上网络类型为P2P或者P2MP的邻居信息(树干信息)

Link ID: 2.2.2.2      用来描述该邻居的router-id

Data   :12.1.1.1      用来描述直连到该邻居接口的IP地址

Metric :1562        用来描述该路由器达到该邻居的开销值

 

3、当link-type为TransNet:用来描述直连链路上网络类型为广播或者NBMA的邻居信息

Link ID: 192.168.1.2     用来描述为节点的router-id,用DR的接口IP来充当

Data   : 192.168.1.2      用来描述自身直连伪节点的接口IP地址

Metric :1          用来描述自身到达伪节点的开销值

 

4、vlink

 

2类LSA

Type     : Network     LSA类型,用network来标识2类LSA,用来描述伪节点的信息

Ls id     :192.168.1.4   LSA名字,在不同类型的LSA中取值不同,2类LSA用DR的接口IP地址充当

Adv rtr    :4.4.4.4      通告者,DR所在路由器的router-id来标识

Ls age    :1165         老化时间

Len      :36        报文长度

Options     :E          特殊区域标识

seq#       :80000004      序列号

chksum     :0x5a60          校验和

Net mask  :255.255.255.0    2类LSA不仅可以标识邻居信息(树干信息),同时也可以描述路由信息(叶子)

Priority    :Low

  AttachedRouter     2.2.2.2      用来描述树干信息的,描述该伪节点直连的邻居信息

  AttachedRouter     3.3.3.3      用来描述树干信息的,描述该伪节点直连的邻居信息

  Attached Router      4.4.4.4      用来描述树干信息的,描述该伪节点直连的邻居信息

 

伪节点到所有叶子开销值为0。

————————————————————————————————————————————————

1、路由器的接口宣告进了OSPF进程,那么这个接口就会产生链路状态,链路状态包括:IP,掩码,邻居。

2、每个路由器都会产生一个1类LSA,用来描述自身的直连链路状态。。(我这个路由器有几个接口宣告进了OSPF就会产生几个链路状态,这些都叫做直连链路状态)

  Stubnet:用来描述一条叶子信息(路由)

  P-2-P:用来描述网络类型为P2P或者P2MP的邻居信息(树干、拓扑)

  Transnet:用来描述网络类型为广播或者NBMA,所产生的伪节点的信息(树干)

  vink:用来描述网络类型为虚链路的邻居信息(树干)

    link-id: 用来描述虛链路邻居信息(router-id)

    data :用来描述自身直连该邻居接口的IP地址 metric: 用来描述自身到达该虚链路邻居的开销值

3、当网络类型为广播或者NBMA时,DR会产生2类LSA,来描述伪节点信息,

  2类LSA既描述了树干信息,也描述了叶子信息

以上:当一个OSPF区域邻居建立完毕,并且LSA泛洪完毕之后,所有路由器产生的1类LSA,和广播网络产生的2类LSA,将会在该区域内进行泛洪和同步(所有该区域的路由器都会同步这个区域内所有的1类LSA和2类LSA)

4、1类LSA和2类LSA作为链路状态,在一个区域内进行泛洪,泛洪结束后,每个路由器都会以自己为根,计算出最短路径树

——————————————————————————————————————————————————

OSPF域间路由计算

1、OSPF区域设计原则:

  1.1 骨干区域有且只能有一个

  1.2 非骨干区域必须和骨干区域相连

  1.3 多区域的时候,必须有骨干区域

2、区域编号0,为骨干区域

  区域编号非0,为非骨干区域

3、每个区域都会维护一个独立的LSDB,区域内的1类和2类不会传递到其他区域那么每个区域都会维护自己独立的SPF树

连接多个区域且在骨干区域有的活动接口的路由器称为ABR

3类LSA:

Type           :Sum-Net    LSA类型,sum-net表示三类LSA,用来描述区域间的路由信息

Ls id           :3.3.3.3    3类LSA使用该路由信息的网络号表示

Adv rtr        :2.2.2.2       通告者:产生这条LSA的路由器(ABR)

Ls age        :571       老化时间

Len             :28         长度

Options      :E           特殊区域标识

seg#           :88000001    序列号

chksum      :0xae99      校验和

Net mask      :255.255.255.255    用来描述这条路由信息的网络掩码

Tos 0 metric    :1 ABR       到达这个目的路由的开销值

 

ABR会将非骨干区域里通过SPF算法得到的叶子信息转换为三类LSA放到骨干区域里进行泛洪和同步

 

区域1的所有路由器在收敛完毕后,会产生1类和2类LSA,这些LSA会在区域1内部进行泛洪和同步,路由器2同步到区域1的所有1类和2类LSA后,会计算区域1的SPF树,根据这颗SPF计算出的所有最优路由后,由于AR2自身是ABR,所以会将区域1所有计算出的最优路由转换成3类LSA在区域0进行泛洪和同步。

反之亦然:在区域0里面计算出来的最优路由,也会被转换成3类LSA在区域1里进行泛洪和同步。

R1在区域0收到了R2传递过来的3类LSA,由于自身是一台ABR,所以他会将区域0里面的3类LSA传递到其他区域,仍然以3类LSA万式传递。传递之前,需要更改这条3类LSA的通告者和Metric

路由器在根据3类LSA计算路由时,会计算自身路由器到达ABR的cost+3类LSA自身携带的cost

 

在区域内计算SPF树的时候,3类LSA会认为是ABR节点的子信息

3类LSA传递的是路由信息,不是链路状态。(在OSPF中,只有1类和2类LSA被看做链路状态,3类LSA是路由信息)

由于3类LSA被看做叶子信息,所以在一个区域内的SPF树来说,3类LSA的增加和减少对于SPF树没有任何影响。

3类LSA由于是路由信息,所以具有矢量特征,需要注意的一点!!!:只有在ABR上这条叶子信息加路表后才会被转换为3类LSA传递到其他区域

 

ABR

ABR:area border router

定义:当路由器连接了多个区域,且在骨干区域有一个活动接口

功能:1、将直连区域内通过1类和2类LSA计算出的最优路由,转换成其他区域的3类LSA

      2、将骨干区域的3类LSA转换成其他区域的3类LSA

 

区域内部路由器:IP:所有接口都宣告进一个区域

 

一旦路由器满足ABR条件,就会在1类LSA中置位ABR,来通告其他路由器自己是ABR角色

如果在OSPF进程中只创建了区域0,但是区域0中没有宣告任何活动接口,那么路由器依然会在1类LSA中置位ABR,但是不干ABR的工作。

非骨干区域的1类和2类计算出的路由只能被转换到骨干区域作为3类,然后再通过骨干区域的3类转换到其他非骨干区域。

防环原则:

OSPF区域间路由计算防环原则一:

为了避免区域间的环路,OSPF规定不同区域间的路由器交互只能通过ABR实现。ABR是连接到骨干区域的,所以在区域设计上规定,所有非骨干区域要连接到骨干区域。区域间的通讯需要通过骨干区域,行成逻辑上的星状拓扑,且无环。

OSPF区域间路由计算防环原则二:

1、ABR不会将非骨干区域的3类和4类LSA转换到骨干区域

2、ABR在骨干区域有邻居的时候,不会计算非骨干区域的3类LSA

3、如果ABR在骨干区域没有邻居,那么就会计算非骨干区域的3类LSA

OSPF区域间路由计算防环原则三:

1、无论COST,1类LSA优于3类LSA

 

虚链路:vlink

1、虚链路属于区域0的逻辑链路

2、虚链路只能穿越1个非骨干区域

3、虚链路不能穿越特殊区域

 

虚链路可以用来优化链路

 

vlink在配置的时候,需要指对方路由器的router-id,而非路由器接口IP地址id

1、当穿越的区域存在多条冗余路径时,vlink会自己选择最优路径的接口ip地址作为收发报文的接口

他是如何来计算最优路径呢:

配置了vlink的路由器会计算2棵SPF树。1棵是以自己为根,在穿越区域内计算最短路径树

另一颗是以vlinkpeer端来计算到达自己的最短路径树。

综上,决定了最优路径的接口IP地址来收发报文

2,同时由于存在冗余路径,当线路断的时候,SPF树不会断,从而vlink也不会断

配置命令:vlink-peer router-id

————————————————————————————————————————————

1类

路由器只要接口宣告进了OSPF,那么这个接口就会产生链路状态,然后通过1类LSA在本区域内进行泛洪和同步。

反过来说:1类LSA是用来描述路由器自身直连链路状态和自身邻居信息的,他还会标记一些路由器的角色

2类 当网络类型为广播或者NBMA的时候,那么邻居的描述就会用伪节点来描述。伪节点的信息是通过2类LSA来描述的

2类LSA除了描述伪节点邻居信息,同时也描述了叶子信息

3类 用来描述域间路由信息的LSA,由ABR路由器产生。

ABR会将直连区域内1类和2类LSA计算出的路由信息转换成3类LSA传递到其他直连区域

ABR会将骨干区域的3类LSA转换到其他直连区域继续作为3类LSA传递

————————————————————————————————————————————

OSPF外部路由计算

 

外部路由引入过程: 1、在路由器4的oSPF进程中使用命令import-route static来引入路由表中的静态路由

2、R4会触发更新2条Lsu,其中第一条是更新了R4的1类LSA其中的ASBR置位,来告诉域内小伙伴,我变成ASBR了,我要引入外部路由了

  第二条Lsu是更新的外部路由(5类LSA)

3、5类LSA的同步和泛洪原则:5类LSA的同步不基于区域的传递原则,是在整个0sPF域中进行泛洪,只要和其他路由器建立了邻接关系,就会泛洪这条5类LSA

  特殊区域除外

4、所有的外部路由在引入OSPF后,会以5类LSA存在于osPF数据库中,外部的cost将不在计算,将赋予5类LSA一个新的种子度量值(cost默认为1)

  这个默认开销值就会被认为是ASBR到达目标网络的开销值

5类LSA

Type           :External       LSA类型,externa1代表外部路由

Ls id           :5.5.5.5         使用外部路由的网络号来填充

Adv rtr        :4.4.4.4         通告者,使用ASBR路由器的router-id填充

Ls age        :708

Len             :36

Options       :E

seg#           :80800001

chksum       :0x9fad

Net mask         :255.255.255.255   描述了该外部路由器的网络掩码

Tos 0 Metric     :1            描述了该5类LSA到达目标网络的开销值cost

E type         :2            描述了该5类lsa的开销值类型

Forwarding Address:0.0.0.0        转发地址:当转发地址为0.0.0.0时,那么路由器在计算5类LSA时会去找ASBR计算

                          当转发地址为具体IP时,那么路由器在计算5类LSA时,就不在找ASBR了,会去通过SPF算法直接找FA地址作为下一跳

Tag :1

 

在路由表中外部引入的叶子信息类型为O_ASE,优先级为150。

E type

type 2:OSPF引入的外部路由默认type类型为2,当路由器计算type2的外部路由时,不会计算oSPF内部的cost, 只计算ASBR到达目标网络的cost

type 1:OSPF引入外部路由时,可以通过命令更改type类型,当路由器计算type1的外部路由时,会同时计算OsPF内部cost+ASBR到达目标网络的cost

使用场景:当不在意oSPF内部的次优路径问题时可以使用type2

    当在意oSPF内部次优路径问题时需要使用type1

    如果在数据库中存在相同目的的5类LSA且type不一致时,type1优于type2

ASBR

对于ASBR的理解:

1、当OSPF路由器使用了命令import-route以后,那么路由器就会在自己的1类LSA中置位ASBR。不论他是否真正引入的外部路由。

2、R4在Import-route命令敲完以后,就会在区域内触发更新自己的1类LSA,置位ASBR

3、当R3收到这条ASBR置位的1类LSA后,由于自身是一台ABR,那么他就会根据这条ASBR置位的1类LSA生成一条4类LSA,在其他直连区域内进行传递

   如果自身不是ABR角色,那么将不具备生成4类LSA的能力

   生成4类LSA的目的是为了,让其他区域的路由器在计算5类LSA时,可以找到ASBR在哪

  所以4类LSA被理解为,ASBR的介绍信

4、当ABR收到了4类LSA后,会将4类LSA的通告者换成自己后,在其他直连区域内进行传递,目的是为了让其他区域内的路由器可以计算出5类LSA

4类LSA

Type        :Sum-Asbr    LSA类型,ASBR表示4类LSA,用来描述ASBR信息

Ls id       :4.4.4.4     使用ASBR路由器的router-id填充

Adv rtr       :3.3.3.3     通告者,产生这条4类LSA的路由器router-id(一般由ABR产生)

Ls age       :1784

Len         :28

Options     :E

seq#       :80000002

chksum     :0x52eb

Tos 0 metric   :1        用来描述ABR路由器到达ASBR路由器的开销值

——————————————————————————————————————————————————

5类LSA

当我们在OSPF进程中,使用了import-route命令后,他就会将路由表中的其他协议的路由引入进OSPF中,引入后以5类LSA存在于LSDB

中5类LSA是在整个OSPF域中泛洪,不基于区域泛洪。也就是说,只要路由器之间建立了FULL关系,那么就会传递5类LSA。

4类LSA

当使用了lmport-route命令以后,路由器会在自己的1类LSA中将ASBR置位,那么当区域中的ABR路由器收到这条置位ASBR的1类LSA后,会根据这条1类LSA生成一条4类LSA在其他直连区域中泛洪。

4类LSA相当于介绍信,帮助其他区域的路由器在计算5类LSA时,指引了ASBR在哪里。

思考题:

1、有5类LSA就必须有4类LSA吗?

2、有4类LSA就一定有5类LSA吗?

否。

———————————————————————————————————————————————————

FA地址

什么情况下会产生FA地址:

1、ASBR路由器去往外部路由的出接口被宣告进OSPF

2、ASBR路由器去往外部路由的出接口没有被配置为静默接口

3、ASBR路由器去往外部路由的出接口不能是P2P

注释一下:并不代表必须有邻居

 

作用

FA地址的作用:

FA地址就是外部路由下一跳地址,用来对OSPF链路做优化的

1、当5类LSA中FA地址为0.0.0.0时,那就代表没有FA地址,那么路由器在计算5类LSA时会去找通告者为下一跳

2、当5类LSA中FA地址为具体IP时,那么就代表有FA地址,那么路由器在计算5类LSA时不会再去找通告者,而是通过SPF树计算FA地址来得出最优路径

 

默认路由(必考)

下发默认路由命令:

在ospf进程下写入:default-route-advertise

 

外部路由引入

在一个路由器上将进程1引入进程2:

ospf 1

import-route ospf 2 +路由策略

posted @ 2024-10-31 19:32  半个小菜鸟  阅读(46)  评论(0编辑  收藏  举报