OSPF协议是
IETF提出的一个使用链路状态算法实现内部网关协议的标准(RFC2328,OSPFv2),现已成为域间路由协议的主流和其他路由协议的替代。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等。
简介
OSPF协议是
IETF提出的一个使用链路状态算法实现内部网关协议的标准(RFC2328,OSPFv2),
由于链路状态选路算法使用SPF计算最短路径,在网站规模变大时比距离向量算法具有更好的拓展性,因此,OSPF也具有了更好的性能。OSPF的广泛应用得益于其开放性。为了鼓励OSPF的推广,协议标准是完全开放的,其实现和使用无需任何许可费用。这最终使OSPF变得非常流行,成为了域间路由协议的主流和其他路由协议的替代。
OSPF支持负载均衡(Loading Balancing)和基于服务类型的选路(TOS Routing),也支持多种路由形式,如特定主机路由和子网路由等。若存在到某个路由谜底网络的多条费用相等的最佳通路,OSPF能够将流量均匀地分配到这几条路由上。同时,OSPF可支持去往某个目的网络的多条路由,分别对应于某种服务类型(
TOS)优先级。在进行分组选路时,路由器可根据IP分组头中目的IP地址和TOS字段来选择路由。OSPF是最早能够提供域内负载均衡和TOS选路的路由协议之一。
OSPF支持内部的层次化选路,将域内网络划分成若干区域(Area)。区域自包含的(Self-Contained),区域内的拓扑结构对其他区域隐藏。各个区域能够合作地利用OSPF进行选路,同时又使个区域保留了独立改变其内部拓扑结构的能力。这使得OSPF协议更易于拓展和整理,能够使用于大规模网络。
在信息交换的安全性上,OSPF规定了路由器之间的任何信息交换在必要时都可以经过认证或鉴别(Authentication),以保证只有可信的路由器之间才能传播选路信息。OSPF支持多种鉴别机制,并且允许各个区域间采用不同的鉴别机制。OSPF对链路状态算法在广播式网络(如以太网)中的应用进行了优化,以尽可能地利用硬件广播能力来传递链路状态报文。通常链路状态算法的拓扑图中一个结点代表一个路由器。若K个路由器都连接到以太网上,在广播链路状态时,关于这K个路由器的报文将达到K的平方个。为此,OSPF在拓扑结构图允许一个结点代表一个广播网络。每个广播网络上所有路由器发送链路状态报文,报告该网络中的路由器的链路状态。
OSPF的层次划分
OSPF为了便于拓展和管理,支持在AS内部继续划分选路层次。在一个AS中网络可以划分成若干各区域(Area)。区域在OSPF中用来定义AS中的一个路由器和网络中的集合。在OSPF网络中,必须定义一个骨干区域(区域0)。所有其他非骨干区域(非0区域)都必须通过一个区域边界路由器(ABR)连接到区域0。在一个区域内部的路由器之间相互发布和交换链路状态通告,并为该区域建立一个统一的拓扑结构图(即链路状态数据库)。在不同区域之间通过ABR相互传递有关某一特定网络和拓扑的概括性信息。这样,对于每一个路由器来说,它保存了有关其所在区域中所有网络及路由器的完整信息,以及有关本区域以外网络及路由器的概括性信息。这样,每一个路由器都能够掌握足够的信息来讲分组通过某个合适的ABR转发到另一个区域中。这种层次化有利于OSPF在大型网络中的拓展。
OSPF的报文格式
OSPF的消息报文直接封装在IP分组中传送。在
IP分组中,OSPF报文所对应的协议号W为89。 OSPF的报文可以直接利用组播方式来传达。例如,使用组播地址224.0.0.5可将一个报文发送到所有的OSPF路由器上;使用组播地址224.0.0.6可将一个报文发送到所有指派路由器及备用指派路由器上。OSPF报文由24字节的报文头即后面的数据区构成,其中,OSPF报文头中的控制字段包括:
(1)版本号,1字节,指出本报文所使用的OSPF协议的版本号。
(2)报文类型,1字节,指出了报文的类型,报文类型的编码定义入下:
(3)路由器标识,即报文发送方路由器的32位IP地址。
(4)区域标识符,给出了32比特的区域标识符。
(5)校验和,16为的校验和用于保护整个OSPF报文,符合标准的IP校验和算法。
(6)鉴别类型和鉴别数据,用于进行报文真实性的鉴别和认证。鉴别类型指定报文所使用的鉴别机制。类型0为无鉴别,类型1为简单口令鉴别,类型2为密码学鉴别。