组播扩展OSPF
ospf
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯彻(Dijkstra)算法被用来计算最短路径树。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等。
定义
OSPF路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一个路由域内。在这里,路由域是指一个自治系统(Autonomous System),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。
作为一种链路状态的路由协议,OSPF将链路状态组播数据LSA(Link State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。
在信息交换的安全性上,OSPF规定了路由器之间的任何信息交换在必要时都可以经过认证或鉴别(Authentication),以保证只有可信的路由器之间才能传播选路信息。OSPF支持多种鉴别机制,并且允许各个区域间采用不同的鉴别机制。OSPF对链路状态算法在广播式网络(如以太网)中的应用进行了优化,以尽可能地利用硬件广播能力来传递链路状态报文。通常链路状态算法的拓扑图中一个结点代表一个路由器。若K个路由器都连接到以太网上,在广播链路状态时,关于这K个路由器的报文将达到K的平方个。为此,OSPF在拓扑结构图允许一个结点代表一个广播网络。每个广播网络上所有路由器发送链路状态报文,报告该网络中的路由器的链路状态。
工作原理
OSPF简单地说就是两个相邻的路由器通过发报文的形式成为邻居关系,邻居再相互发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,放在OSPF路由表,OSPF路由与其他路由比较后优的加入全局路由表。整个过程使用了五种报文、三个阶段、四张表。
五种报文
Hello报文:建立并维护邻居关系。
DBD报文:发送链路状态头部信息。
LSR报文:把从DBD中找出需要的链路状态头部信息传给邻居,请求完整信息。
LSU报文:将LSR请求的头部信息对应的完整信息发给邻居。
LSACK:收到LSU报文后确认该报文。
三个阶段
邻居发现:通过发送Hello报文形成邻居关系。
路由通告:邻居间发送链路状态信息形成邻接关系。
路由计算:根据最短路径算法算出路由表。
四张表
邻居表:主要记录形成邻居关系路由器。
链路状态数据库:记录链路状态信息。
OSPF路由表:通过链路状态数据库得出。
全局路由表:OSPF路由与其他比较得出。
工作过程
(1)了解自身链路
每台路由器了解其自身的链路,即与其直连的网络。
(2)寻找邻居
不同于RIP,OSPF协议运行后,并不立即向网络广播路由信息,而是先寻找网络中可与自己交换链路状态信息的周边路由器。可以交互链路状态信息的路由器互为邻居。
(3)创建链路状态数据包
路由器一旦建立了邻居关系,就可以创建链路状态数据包。
(4)链路状态信息传递
路由器将描述链路状态的LSA泛洪到邻居,最终形成包含网络完整链路状态信息的链路状态数据库。
(5)计算路由
路由区域内的每台路由器都可以使用SPF算法来独立计算路由。
OSPF协议主要优点
(1)OSPF 适合在大范围的网络:OSPF 协议当中对于路由的跳数,它是没有限制的,所以 OSPF 协议能用在许多场合,同时也支持更加广泛的网络规模。只要是在组播的网络中,OSPF协议能够支持数十台路由器一起运作。
(2)组播触发式更新:OSPF 协议在收敛完成后,会以触发方式发送拓扑变化的信息给其他路由器,这样就可以减少网络宽带的利用率;同时,可以减小干扰,特别是在使用组播网络结构,对外发出信息时,它对其他设备不构成其他影响
(3)收敛速度快:如果网络结构出现改变,OSPF 协议的系统会以最快的速度发出新的报文,从而使新的拓扑情况很快扩散到整个网络;而且,OSPF 采用周期较短的 HELLO 报文来维护邻居状态。
(4)以开销作为度量值:OSPF 协议在设计时,就考虑到了链路带宽对路由度量值的影响。OSPF 协议是以开销值作为标准,而链路开销和链路带宽,正好形成了反比的关系,带宽越是高,开销就会越小,这样一来,OSPF 选路主要基于带宽因素。
(5)OSPF 协议的设计是为了避免路由环路:在使用最短路径的算法下,收到路由中的链路状态,然后生成路径,这样不会产生环路。
(6)应用广泛:广泛的应用在互联网上,其他会有大量的应用实例。证明这是使用最广泛的IGP 之一。
OSPF区域
OSPF 中划分区域的目的就是在于控制链路状态信息LSA 泛洪的范围、减小链路状态数据库LSDB的大小、改善网络的可扩展性、达到快速地收敛。
当网络中包含多个区域时,OSPF 协议有特殊的规定,即其中必须有一个 Area 0,通常也叫做骨干区域(Backbone Area),当设计 OSPF 网络时,一个很好的方法就是从骨干区域开始,然后再扩展到其他区域。骨干区域在所有其他区域的中心,即所有区域都必须与骨干区域物理或逻辑上相连,这种设计思想的原因是 OSPF 协议要把所有区域的路由信息引入骨干区,然后再依次将路由信息从骨干区域分发到其它区域中。
OSPF 将区域划分为几种类型。
骨干区域 :作为中央实体,其他区域与之相连,骨干区域编号为 0,在该区域中,各种类型的 LSA 均允许发布。
标准区域 :除骨干区域外的默认的区域类型,在该类型区域中,各种类型的 LSA 均允许发布。
末梢区域 :即 STUB 区域,该类型区域中不接受关于 AS外部的路由信息,即不接受类型 5 的 AS 外部LSA,需要路由到自治系统外部的网络时,路由器使用缺省路由(0.0.0.0),末梢区域中不能包含有自治系统边界路由器 ASBR。
完全末梢区域 :该类型区域中不接受关于 AS 外部的路由信息,同时也不接受来自 AS 中其他区域的汇总路由,即不接受类型 3、类型 4、类型 5 的 LSA,完全末梢区域也不能包含有自治系统边界路由器 ASBR。
参考资料
最新修订时间:2024-01-05 13:38
目录
概述
定义
参考资料