小何要努力

小何要努力

OSPF--->OSPF的LSA类型

77
2023-10-22

OSPF的LSA类型

1类LSA:

作用:描述路由器自身直连链路的链路状态类型。

产生者:但凡运行ospf协议的路由器都会产生1类LSA。

1类LSA的链路状态,由4种链路类型来进行描述

①网络(路由)信息

stubnet 描述路由器直连网络号

link id 直连的网络号

data 子网掩码

metric 自身到直连网络的ospf的cost

=================================

②拓扑信息

transnet 描述BRO/NBMA链路上的(伪节点)邻居

link id 伪节点的router-id,由DR的接口地址充当伪节点的router-id

data 路由器自身和伪节点相连的接口IP

metric 到伪节点的开销

=================================

③P2P类型信息

P2P 描述P2P/P2MP链路的(实节点)邻居

link id 邻居的router-id

data 和邻居相连的接口地址

metric 到邻居的cost

=================================

④virtual类型信息

virtual 描述vlink上的(实节点)邻居

link id vlink上的邻居的相连的接口IP

data 和vlink上的邻居相连的接口IP

metric 到vlink上邻居的开销

=================================

1.P2P类型:

查看R1发送的LSA信息:

注:可以通过LSA来分析出同一区域的整个网络的拓扑形状,且同一区域内的邻居的LSDB信息都会同步,达到完全一致

2.transnet(伪节点)类型:

为什么会产生伪节点?

此处的R2,R3,R4处于同一个广播类型网络中,为了减少它们之间的LSA交互数量。将它们所连的整个广播链路看成一个伪节点

伪节点的link ID是DR的物理接口地址 。R2,R3,R4只用描述自己物理接口IP地址到伪节点的LSA信息

查看R2发送的LSA信息:

查看R1路由器上到达3.3.3.3路由的开销:

此时的开销值应该是R1的g0口加上R2的g1口的开销和,48+1=49。

(因为从伪节点到达各路由器之间的开销同一为0)

==========================================================

基于BRO/NBMA类型链路下的DR/BDR的选举:

主从选举、DR/BDR选举、伪节点的概念

①主从选举是为了让邻居之间交互DD报文的时候,增加整个过程的可靠性。(seq序列号加1)

②DR/BDR的选举是为了减少网络中的邻接关系数量,从而减少网络中的LSA交互数量

③伪节点是为了计算路由的时候,更加简化拓扑结构,从而虚拟出来的路由器,算法上的需要。

一条BRO/NBMA型链路都会进行DR/BDR的选举;一条广播链路就会产生一个伪节点,生成一条链路类型为Transnet的LSA

DR/BDR选举原理

①比较接口的优先级,默认等于1,取值范围0 - 255(优先级越大越先)

②优先级相同,则比较router id,router id越大,优先----DR,次大---BDR

③DR/BDR没有抢占性

(1)若链路中有高于DR优先级的接口加入,不会抢占DR的位置,即使DR此时down掉,也会是BDR先成为DR。

(2)特殊情况:

先将交换机的g2口划分到vlan10,此时的R3是vlan10里的DR,R2和R4是vlan1的DR/BDR;

后将g2口划分回vlan1,则R3的Hello包会随机与R2或者R4的hello包进行碰撞,R3会成为新的DR,或者新的BDR。

④优先级若设置成0,证明该物理接口的状态角色只能为DRother,不会参与到DR/BDR的选举中。

注:广播型链路中不能设置所有的接口优先级都为0,会导致所有的邻居状态都停留在two-way,不能交互LSA。

DR/BDR失效情况

①如果DR失效,如果有BDR,则BDR成为新的DR,会重新选举BDR

②BDR/BDR/DRother之间会保持full的邻居关系;DRother之间保持two-way的邻居关系

③DR,BDR同时监听224.0.0.5,224.0.0.6,DRother监听224.0.0.5

2类LSA

作用:描述MA/NBMA网络类型中,连接到伪节点上的实结点具体信息。(伪节点所在的网段的路由信息,也由2类LSA生成)

产生者:2类LSA由DR产生

详细的2类LSA信息:

1,2类LSA总结:

