OSPF路由协议是用于网际协议(
IP)网络的
链路状态路由协议。该协议使用
链路状态路由算法的
内部网关协议(IGP),在单一
自治系统(AS)内部工作。适用于
IPv4的OSPFv2协议定义于
RFC 2328,RFC 5340定义了适用于
IPv6的OSPFv3。
基本信息
开放式最短路径优先(
Open Shortest Path First,OSPF)是广泛使用的一种
动态路由协议,它属于链路状态路由协议,具有路由变化
收敛速度快、无路由
环路、支持
变长子网掩码(VLSM)和汇总、层次区域划分等优点。在网络中使用
OSPF协议后,大部分路由将由OSPF协议自行计算和生成,无须
网络管理员人工配置,当
网络拓扑发生变化时,协议可以自动计算、更正路由,极大地方便了
网络管理。但如果使用时不结合具体
网络应用环境,不做好细致的规划,OSPF协议的使用效果会大打折扣,甚至引发故障。
OSPF协议是一种链路状态协议。每个路由器负责发现、维护与邻居的关系,并将已知的邻居列表和链路费用LSU(Link State Update)报文描述,通过可靠的
泛洪与
自治系统AS(Autonomous System)内的其他路由器周期性交互,学习到整个自治系统的
网络拓扑结构;并通过自治
系统边界的路由器注入其他AS的路由信息,从而得到整个Internet的路由信息。每隔一个特定时间或当链路状态发生变化时,重新生成LSA,路由器通过泛洪机制将新LSA通告出去,以便实现路由的实时更新。
实现过程
1、初始化形成端口初始信息:在路由器初始化或网络结构发生变化(如链路发生变化,路由器新增或损坏)时,相关路由器会产生链路状态
广播数据包LSA,该数据包里包含路由器上所有相连链路,也即为所有端口的
状态信息。
2、路由器间通过泛洪(
Flooding)机制交换链路状态信息:各路由器一方面将其LSA数据包传送给所有与其相邻的OSPF路由器,另一方面接收其相邻的OSPF路由器传来的LSA数据包,根据其更新自己的数据库。
3、形成稳定的区域
拓扑结构数据库:OSPF路由协议通过泛洪法逐渐收敛,形成该区域拓扑结构的数据库,这时所有的路由器均保留了该数据库的一个副本。
4、形成
路由表:所有的路由器根据其区域拓扑结构数据库副本采用最短路径法计算形成各自的路由表。
OSPF分组
OSPF协议依靠五种不同类型的分组来建立邻接关系和交换路由信息,即问候分组、
数据库描述分组、链路状态请求分组、链路状态更新分组和链路状态确认分组。
1、问候(Hello)分组
OSPF使用Hello分组建立和维护邻接关系。在一个路由器能够给其他路由器分发它的邻居信息前,必须先问候它的邻居们。
2、数据库描述(Data base Description,
DBD)分组
DBD分组不包含完整的“链路状态数据库”信息,只包含数据库中每个条目的概要。当一个路由器首次连入网络,或者刚刚从故障中恢复时,它需要完整的“
链路状态数据库”信息。此时,该路由器首先通过hello分组与邻居们建立双向通信关系,然后将会收到每个邻居反馈的DBD分组。新连入的这个路由器会检查所有概要,然后发送一个或多个链路状态请求分组,取回完整的条目信息。
3、链路状态请求(Link State Request,LSR)分组
LSR分组用来请求邻居发送其链路状态数据库中某些条目的详细信息。当一个路由器与邻居交换了数据库描述分组后,如果发现它的链路状态数据库缺少某些条目或某些条目已过期,就使用LSR分组来取得邻居链路状态数据库中较新的部分。
4、链路状态更新(Link State Update,LSU)分组
LSU分组被用来应答链路状态请求分组,也可以在链路状态发生变化时实现洪泛(flooding)。在网络运行过程中,只要一个路由器的链路状态发生变化,该路由器就要使用LSU,用
洪泛法向全网更新链路状态。
5、链路状态确认(Link State Acknowledgment,LSAck)分组
LSAck分组被用来应答链路状态更新分组,对其进行确认,从而使得链路状态更新分组采用的洪泛法变得可靠。
优点
(1)OSPF适合在大范围的网络:
OSPF协议当中对于路由的
跳数,它是没有限制的,所以OSPF协议能用在许多场合,同时也支持更加广泛的
网络规模。只要是在组播的网络中,OSPF协议能够支持数十台路由器一起运作。
(2)组播触发式更新:OSPF协议在收敛完成后,会以触发方式发送
拓扑变化的信息给其他路由器,这样就可以减少网络宽带的利用率;同时,可以减小干扰,特别是在使用组播
网络结构,对外发出信息时,它对其他设备不构成影响。
(3)收敛速度快:如果网络结构出现改变,
OSPF协议的系统会以最快的速度发出新的报文,从而使新的拓扑情况很快扩散到整个网络;而且,OSPF采用周期较短的HELLO报文来维护邻居状态。
(4)以开销作为
度量值:OSPF协议在设计时,就考虑到了链路带宽对路由度量值的影响。OSPF协议是以开销值作为标准,而链路开销和链路带宽,正好形成了
反比的关系,带宽越是高,开销就会越小,这样一来,OSPF
选路主要基于带宽因素。
(5)
OSPF协议的设计是为了避免
路由环路:在使用
最短路径的算法下,收到路由中的链路状态,然后生成路径,这样不会产生环路。
(6)应用广泛:广泛的应用在互联网上,其他会有大量的应用实例。证明这是使用最广泛的IGP之一。
缺点
(1)OSPF协议的配置对于技术水平要求很高,配置比较复杂的。因为网络会根据具体的参数,给整个网络划分区域或者标注某个属性,所以各种情况都会非常复杂,这就要求网络
分析员对OSPF协议的配置要相当了解,不但要求具有普通的网络
知识技术,还要有更深层的技术理解,只有具备这样的人员,才能完成OSPF协议的配置和
日常维护。
(2)路由其自身的负载分担能力是很低的。OSPF
路由协议会根据几个主要的因素,生成优先级不同的接口。然而在同一个区域内,路由协议只会通过优先级最高的那个接口。只要是接口优先级低于最高优先级,那么路由就不会通过。在这个基础上,不同等级的路由,无法相互承担负载,只能独自运行。
受到攻击
(一)通过验证漏洞进行攻击
无验证:由于交换信息时不需要验证,攻击者可以直接获取信息。简单口令验证:因为在
传输过程中OSPF
数据包括其口令都是以明文形式传输的,所以攻击者可以用线路
分析仪从网络上窃取口令。密码验证:信息—摘要算法MD5(Message—Digest Algorithm 5)是OSPF规范中完整引用的唯一一个签名算法,由于它的逻辑
不可逆性,曾被认为是牢不可破的。但是2004年中国科学家
王小云成功地破解了此算法,说明密码验证方式也不是足够安全。而攻击者一旦获得了交换的信息或口令就可以生成新的伪OSPF数据包,发送给该接口的各路由器,致使网络不能正常运行。
(二)通过篡改OSPF报文进行攻击
1、篡改Hello报文。OSPF路由器定期向外发送Hello报文,用以发现邻居和维护邻接节点关系。攻击者一旦攻破了OSPF验证体系,就可以修改报文中的某些参数来达到攻击的目的。如删掉邻居列表上的邻居使所有邻居关系变为Down,修改
指定路由器身份,致使频繁地进行指定路由器的选举,消耗大量的资源。
2、篡改LSU报文。LSU报文用洪泛发对
全网更新链路状态。这个报文是最复杂的,也是
OSPF协议最核心的部分。如通过LSU报文大量注入Roter Sat Network-LSA,尽管它们可能不参与路由运算,但由于它们存在于每个路由器的数据库中,因而可能造成数据库溢出。
3、大量发送各种类型报文。攻击者通过不间断发送大量各种类型的OSPF报文,很可能造成被攻击实体的
资源耗竭而无法正常工作。如发送包含过长邻居列表的超大Hello报文,邻居路由器需要为邻居列表上的每个邻居创建邻居结构而消耗大量的资源,起到攻击的效果。
安全维护
1、定期对网络进行维护
定期对进行稳定和维护是必不可少的,在使用的过程中也是其发展的过程,这法则就说明了在使用的时候一定会发生一些微妙的变化,这些微妙的变化有可能向好的方面发展,有可能向不好的方面发展,好的方面发展暂且不提。以坏处发展为例子,假如一个系统的漏洞在使用的过程中出现了,刚开始他的出现可能对构成不了什么威胁。
2、注重OSPF路由协议维护
“大数据”这个概念的出现其实最近几年随着
网络技术不断的发展才出现的名词,“大数据”其实是根据
网络社会不断发展,各项工作的数据凭借着互联网这条纽带实现了数据的共享化多元化,而OSPF路由协议安全的工作就是在这种数据共享化的情况下维护使用者的
数据安全。
3、有效规避漏洞
在OSPF路由协议安全维护这一块的工作做到位,及时的发现找出网络存在的安全隐患,保存的数据的
完整性,在使用的时候对于的
定期维护和检查,将损失降低到最小。