OSPF是IETF组织开发的一个基于链路状态的内部网关协议,广泛应用在接入网和城域网中。在OSPF出现前,网络上广泛使用RIP(Routing Information Protocol)作为内部网关协议。
由于RIP是基于距离矢量算法的路由协议,存在着收敛慢、路由环路、可扩展性差等问题,所以逐渐被OSPF取代。
OSPF作为基于链路状态的协议,能够解决RIP所面临的诸多问题。此外,OSPF还有以下优点:
l 支持区域划分,允许自治系统的网络被划分成区域来管理,设备的链路状态数据库仅需和所在区域的其他设备保持一致。链路状态数据库的减小降低了对设备内存的占用和CPU的消耗。同时,需要在区域间传送的路由信息的减小,降低了网络带宽的占用。
l 采用组播形式收发报文,这样就可以减少其它不运行OSPF交换机的负担。
l 支持无类型域间选路(CIDR)。
l 支持对等价路由进行负载分担。
l 支持报文认证。
由于OSPF具有以上优势,使得OSPF作为优秀的内部网关协议被快速接受并广泛使用。
说明 本章若没有特别说明,下文中所提到的OSPF均指OSPFv2。
OSPF 典型组网
通过图6-1,可以了解到运行OSPF的网络中最重要的两个概念:区域和不同类型的设备。随着网络规模日益扩大,设备数量的增多会导致LSDB非常庞大,导致设备负担很重。OSPF协议通过将自治系统划分成不同的区域(Area)来解决上述问题。区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识。区域的边界是设备,而不是链路。一个网段(链路)只能属于一个区域,或者说每个运行OSPF的接口必须指明属于哪一个区域。划分区域后,可以在区域边界设备上进行路由聚合,减少通告到其他区域的LSA数量。另外,还可以最小化由于网络拓扑变化带来的影响。
运行OSPF的设备根据在AS中的不同位置,可以分为以下四类:
l 区域内路由器(Internal Routers)
l 区域边界路由器ABR(Area Border Routers)
l 骨干路由器(Backbone Routers)
l 自治系统边界路由器ASBR(AS Boundary Routers)
AS区域内和区域间路由描述的是AS内部的网络结构,AS外部路由则描述了应该如何选择到AS以外目的地址的路由。OSPF将引入的AS外部路由分为Type1和Type2两类。
表6-1中按优先级从高到低顺序列出了路由类型。
路由类型 含义
Intra Area 区域内路由。
Inter Area 区域间路由。
Type1 External 第一类外部路由,开销=本设备到相应的ASBR的开销+ASBR到该路由目的地址的开销。当外部路由的开销与自治系统内部的路由开销相当,可以认为这类路由的可信程度较高,将其配置成Type1 External。
Type2 External 第二类外部路由,开销=ASBR到该路由目的地址的开销。所以,OSPF计算路由开销时只考虑ASBR到自治系统之外的开销,即到第二类外部路由的。当ASBR到自治系统之外的开销大于在自治系统之内到达ASBR的开销时,可以认为这类路由的可信程度较低,将其配置成Type2 External。
OSPF 的网络类型
OSPF根据链路层协议类型将网络分为下列四种类型:
l 广播(Broadcast)类型
当链路层协议是Ethernet、FDDI时,OSPF缺省认为网络类型是Broadcast。
– 以组播形式(224.0.0.5,含义是运行OSPF设备的预留IP组播地址)发送Hello报文及所有源自DR的报文。
– 以组播形式(224.0.0.6,含义是OSPF DR的预留IP组播地址)发送LSU报文,进而DR将该LSU报文发送到224.0.0.5。
– 以单播形式发送DD报文、LSR报文和所有重传报文。
– 正常情况下,以组播形式(224.0.0.5)发送LSAck报文。当设备收到重复的LSA或达到最大生存时间的LSA被删除时,LSAck以单播形式发送。
l NBMA(Non-Broadcast Multi-Access)类型
当链路层协议是帧中继、X.25时,OSPF缺省认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
l 点到多点P2MP(point-to-multipoint)类型
链路层协议中没有Point-to-Multipoint的概念,所以P2MP必须是由其他的网络类型强制更改的。在该类型的网络中,以组播形式(224.0.0.5)发送Hello报文,以单播形式发送DD报文、LSR报文、LSU报文、LSAck报文。
l 点到点P2P(point-to-point)类型
当链路层协议是PPP、HDLC和LAPB时,OSPF缺省认为网络类型是P2P。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。