1类2类LSA只会在本区域内传播,且本区域的每个路由器上的LSDB都相同。如果同一个区域里的设备过多,就导致ospf整个进程极其不稳定。

此时需要引入ospf多区域的概念。

多区域、3类LSA、Vlink

OSPF多区域概念

ospf为什么要划分区域?

如果单一的一个区域规模很大,设备数量很多,链路数量多,会产生许多问题。

①任何链路状态信息发生改变的1类2类LSA的更新都需要在整个区域中进行泛洪

②当网络不稳定时,整个区域的所有路由器都会参与到SPF的重新计算,稳定性较差(导致某些性能不是很好的路由器负载过重)

③可以通过路由汇总,划分特殊区域等操作,减少路由条目。

OSPF多区域的特点:

①将网络划分层2层的区域结构,一层为骨干区域即area 0,一层为非骨干区域,即 非area 0

②area 0 有且只有一个,并且要连续

③非骨干区域一定要和骨干区域直接相连

OPSF的防环机制:

区域内防环:

通过1类,2类LSA计算出的路由信息成为区域路由,通过SPF算法计算出的路由,100%避免路由环路

因为不管是实节点还是伪节点,只能在树上出现一次(开销相同的时候会出现冗余链路)

多区域间防环:

①ABR不会将非骨干区域的3类再次传回到骨干区域

1.1的3类LSA从区域1传递给区域0,经过3 4 两台ABR之后,不会再回到a0区域

② 非骨干区域要和骨干区域直接相连

③区域0有且只有一个,并且连续

3类LSA和区域间路由

作用:用来将直连区域的区域内路由转化成其他直连区域的3类LSA,完成区域间的路由计算。

产生者:3类LSA由ABR路由器产生

详细的3类LSA信息:

区域间的路由计算:

ABR将区域0中的三类转化成其他骨干区域的3类LSA。

cost = 自身到ABR的开销+ABR到路由的开销

48        +        49    = 97 

next-hop = 自身到ABR的下一跳,根据到ABR的SPF树进行计算

10.0.46.4      

3类LSA在多个区域进行传播:

区域1中的RTD将自己的1类2类生成的路由信息,在RTB上通过3类传递到区域0中。

RTC将该3类传递给RTE时,会将三类LSA中的adv rtr字段由RTB的router id改为自己的router id,再传递给RTD。

VLINK机制

VlINK的基本概念:

1、只要创建的VLINK的路由器都是ABR

2、VLINK永远属于区域0的链路

3、VLINK只能在非骨干区域创建,只能额跨越一个非骨干区域

4、特殊区域不能创建VLINK

5、用于修复不连续的骨干区域

6、将非骨干区域和骨干区域直接相连

7、用作骨干区域的备用路径

注意:能不用VLINK技术就尽量不用,增加了网络的复杂性(一般临时救急)

VLINK作用典型场景:

①用于修复不连续的骨干区域

②用于将骨干区域和非骨干区域直接相连

VLINK配置:

5类LSA、4类LSA、引入外部路由选路规则

作用:用来描述到AS外的外部路由

产生者:ASBR路由器

======================

ASBR 自治系统边界路由器

①执行import-route命令的路由器

②NSSA区域的做7类转换5类的ABR

======================

5类LSA详细信息:

5类LSA可以在除某些特殊区域外的整个AS中传播,且从一个区域转发到另一个区域时,不会修改自己的adv rtr。

当和ASBR不在同一区域时,R2不能将自己的ASBR身份通知到其他区域(因为1类LSA不能跨区域传播),R5就找不到去往ASBR的开销值。此时需要4类LSA的加入,由ABR R4产生,描述的是ABR到ASBR的开销值。

4类LSA的详细信息:

外部路由计算的规则:

①和ASBR在同一区域的路由计算外部路由

cost = 自身到ABSR的开销+引入外部路由时的开销

net-hop = 自身到ASBR的下一跳

②和ASBR不在同一区域的路由器如何计算外部路由?

cost = 自身到ABR的开销(spf) + ABR到ASBR的开销 +引入外部路由时的开销

next-hop = 自身到ASBR的下一跳

外部路由的开销类型:

cost-type 1: 路由表中始终显示引入时开销和AS内部路径开销之和

cost-type 2: 路由表中只显示引入时的开销

 

