OSPF协议基本原理

文章目录

    • 一、OSFP协议概述
    • 二、分层结构
    • 三、Router ID与网络类型
    • 四、报文和封装
    • 五、小结

一、OSFP协议概述

OSPF是IETF开发的一个基于链路状态的内部网关协议,目前在互联网上大量地使用。主要介绍OSPF协议的工作原理,包括分层结构、网络类型、报文封装等内容。

1.1OSPF协议特点

OSPF协议是典型的链路状态路由协议,和RIP协议有很大的不同。它具有以下特点:
1.支持较大规模的网络:OSPF协议无路由跳数限制,所以其适应范围广,支持网络规模更大。在特定的组网环境下,OSPF单区域甚至可支持几十台路由器。
2.组播触发式更新:OSPF协议在收敛完成后,会以触发方式发送拓扑变化的信息给其它路由器,从而占用了较少的链路带宽;同时,在某些类型的链路上以组播方式发送协议报文,减少对其他设备的干扰。
3.收敛速度快:
在网络的拓扑结构发生变化后,OSPF会立即发送更新报文,从而使拓扑变化很快扩散到整个自治系统;同时,OSPF采用周期较短的Hello报文来维护邻居状态。
4.以开销(Cost)作为度量值:OSPF协议在设计时,就考虑到了链路带宽对路由度量值的影响。OSPF采用链路开销作为度量值,而链路开销与链路带宽成反比,即带宽越高,开销越小。这样,OSPF选路主要基于带宽因素。
5.协议设计避免路由环路:由于OSPF根据收集到的链路状态用最短路径树算法计算路由,从算法本身保证了不会生成自环路由。
6.应用广泛:目前在互联网有大量的应用实例,是使用最广泛的IGP之一。

1.2OSPF基本原理

 作为典型的链路状态型路由协议,OSPF协议的工作过程包含了邻居发现、路由交换、路由计算、路由维护等阶段。这这些过程中,主要涉及到以下:
1.邻居表:运行OSPF协议的路由器以组播方式(目的地址224.0.0.5)发送Hello 报文来发现邻居。收到Hello报文的邻居路由器检查报文中所定义的参数,如果双方一致就会形成邻居关系。邻居表会记录所有的建立了邻居关系的路由器,包括相关描述和邻居状态。路由器会定时的向自己的邻居发送Hello报文,如果在一定的周期内,没有收到邻居的回应报文,就认为邻居路由器已经失效,将它从邻居表中删除。
2.链路状态数据库(LSDB):有时也被称作拓扑表。根据协议规定,运行OSPF协议的路由器之间并不是交换路由表,而是交换彼此对于链路状态的描述信息。交换完成之后,所有同一区域的路由器的拓扑表中都具有当前区域的所有链路状态信息,并且都是一致的。
3.路由表:运行 OSPF协议的路由器在获得完整的链路状态描述之后,运用SPF 算法进行计算,并且将计算出来的最优路由加入OSPF 路由表中。

二、分层结构

1.1骨干区域与非骨干区域

     随着网络规模日益扩大,当一个大型网络中的路由器都运行OSPF路由协议时,路由器数量的增多会导致 LSDB 非常庞大,占用大量的存储空间,并使得运行SPF 算法的复杂度增加,导致 CPU 负担很重。
     在网络规模增大之后,拓扑结构发生变化的概率也增大,网络会经常处于不稳定状态之造成网络中有大量的 OSPF协议报文在传递,降低了网络带宽的利用率。更为严重的中,是,每一次变化都会导致网络中所有的路由器重新进行路由计算。
     OSPF协议通过将自治系统划分成不同的区域(Area)来解决上述问题。区域是从逻辑上将路由器划分为不同的组,每个组用区域号(ArealD)来标识。区域的边界是路由器,而不是链路。一个网段(链路)只能属于一个区域,或者说每个运行OSPF的接口必须属于某个特定区域。
     并非所有的OSPF 区域都是平等的关系。其中有一个区域是与众不同的,它的区域号(AreaID)是0,通常被称为骨于区域。骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。对此,OSPF有两个规定:
     所有非骨干区域必须与骨干区域保持连通;
     骨干区域自身也必须保持连通。

