先说一下rip和ospf的区别,rip是距离矢量型协议,rip的邻居之间交换的是路由表,直接获得路由,而ospf是链路状态型协议,ospf邻居之间交换的是拓扑信息,它们根据拓扑信息自己计算路由。这是他们的根本区别。
LSA就是OSPF用来发布和更新拓扑信息的一个东西。
说一下单区域下的情况,便于理解:
对于每一台运行了ospf的路由器来说,一旦有接636f7079e799bee5baa6e997aee7ad9431333264636238口up起来,它就会产生LSA,把自身的一些拓扑信息放到LSA里面,这些信息包括自己连了哪些网络,子网,掩码,开销等等。
然后发给自己的邻居,邻居再传递给自己的其它的邻居。
比如区域内有A,B,C三个路由器,A产生一个LSA,B产生一个LSA,C产生一个LSA
最终的结果是每台路由器都这三条LSA,这三条LSA就构成了LSDB.
每个LSA代表一部分拓扑信息,当LSA聚集起来,就包括了整个网络的拓扑信息。
然后路由器就会利用LSDB,根据SPF算法,来计算路由。
因为它知道整个网络的拓扑,它就知道网络内的每一个网段,开销等等,所以计算出路由是没有问题的。
当拓扑发生变化的时候,相关的路由器就会再发送LSA来更新拓扑情况,然后路由器再重新计算路由。
多区域的时候,ospf会有更多种类的LSA,可以看一下:
LSA类型
|
由谁产生
|
泛洪范围
|
作用
|
链路ID
|
1类LSA(router link states)
|
每个路由器都可以产生
|
只在本区域内泛洪
| 列出了路由器所有链路或接口,并指明了他们的状态和沿每条链路方向出站代价以及该链路上所有已知的ospf邻居 |
通告路由器的Router-id
|
2类LSA(net link states)
|
DR产生
|
只在本区域泛洪
| 列出了所有与之相连的路由器,包括DR本身 |
通告它的DR的接口ip地址
|
3类LSA(summary net link states)
|
ABR产生
|
整个ospf进程内泛洪(除了绝对末节区域和完全NSSA区域(特别的,会有一条3类的默认路由))
|
它将一个区域内的网络,通告给ospf中得其它区域
|
其它区域的网络地址(即网络前缀)
|
4类LSA(summary ASB link states)
|
同区域,离ASBR最近的ABR产生
|
整个ospf进程内泛洪(除了末节区域,绝对末节区域,NSSA区域和完全NSSA区域)
|
指出ASBR的router-id(位置)
|
ASBR的Router-id
|
5类LSA(type-5 AS external states)
|
ASBR产生
|
整个ospf进程内泛洪(除了末节区域,绝对末节区域,NSSA区域和完全NSSA区域)
|
描述了前往AS外部的目标网络的路由
|
AS外部网络的网络地址
|
7类LSA(type-7 AS external link states)
|
ASBR产生
|
只在NSSA区域内泛洪
|
描述了前往AS外部的目标网络的路由
|
AS外部网络的网络地址
|
6类LSA
|
组播OSPF LSA
| |||
8类LSA
|
BGP的外部属性LSA
| |||
9类LSA
|
Opeaque(不透明)LSA(链路本地范围)
| |||
10类LSA
|
Opeaque LSA(本地区域范围)
| |||
11类LSA
|
Opeaque LSA(AS范围)
|