如有两条外部路由出去AS:

1、cost-type 1 永远优先于 cost-type 2

2、都是cost-type 1: 选择cost小的,如果cost相同则负载分担(路由意义上的选路方式)

3、都是cost-type 2:

① 优先比较引入时的开销,引入时开销小的优先,不关心内部AS路径开销(管理意义上的选路方式)

②如果引入时开销相同,则比较内部AS路径开销,即选择到近的ASBR优先

③如果引入时开销相同,内部AS路径也相同,则负载分担

=================================================================

外部路由特殊情况:

在R8的g0接口上同时运行ospf和rip协议,在ospf中执行import static引入192.168.5.0的外部路由。

此时的R7计算外部路由时,查看5类LSA携带了FA(转发地址字段),且此时自身存在转发地址的直连路由,则直接将该外部路由的下一跳直接设置成FA地址,而不是自身到ASBR的下一跳地址,解决了次优路径(R7-->R8(ASBR)-->R9)

5类LSA场景下产生FA地址:

FA地址

报文转发地址

备注

0.0.0.0

ASBR

非0.0.0.0

外部路由下一跳地址

FA产生非0的条件:外部路由的出接口激活了OSPF非静默端口类型为MA(广播)
注意:此上条件需要同时满足,才能产生。

场景1:R1一个路由是1.1.1.1,此时R2和R3运行OSPF,且R2上引入外部路由1.1.1.1下一跳为R1的接口123.0.0.1

分析:此时R2接口满足,激活了OSPF,没有被静默,接口类型为MA。所以此时,传递给R3的5类LSA会携带非0的FA地址,123.0.0.1.

R3访问1.1.1.1时,会直接走123.0.0.1的下一跳。

场景2:R2的所有接口和R3的所有接口运行OSPF,R2引入外部路由5.5.5.5下一跳是R5的接口25.0.0.5。

分析:此时虽然R3前往5.5.5.5的下一跳只能是R2,但是由于R2的所有接口满足了出接口激活了OSPF非静默端口类型为MA(广播),所以此时传递给R5的5.5.5.5外部路由的5类LSA也会携带非零的FA地址25.0.0.5,但是路由表记录到5.5.5.5的下一跳地址还是R2的123.0.0.2接口地址。

若需要现在将前往5.5.5.5的FA地址变成0,则将R2的25.0.0.0段的出接口取消在OSPF里宣告即可。

7类LSA

作用:由nssa区域中的ASBR产生,只能在nssa区域中泛洪,描述的是到外部路由的路径

7类LSA详细信息:

7类LSA场景下产生FA地址:

Type7 LSA FA地址

条件

P置位

非0.0.0.0

外部路由下一跳地址

7类 LSA的FA地址一定是非“0“

P置位:P-bit(Propagate bit)用于告知转化路由器该条Type7 LSA是否需要转化。

注意:默认情况下,转换路由器是NSSA区域中Router ID最大的ABR

NSSA区域中:

  • 满足“非0条件”,FA=外部路由下一跳地址

  • 不满足“非0条件”,FA=回环口地址或者物理口地址(回环口地址优先)

场景1:此时R5作为ASBR引入外部路由,NSSA区域中7类LSA会自动携带上FA地址,且地址为R5的物理接口地址。到此条7类LSA传递到R3上带有P置位,需要7转5操作。且R1收到的5类LSA地址中携带有FA地址。

R1去访问10.1.5.0时,若路径开销值相同,则R1有两条等价路由到目的地址;若如下图所示,R1--R3--R5为低带宽链路,开销值大于R1--R2--R4高带宽链路。则R1发往10.1.5.0时,会从R1--R2--R4出去。

特殊情况:若此时在R3上敲了suppress-address-forwarding命令,那么发给R1的5类LSA将FA地址置为0.0.0.0.地址R1选路前往10.1.5.0就直接会走R3作为下一跳,不会再根据链路开销来选路。

suppress-forwarding-address参数用于将通过该NSSAABR转换后生成的Type5LSA的FA(AddressForwarding)设置为0.0.0.0

zero-address-forwarding参数用于在NSSA区域的ABR上引I入外部路由时,将生成的NSSALSA的FA置为0.0.0.0。???