OSPF主干负责在区间之间分发路由信息,包含所有的区间边缘路由器、非全部属于某区间的网络及其相连的路由器。下图是一个分为若干区间的OSPF自治系统的例子。
路由器4、5、6、10、11和12构成了主干。如果区间3中的主机H1要给区间2中的主机H2发送数据,则先发给路由器13,它转发给路由器12,再转给路由器11,路由器11再沿主干转发给路由器10,然后通过两个区间内路由器(9和7)到达主机H2。
主干本身也是个OSPF区间,所以所有的主干路由器与其它区间路由器一样,使用相同的过程和算法来维护主干内的路由信息,主干拓扑对所有的跨区间路由器都是可见的。
可以以非连续主干的形式来定义区间,这时,主干的连接必须通过虚拟链接来保持。虚拟链接可以配置在任意共享非主干区间链接的路由器对之间,就象它们有直接链接一样工作。
运行OSPF的AS边缘路由器通过外部网关协议,如EGP或BGP,或通过配置信息来学习外部路由。
三、SPF算法
最短路径优先(SPF)路由算法是OSPF的基础。当SPF路由器加点后,它就初始化路由协议数据结构,然后等待下层协议关于接口已可用的通知信息。当路由器确认接口已准备好,就用OSPF Hello协议来获取邻居信息,即具有在共同的网络上接口的路由器。路由器向邻居发送Hello包并接收它们的Hello包。除了帮助学习邻居外,Hello包也有keep-alive的功能。
在多重访问网络(支持多于两个路由器的网络)中,Hello协议选出一个“指派路由器”和一个备份指派路由器。指派路由器负责为整个多重访问网络生成LSA,它可以减少网络通信量和拓扑数据库的大小。
当两个相邻路由器的链接状态数据库同步后,就称为“邻接”。在多重访问网络中,指派路由器决定哪些路由器应该相邻接,拓扑数据库在邻接路由器对间进行同步。邻接控制路由协议分组的分发,只在邻接点间交换。
每个路由器周期性地发送LSA,提供其邻接点的信息或当其状态改变时通知其它路由器。通过对已建立的邻接关系和链接状态进行比较,失效的路由器可以很快被检测出来,网络拓扑相应地更动。从LSA生成的拓扑数据库中,每个路由器计算最短路径树,以自己为根。这个最短路径树就生成了路由表。
四、分组格式