OSPF全称是:Open Shortest Path First (开放式最短路径优先)
OSPF路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一个路由域内。在这里,路由域是指一个自治系统(Autonomous System),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。
作为一种链路状态的路由协议,OSPF将链路状态组播数据LSA(Link State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。
协议安全性
在信息交换的安全性上,OSPF规定了路由器之间的任何信息交换在必要时都可以经过认证或鉴别(Authentication),以保证只有可信的路由器之间才能传播选路信息。OSPF支持多种鉴别机制,并且允许各个区域间采用不同的鉴别机制。OSPF对链路状态算法在广播式网络(如以太网)中的应用进行了优化,以尽可能地利用硬件广播能力来传递链路状态报文。通常链路状态算法的拓扑图中一个结点代表一个路由器。若K个路由器都连接到以太网上,在广播链路状态时,关于这K个路由器的报文将达到K的平方个。为此,OSPF在拓扑结构图允许一个结点代表一个广播网络。每个广播网络上所有路由器发送链路状态报文,报告该网络中的路由器的链路状态。
OSPF简单地说就是两个相邻的路由器通过发报文的形式成为邻居关系,邻居再相互发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,放在OSPF路由表,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报文,邻居路由器需要为邻居列表上的每个邻居创建邻居结构而消耗大量的资源,起到攻击的效果。
五种报文
Hello报文:建立并维护邻居关系。
DBD报文:发送链路状态头部信息。
LSR报文:把从DBD中找出需要的链路状态头部信息传给邻居,请求完整信息。
LSU报文:将LSR请求的头部信息对应的完整信息发给邻居。
LSACK:收到LSU报文后确认该报文。
三个阶段
邻居发现:通过发送Hello报文形成邻居关系。
路由通告:邻居间发送链路状态信息形成邻接关系。
路由计算:根据最短路径算法算出路由表。
四张表
邻居表:主要记录形成邻居关系路由器。
链路状态数据库:记录链路状态信息。
OSPF路由表:通过链路状态数据库得出。
全局路由表:OSPF路由与其他比较得出。
OSPF协议主要优点
(1)OSPF 适合在大范围的网络:OSPF 协议当中对于路由的跳数,它是没有限制的,所以 OSPF 协议能用在许多场合,同时也支持更加广泛的网络规模。只要是在组播的网络中,OSPF协议能够支持数十台路由器一起运作。
(2)组播触发式更新:OSPF 协议在收敛完成后,会以触发方式发送拓扑变化的信息给其他路由器,这样就可以减少网络宽带的利用率;同时,可以减小干扰,特别是在使用组播网络结构,对外发出信息时,它对其他设备不构成其他影响
(3)收敛速度快:如果网络结构出现改变,OSPF 协议的系统会以最快的速度发出新的报文,从而使新的拓扑情况很快扩散到整个网络;而且,OSPF 采用周期较短的 HELLO 报文来维护邻居状态。
(4)以开销作为度量值:OSPF 协议在设计时,就考虑到了链路带宽对路由度量值的影响。OSPF 协议是以开销值作为标准,而链路开销和链路带宽,正好形成了反比的关系,带宽越是高,开销就会越小,这样一来,OSPF 选路主要基于带宽因素。
(5)OSPF 协议的设计是为了避免路由环路:在使用最短路径的算法下,收到路由中的链路状态,然后生成路径,这样不会产生环路。
(6)应用广泛:广泛的应用在互联网上,其他会有大量的应用实例。证明这是使用最广泛的IGP 之一。
OSPF协议的主要缺点
(1)OSPF协议的配置对于技术水平要求很高,配置比较复杂的。因为网络会根据具体的参数,给整个网络划分区域或者标注某个属性,所以各种情况都会非常复杂,这就要求网络分析员对OSPF协议的配置要相当了解,不但要求具有普通的网络知识技术,还要有更深层的技术理解,只有具备这样的人员,才能完成OSPF协议的配置和日常维护。
(2)路由其自身的负载分担能力是很低的。OSPF路由协议会根据几个主要的因素,生成优先级不同的接口。然而在同一个区域内,路由协议只会通过优先级最高的那个接口。只要是接口优先级低于最高优先级,那么路由就不会通过。在这个基础上,不同等级的路由,无法相互承担负载,只能独自运行。
OSPF的区域
OSPF 中划分区域的目的就是在于控制链路状态信息LSA 泛洪的范围、减小链路状态数据库LSDB的大小、改善网络的可扩展性、达到快速地收敛。
当网络中包含多个区域时,OSPF 协议有特殊的规定,即其中必须有一个 Area 0,通常也叫做骨干区域(Backbone Area)。骨干区域在所有其他区域的中心,即所有区域都必须与骨干区域物理或逻辑上相连,这种设计思想的原因是 OSPF 协议要把所有区域的路由信息引入骨干区,然后再依次将路由信息从骨干区域分发到其它区域中。
OSPF 将区域划分的类型
骨干区域 :作为中央实体,其他区域与之相连,骨干区域编号为 0,在该区域中,各种类型的 LSA 均允许发布。
标准区域 :除骨干区域外的默认的区域类型,在该类型区域中,各种类型的 LSA 均允许发布。
末梢区域 :即 STUB 区域,该类型区域中不接受关于 AS外部的路由信息,即不接受类型 5 的 AS 外部LSA,需要路由到自治系统外部的网络时,路由器使用缺省路由(0.0.0.0),末梢区域中不能包含有自治系统边界路由器 ASBR。
完全末梢区域 :该类型区域中不接受关于 AS 外部的路由信息,同时也不接受来自 AS 中其他区域的汇总路由,即不接受类型 3、类型 4、类型 5 的 LSA,完全末梢区域也不能包含有自治系统边界路由器 ASBR。
如您发现侵权内容,欢迎友好的反馈,站长必在24小时内妥善处理。站长邮箱:postmaster@cloud700.com