在OSPF中,位于同一OSPF区域中的所有路由器 必须具有完全相同的拓扑数据。路由器根据LSDB中存储的信息,应用最短路径优先(SPF)算法来确定每个可到达子网(前缀/长度)的最佳(成本最低)路由。
每种LSA类型都在OSPF中发布不同的信息。OSPF总共有11种LSA,但是在本文中,我们将分析三种最常见的LSA。下表列出了完整的OSPF LSA类型,并在右侧对每个LSA进行了简要说明。
OSPF LSA类型1:路由器LSA
每个路由器为其自身创建一个Type 1 LSA(路由器LSA),并将LSA通告给位于同一区域的所有路由器。在同一路由器内,发起方路由器将LSA类型1泛洪到其邻居。该过程将继续进行,直到该区域中的所有路由器都拥有LSA的副本为止。
该LSA列出了有关附加链接的信息。特别是,类型1 LSA列出:
- 对于没有选择指定路由器(DR)的每个接口,它列出了路由器的接口子网号/掩码和接口OSPF开销。(OSPF将这些子网称为存根网络)。
- 对于选择了DR的每个接口,它都会列出DR的IP地址以及链接附加到传输网络的表示法(表示该网络已经存在类型2 LSA)。
- 对于没有DR但邻居可达的每个接口,它将列出邻居的RID。
OSPF通过使用32位链路状态标识符(LSID)来标识类型1 LSA。每个路由器在创建自己的Type 1 LSA时都使用其自己的OSPF RID值作为LSID。
每个路由器为自己创建一个类型1 LSA,但是区域边界路由器(ABR)创建多个类型1 LSA:每个区域一个。每个区域中的Type 1 LSA仅列出该区域中的接口和邻居。由于路由器仍然只有一个RID,因此路由器的所有Type 1 LSA都列出相同的RID。然后,ABR将每个1类LSA泛洪到适当的区域。
OSPF LSA类型2:网络LSA
SPF需要LSDB,以便使用节点(路由器)和节点之间的连接(链接)构建最佳拓扑。当存在多路访问数据链路(例如LAN)时,OSPF必须构造该LAN的整个拓扑,该拓扑由所有节点及其之间的链接组成。为此,OSPF使用类型2 LSA(网络LSA)。
OSPF路由器实际上根据接口上是否已选择了指定路由器(DR)来选择是否对多路访问网络使用Type 2 LSA。具有两个以上连接到同一子网的路由器的网络需要符合拓扑中“一条链路只能连接两个节点”的规则。
考虑下图中的网络,其中所有四个路由器在同一子实体的区域0中都有其接口。
OSPF不能在子网中通过对所有路由器使用单个链接来拥有四个互连的路由器。相反,OSPF定义了用作伪节点的类型2网络LSA。每个路由器的Type 1 LSA都显示了到该伪节点的连接。这称为传输网络,然后由Type 2 Network LSA进行建模。
子网中选定的DR为该子网创建Type 2 LSA。DR通过在该子网中分配DR的接口IP地址的LSID来标识LSA。Type 2 LSA还将DR的RID列为通告LSA的路由器。
OSPF LSA类型3:摘要LSA
OSPF区域用于网络的某些部分,因此工程师可以轻松减少内存消耗以及路由器上CPU密集型任务。如果OSPF域中没有区域,则所有路由器都将具有LSA Type 1和Type 2,但是当设置了该区域时,只有ABR将保留Type 1和Type 2 LSA,并且不会将它们转发到其他区域。
此约定导致较小的按区域LSDB,从而节省了内存并降低了SPF算法每次运行的复杂性。这提高了收敛速度。尽管ABR不会将类型1和类型2的LSA泛洪到其他区域,但是路由器仍然需要了解其他区域的子网。通过使用OSPF通告 这些区域间路由的Type 3 Summary LSA。
ABR为每个子网生成一个Type 3 LSA,并将每个Type 3 LSA发送到其他区域。类型3摘要LSA并不包含有关该拓扑的所有详细信息,因此,与类型1和2相比,这些LSA汇总了这些信息;有关LSA的详细信息,请参见参考资料。因此,名称为Summary LSA。结果,区域内的路由器可以计算出到达ABR的最佳路由,这为路由器提供了一条良好的无环路由,可以到达类型3 LSA中列出的子网。