OSPF(Open Shortest Path First):一个内部网关路由协议,开放最短路径优先。
看TCP/IP详解的RIP协议时看到这个,觉得挺有意思,于是在网上查了一些相关文章,从算法架构上觉得是一个预料之中的工程上很实用的协议,有很多优点。其实相当于每个路由器将接口的链路信息收集并洪泛告知其它路由器,相当于网络中的路由器能获得整个网络的链路信息,而且都是相同的LSA(链路信息)。根据这些链路信息,路由器使用Dijkstra最短路算法来进行选路。为了避免洪泛数据占用大量带宽资源,OSPF在网络分成了不同的区域,区域内指定一个路由器为中心DR来中广播其余路由器的链路信息(但要注意,如果不是全联通拓扑的话,需手动配置不采取DR机制,还是采取洪泛机制,以避免信息交互不全造成寻路失败,OSPF协议详解有详细说明,NBMA非广播多点可达的网络),区域与区域之间通过区域边界路由器ABR来洪泛传递3类LSA(Link State)信息(Summery Links,汇总、简化的LSA)。
那么ABR产生的3类LSA到底是怎么个简化法呢?ospf 的几种lsa这个链接中这样回答: 如果ABR 知道有多条路径可以到达目标地址,但是它仍然只发送单个的Network Summary LSA,并且是开销最低的那条;同样,如果ABR 从其他的ABR那里收到多条Network Summary LSA 的话,它会只选择开销最低的,并把这条Network Summary LSA 宣告给其他区域。当其他的路由器收到来自ABR 的NetworkSummary LSA 以后,它不会运行SPF 算法,它只简单的 加上到达那个ABR 的开销和Network Summary LSA中包含的开销,通过ABR,到达目标地址的路由和开销一起被加进路由表里,这种依赖中间路由器来确定到达目标地址的完全路由(full route)实际上是距离矢量路由协议的行为。
原来,3类不传递拓扑,只传递路由。
但看到文章OSPF的优点及OSPF路由协议分析中写到“是一个支持大规模网络的IGP路由协议,最多可支持几百台路由器的网络规模。”觉得有些地方存在着疑问,如果在一个大规模的互联网(比如说有数十万台路由器)中使用OSPF不行么?不行的话要采用什么协议呢?是不是还是需要指定一个Default gate来完成寻路呢?
继续查找资料,OSPF协议详解(都是转载),发现这个也是有策略的,就是通过ASBR来与其它的协议来交接,ASBR(Autonomous System Boundary Router):作为一个IGP的OSPF通过ASBR(自治系统边界路由器)获得自治系统(彼此相连的运行OSPF路由协议的所有路由器的集合)外部的路由信息,ASBR是那些将其他路由协议(OSPF将自治外路由分两类,包括静态路由和接口的直接路由)发现的路由引入(redistribute)到OSPF中的路由器。同样需要注意的是:ASBR并不一定真的位于AS的边界,而是可以在自治系统中的任何位置。
划分区域之后,网络拓扑的变化首先在区域内进行同步,如果该变化影响到聚合之后的路由,则才会由ABR将该变化通知到其他区域。大部分的拓扑结构变化都会被屏蔽在区域之内了。”
相关文章:
OSPF的优点及OSPF路由协议分析,这篇讲的比较口语化些,容易理解。
OSPF协议详解,讲的比较全,篇幅不算太大。
组播扩展OSPF,百度百科,杂七杂八,来龙去脉的一堆东东,你懂的。
OSPF 你懂多少之经典问题50 个,都是关键点。
自我总结OSPF面试版本,很好奇面的是什么职位,感觉应该是网络工程师。