OSPF协议的区域划分可以带来以下好处:
1.减少区域内 LSA的数量:在进行了区域划分之后,OSPF路由器的LSDB 就不需要维护所有区域的链路状态信息,而只需要维护本区域内的链路状态信息。LSDB所维护的 LSA 数量减少了,运行OSPF 协议对于路由器性能的要求也降低了。这样对于性能不是很好的路由器来说,也同样可以运行 OSPF协议。
2.便于管理:功能性和地理位置相同的路由器,往往有着相同的路由选择需求。例如,对于某国家骨干网来说,可以根据地理位置,将各个省份的路由器划分在不同的区域内,也可以根据功能性的需求,将服务器区、测试区、网管区等中的路由器划分在为不同的区域内,对于它们进行集中管理,同时进行路由控制。
3.减少路由震荡的影响:可以对部分区域进行特殊配置,或者在区域边缘设置路由聚合和路由过滤等策略,将路由震荡控制在区域内,减少对于自治系统内其他区域路由器的影响,降低其他区域路由器 SPF 算法反复计算的次数。

1.2OSPF路由器类型

根据 OSPF协议当中对于路由器类型的定义,在上图所示网络中:
1.RTA、RTF 和 RTG 所有接口都属于同一个 OSPF 区域,为区域内路由器
2.RTD 和 RTE 同时属于两个以上的区域,而且均有一个接口处于骨干区域 Area0,为ABR:
3.RTA、RTB、RTC、RTD 和 RTE 都至少有一个接口属于骨干区域 Area0,为骨干路由器;
4.RTB 虽然有一个接口属于骨干区域Area0,但是该路由器引入了外部路由信息,为ASBR。

三、Router ID与网络类型

1.1Router ID

RouterID(RID)是一个32比特无符号整数,在大部分使用环境下,都可以用来在一个自治系统中唯一地标识一台路由器,以区分其他路由器。路由器在启动OSPF协议之前,会首先检查 Router lD 的配置。
如果没有通过相关命令配置 RouterID,路由器会按照以下顺序自动选择一个Router ID
1.如果存在配置IP 地址的 Loopback 接口,则选择 Loopback 接口地址中最大的作为Router lD;
2.如果没有配置IP地址的Loopback接口,则从其他接口的IP地址中选择最大的作为RouterID(不考虑接口的up/down 状态)。

   一般情况下,建议配置 Loopback接口,并且将 Loopback 接口的IP 地址配置为路由器的 RouterID,以便于统一管理和区分其他路由器。

1.2OSPF网络类型

OSPF根据链路层协议类型将网络分为下列四种类型:
1.Broadcast:当链路层协议是Ethernet、FDDI时,OSPF缺省认为网络类型是Broadcast。在该类型的网络中,通常以组播形式(224.0.0.5和224.0.0.6)发送协议报文。
2.NBMA(Non-BroadcastMulti-Access,非广播多点可达网络):当链路层协议是帧中继、ATM 或X.25时,OSPF缺省认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文。
3.P2MP(Point-to-MultiPoint,点到多点):没有一种链路层协议会被缺省的认为是P2MP 类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将NBMA改为点到多点的网络。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文。

4.P2P(Point-to-Point,点到点):当链路层协议是4.PPP、HDLC 时,OSPF 缺省认为网络类型是 P2P。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文

四、报文和封装

OSPF有五种类型的协议报文:
1.Hello 报文:周期性发送,用来发现和维持OSPF邻居关系。内容包括一些定时器的数值、DR(DesignatedRouter,指定路由器)、BDR(BackupDesignated Router,备份指定路由器)以及自己己知的邻居。
2.DD(Database Description,数据库描述)报文:描述了本地LSDB 中每一条 LSA的摘要信息,用于两台路由器进行数据库同步。
3.LSR(LinkStateRequest,链路状态请求)报文:向对方请求所需的LSA。两台路由器互相交换 DD 报文之后,得知对端的路由器有哪些 LSA 是本地的 LSDB 所缺少的,这时需要发送 LSR 报文向对方请求所需的LSA。内容包括所需要的 LSA 的摘要。

4.LSU(Link State Update,链路状态更新)报文:向对方发送其所需要的LSA。5.LSAck(LinkStateAcknowledgment,链路状态确认)报文:用来对收到的 LSA 进行确认。内容是需要确认的LSA的Header(一个报文可对多个LSA进行确认)。OSPF 报文是直接封装在IP报文之中的,其IP报文头的协议号为89。
     一个OSPF 报文正常的封装顺序是:
第1步:将 OSPF 协议报文,如 Hell0、DD、LSR、LSU 和LSAck 报文作为净荷封装在IP 报文中,将协议号设置为 89。
第2步:将收到的IP报文进行链路层封装,具体的格式取决于通信的链路层协议。封装上相应的帧头和帧尾之后,就构成一个完整的链路帧。

五、小结

  • 34
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值