> 开放最短路径优先(Open Shortest Path First)是目前非常活跃的一种链路状态内部网关协议(IGP),当人们发现RIP(路由信息协议)无法适用于更大型网络,而且收敛速度太慢时,就开始采用OSPF协议。本文将概括介绍OSPF协议,而下一篇网络基础知识讲座将更深入研究该协议本身,以及OSPF区域的设置方法。 OSPF是目前应用最广泛的内部网关协议(IGP)。当讨论IGP时,我们谈到的是一个路由域或自治系统(AS)。设想一个拥有多栋办公楼和多个部门的中型企业,所有的设备都通过网络连接并共享两个冗余的Internet连结,而这些办公楼群里的所有在线设备都属于同一个AS。但是如果采用OSPF协议,我们同样得理解区域的概念,它允许将自治域进一步的分割,例如按每栋楼内的各个部门进一步细分。 为了解OSPF的设计需求,我们来讨论一下OSPF的工作原理。下面先解释一些相关术语: * 路由器ID:OSPF协议中每台路由器都被赋予一个唯一的32位无符号整数,这就是路由器ID,它是路由器上的最高IP地址,可以通过为所选路由器的loopback(环回)接口设置一个更高的地址来加大这个值。 * 相邻路由器:两台通过一条普通链路相连的可以对话的路由器。 * 相邻关系:两台相邻路由器的双向关系。是邻居不一定就有相邻关系。 * LSA:链路状态广播数据包(LSA)被传送给相邻路由器;它描述了指定链路内的路由信息。 * Hello协议:网络上的路由器通过该协议确定其相邻路由器并生成LSA。 * 区域:一种分级制度。每个区域内有一组路由器,它们与其它路由器交换LSA。每个区域都限制自己区域的LSA,并鼓励汇总路由。 我们已经说过,OSPF是一种链路状态路由协议,你可以把它想象成网络的分布式地图。为了取得这些分布式信息,OSPF要做三件事。 首先,当一台运行OSPF协议的路由器加入网络时,它会发送Hello数据包,以便找到它的相邻路由器,并选择一台指定路由器(DR)。Hello数据包中包含链路状态信息,以及相邻路由器列表。向相邻路由器发送Hello数据包其作用就是做出ACK(命令正确应答),同时证明路由器之间的通信是双向的。OSPF对于第2层拓扑判断迅速:如果是点对点链路,它知道了解的情况已经足够,并且认为该链路“准备就绪”;而如果是在广播链路上,路由器就必须等候选择,然后确定链路是否可行。 在选举DR的过程中,如果有Priority ID,你可以选择出最强壮的路由器作为DR,否则就是拥有最高IP地址的路由器获胜。DR和备份DR(BDR)角色的关键之处在于它们是生成LSA的路由器,它们必须与其子网内的其它路由器进行数据库交换,所以,非指定路由器都与DR建立相邻关系。DR/DBR的作用就是保证协议运作的可扩展性。确保所有路由器都有相同信息的唯一办法是让它们的数据库同步。例如你现在已有21台路由器,并且想加入1台,如果没有DR和BDR,你就必须建立21个新的相邻关系。并与每台路由器进行同步,而如果你把数据库统一放在DR上(万一需要可以建立备份),那么增加更多的路由器是轻而易举的事,各路由器只需要和DR同步就可以了。 |