动态路由协议OSPF原理和特性( 二 )


OSPF采用一些技术手段(如SPF算法、邻接关系等)避免了路由自环的产生 。在网络中,路由自环的产生将导致网络带宽资源的极大耗费,甚至使网络不可用 。OSPF协议从根本(算法本身)上避免了自环的产生 。采用距离向量协议的RIP等协议,路由自环是不可避免的 。为了完善这些协议,只能采取若干措施,在自环发生前,降低其发生的概率,在自环发生后,减小其影响范围和时间 。
在IP(IPV4)地址日益匮乏的今天,能否支持变长子网掩码(VLSM)来节省IP地址资源,对一个路由协议来说是非常重要的,OSPF能够满足这一要求 。
在采用OSPF协议的网络中,假如通过OSPF计算出到同一目的地有两条以上代价(Metric)相等的路由,该协议可以将这些等值路由同时添加到路由表中 。这样,在进行转发时可以实现负载分担或负载均衡 。
在支持区域划分和路由分级治理上,OSPF协议能够适合在大规模的网络中使用 。
在协议本身的安全性上,OSPF使用验证,在邻接路由器间进行路由信息通告时可以指定密码,从而确定邻接路由器的合法性 。
与广播方式相比,用组播地址来发送协议报文可以节省网络带宽资源 。
从衡量路由协议性能的角度,我们可以看出,OSPF协议确实是一个比较先进的动态路由协议,这也是它得到广泛采用的主要原因 。
OSPF协议的工作原理
网络拓扑结构
上文提到,OSPF协议是一种链路状态协议,那么OSPF是如何来描述链路连接状况呢?
抽象模型Model 1表示路由器的一个以太网接口不连接其他路由器,只连接了一个以太网段 。此时,对于运行 OSPF的路由器R1,只能识别本身,无法识别该网段上的设备(主机等);抽象模型Model 2表示路由器R1通过点对点链路(如PPP、HDLC等)连接一台路由器R2;抽象模型Model 3表示路由器R1通过点对多点(如Frame Relay、X.25等)链路连接多台路由器R3、R4等,此时路由器R5、R6之间不进行互联;抽象模型Model 4表示路由器R1通过点对多点(如Frame Relay、X.25等)链路连接多台路由器R5、R6等,此时路由器R5、R6之间互联 。以上抽象模型着重于各类链路层协议的特点,而不涉及具体的链路层协议细节 。该模型基本表达了当前网络链路的连接种类 。

在OSPF协议中,分别对以上四种链路状态类型作了描述:
对于抽象模型Model 1(以太网链路),使用Link ID(连接的网段)、Data(掩码)、Type(类型)和Metric(代价)来描述 。此时的Link ID即为路由器R1接口所在网段,Data为所用掩码,Type为3(Stubnet),Metric为代价值 。
对于抽象模型Model 2(点对点链路),先使用Link ID(连接的网段)、Data(掩码)、Type(类型)和Metric(代价)来描述接口路由,以上各参数与Model 1相似 。接下来描述对端路由器R2,四个参数名不变,但其含义有所不同 。此时Link ID为路由器R2的Router ID,Data为路由器R2的接口地址,Type为1(Router),Metric仍为代价值 。
对于抽象模型Model 3(点对多点链路,不全连通),先使用Link ID(连接的网段)、Data(掩码)、Type(类型)和Metric(代价)来描述接口路由,以上各参数与Model 1相似 。接下来分别描述对端路由器R3、R4的方法,与在Model 2中描述R2类似 。
对于抽象模型Model 4(点对多点链路,全连通),先使用Link ID(网段中DR的接口地址)、Data(本接口的地址)、Type(类型)和Metric(代价)来描述接口路由 。此时Type值为2(Transnet),然后是本网段中DR(指定路由器)描述的连接通告 。
路由器在通报其获知的链路状态(即上面所述的参数)前,加上LSA头(Link State Advertisement Head),从而生成LSA(链路状态广播) 。到此,路由器通过LSA完成周边网络的拓扑结构描述,并发送给网络中的其他路由器 。

推荐阅读