OSPF路由协议简介
OSPF是一种基于链路状态的路由协议,需要每个路由器向其同一管理域的所有其他路由器发送链路状态广播信息。在OSPF的链路状态广播中包括所有接口信息、所有的量度和其他一些变量。利用OSPF的路由器首先必须收集有关的链路状态信息,并根据一定的算法计算出到每个节点的最短路径。而基于距离向量的路由协议仅向其邻接路由器发送有关路由更新信息。
OSPF 是基于IP的,其协议号是89
开放最短路由优先协议OSPF是IETF组织开发的一个基于链路状态的内部网关协议。目前使用的是版本2(RFC2328),其特性如下:
适应范围。支持各种规模的网络,最多可支持几百台路由器。
快速收敛。在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中同步。
无自环。由于OSPF根据收集到的链路状态用最短路径树算法计算路由,从算法本身保证了不会生成自环路由。
区域划分。允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而减少了占用的网络带宽。
等值路由。支持到同一目的地址的多条等值路由。
路由分级。使用4类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第1类外部路由、
第2类外部路由。
支持验证。支持基于接口的报文验证以保证路由计算的安全性。
组播发送。支持组播地址。
OSPF两种组播地址的区别
1.点到点网络:是连接单独的一对路由器的网络,点到点网络上的有效邻居总是可以形成邻接关系的,在这种网络上,OSPF包的目标地址使用的是224.0.0.5
2.广播型网络,比如以太网,Token Ring和FDDI,这样的网络上会选举一个DR和BDR,DR/BDR的发送的OSPF包的目标地址为224.0.0.5;而除了DR/BDR以外的OSPF包的目标地址为224.0.0.6
在广播型网络中,所有路由器都以224.0.0.5的地址发送hello包,用来维持邻居关系,非DR/BDR路由都以224.0.0.6的地址发送lsa更新,而只有DR/BDR路由这个地址,反过来,DR路由使用224.0.0.5来发送更新到非DR路由
2.OSPF路由计算过程
每个支持OSPF协议的路由器都维护着一份描述整个自治系统拓扑结构的链路状态B(Link State Database)。每台路由器根据自己周围的网络拓扑结构生成链路状态广播LSA(Link State Advertisement),通过相互之间发送协议报文将LSA发送给网络中其他路由器。这样每台路由器都收到了其他路由器的LSA,所有的LSA放在一起便组成了链路状态。
OSPF路由协议利用链路状态算法建立和计算到每个目标网络的最短路径,该算法本身十分复杂,下面简单、概括地描述了链路状态算法工作的总体过程:
初始化阶段,路由器将产生链路状态通告,该链路状态通告包含了该路由器全部链路状态。
所有路由器通过组播的方式交换链路状态信息,每台路由器接收到链路状态更新报文时,将拷贝一份到本地,然后再传播给其他路由器。
当每台路由器都有一份完整的链路状态时,路由器应用算法针对所有目标网络计算最短路径树,结果内容包括:目标网络、下一跳地址、花费,是IP路由表的关键部分。
如果没有链路花费、网络增删变化,OSPF将会十分安静,如果网络发生了任何变化,OSPF通过链路状态进行通告,但只通告变化的链路状态,变化涉及到的路由器将重新运行算法,生成新的最短路径树。
每台路由器都使用算法计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由,外部路由信息为叶子节点,外部路由可由广播它的路由器进行标记以记录关于自治系统的额外信息。显然,各个路由器各自得到的路由表是不同的。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-39617-1.html
用十艘022导弹飞艇绕着美舰走
懂吗
错了应该是世界第一