跳转到内容

链路状态通告

维基百科,自由的百科全书

链路状态通告(LSA,英文Link-state advertisement) 描述了所有的链路,接口和邻居等链路状态信息,OSPF路由协议对所有路由信息的描述,都是封装在链路状态通告LSA中发送出去的。

LSA的类型包括:

  • Router LSA
  • Network LSA
  • Network Summary LSA
  • ASBR Summary LSA
  • External LSA
  • NSSA External LSA

Router LSA

每一台运行了OSPF的路由器,都会产生一个Router LSA。Router LSA只在Area内部洪泛。(ABR会为每个Area产生一个不同的Router LSA。ABR跨越了几个Area,就会产生多少个Router LSA。)

Router LSA的主要内容是:产生这条Router LSA的路由器连接了几条Link,每条Link的cost是多少。Router LSA的作用:例如,R1在area 0内部,它产生了R1 Router LSA。当Area 0内别的路由器收到R1 Router LSA,就能知道R1连接了哪些Link,并且知道如何到达这些Link,以及到达它们所需要的cost。

Network LSA

Network LSA由DR(Designated Router)产生,它只在Area内部洪泛。Network LSA记录了DR所在的子网有多少台OSPF路由器(必须是与DR建立了Full关系的路由器),以及这些路由器的Router ID。它的作用是让两台DROther(非DR路由器)之间计算路由的时候,把彼此当作“下一站”。

在同一个子网中,可能同时连接了N台OSPF路由器,它们需要同步数据库。如果每两台之间都去建立Full关系,会增加网络以及路由器CPU的额外负担。因此,这N台路由器会选出一个DR,作为代言人。每台路由器都与DR建立Full关系,通过DR同步数据库。

但是,这样做会产生一个问题:例如,R1是DR,R2和R3都不是DR,R2和R3都是通过R1同步数据库。那么,R2计算到达R3的路径时,会把R1作为“下一站”,而不会认为R2-R3是直接连接的;同样,R3计算到达R2的路径,也会把R1作为“下一站”。为了解决这个问题,DR会产生一个Network LSA,它描述:该子网中有N台路由器,并记录下每台路由器的Router ID。当R2收到了这个Network LSA,看见名单中有R3,就会在计算路由时,直接把R3看作“下一站”。

Network Summary LSA

Network Summary LSA由ABR(Area Border Router)产生。它是用来告诉一个Area内部的路由器,如何到达另一个Area内的某条路径。

例如,3台路由器直接连接,拓扑图:R1-R2-R3。R2是一台ABR,R1-R2属于Area 0,R2-R3属于Area 1。R1的Router LSA只在Area 0内部洪泛,因此R3无法知道Link R1-R2。于是R2会产生一个Network Summary LSA来描述Link R1-R2。它在Area 1内部洪泛,当R3收到这条Network Summary LSA,就能知道到达Link R1-R2的路径。

External LSA

External LSA由ASBR(Autonomous System Border Router)产生。它是用来通告OSPF AS内部的路由器,如何到达OSPF AS外部的某个地址。External LSA在整个OSPF AS内部洪泛(除了stub area以外)。External LSA是唯一一种跨越Area洪泛的LSA。(External LSA又被称为AS External LSA)

例如:R1-R2-R3直接连接。R1-R2是OSPF路由器,属于Area 0;R3运行RIP。R2作为ASBR,运行了OSPF与RIP。为了让OSPF内部的R1知道Link R2-R3的网络地址,R2会产生一个External LSA,记录了2件事情:1)Link R2-R3的网络地址;2)经过ASBR(R2)能到达Link R2-R3。当R1收到这个External LSA,它会结合R2的Router LSA,计算出到达Link R2-R3的路径。

ASBR Summary LSA

在你了解ASBR Summary LSA之前,你必须先阅读了解External LSA。ASBR Summary LSA由ABR产生。它是用来通告一个Area内部的路由器:如何到达另一个Area内部的ASBR。

例如:4台路由器R1-R2-R3-R4直接连接。R1,R2,R3是OSPF路由器,R4运行RIP。R3作为ASBR,运行了OSPF和RIP。R1-R2属于Area 0,R2-R3属于Area 1。如何让OSPF路由器知道到达R4的路径呢?

  • R3作为ASBR,产生External LSA,记录了两件事情:1)目的地Link R3-R4的IP地址;2)经过R3(ASBR)可以到达这个目的地址。External LSA会在OSPF AS内部所有的Area(stub area除外)内洪泛。
  • R3属于Area 1,所以当Area 1内部的路由器收到External LSA,结合R3的Router LSA就知道了如何到达Link R3-R4。
  • R1是Area 0内部的路由器,它收到External LSA以后仍然不知道如何到达Link R3-R4。因为R1不知道如何到达ASBR(R3)。
  • R2作为ABR,它知道在Area 1内部有一台ASBR。因此,它会产生一个ASBR Summary LSA,通告Area 0内部的路由器:如何到达Area 1内部的ASBR(R3)。当R1收到这个ASBR Summary LSA,结合External LSA,就知道如何到达Link R3-R4。

NSSA External LSA

NSSA External LSA是由NSSA(Not So Stub Area)内部的ASBR产生的。它是让NSSA内部的路由器,知道如何到达OSPF AS外部的地址。(与AS External LSA的作用相似,但它只在NSSA内部洪泛。)

参考文献