OSPF工作原理

在OSPF出现前,网络上广泛使用RIP(Routing Information Protocol)作为内部网关协议。由于RIP是基于距离矢量算法的路由协议,存在着收敛慢、路由环路、可扩展性差等问题,所以逐渐被OSPF取代。OSPF作为基于链路状态的协议,能够解决RIP所面临的诸多问题。此外,OSPF还有以下优点:

  • OSPF采用组播形式收发报文,这样可以减少对其它不运行OSPF路由器的影响。

  • OSPF支持无类型域间选路(CIDR)。

  • OSPF支持对等价路由进行负载分担。

  • OSPF支持报文加密。

由于OSPF具有以上优势,使得OSPF作为优秀的内部网关协议被快速接收并广泛使用。

6.2.1 OSPF的专业术语

  1. Router ID

一台路由器如果要运行OSPF协议,必须存在Router ID。Router ID是一个32比特无符号整数,是一台路由器在自治系统中的唯一标识。Router ID选举规则如下:

  1. 手动配置OSPF路由器的Router ID(建议手动配置)
  2. 如果没有手动配置Router ID,则路由器使用Loopback接口中最大的IP地址作为Router ID
  3. 如果没有配置Loopback接口,则路由器使用物理接口中最大的IP地址作为Router ID
    1. Router ID一旦选定,之后如果要更改的话就需要重启OSPF进程,在实际工程中,推荐手工指定OSPF路由设备的Router ID。

  1. 区域

区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识。OSPF的区域ID是一个32bit的非负整数,它有两种表示方法:

  1. 点分十进制:比如Area 0.0.0.1
  2. 十进制:比如Area 1

  1. 度量值

OSPF使用Cost(开销)作为路由的度量值。每一个激活了OSPF的接口都会维护一个接口Cost值,缺省的接口Cost = "100 Mbit/s " /"接口带宽" 。其中100 "Mbit/s"为OSPF指定的缺省参考值,该值是可配置的。如图6-7所示,在R3的路由表中,到达10.0.1.1/32的OSPF路由的Cost值=1+64,即65。

图6-7 OSPF度量值

6.2.2 OSPF路由器的类型

OSPF的路由器类型如图6-8所示。

                                          图6-8路由器类型

  1. 骨干路由器(Backbone Router):至少有一个接口属于骨干区域。
  2. 区域内路由器(Internal Router):所有接口都属于同一个OSPF区域
  3. 区域边界路由器ABR(Area Border Router):可以同时属于两个以上的区域,但其中一个必须是骨干区域。
  4. 自治系统边界路由器ASBR(AS Boundary Router):只要一台OSPF设备引入了外部路由的信息,它就成为ASBR。

6.2.3 OSPF的包文类型

OSPF用IP报文直接封装协议报文,协议号为89。OSPF分为5种报文:Hello报文、DD报文、LSR报文、LSU报文和LSAck报文,如表1-1所示:

                                                 表1-1 OSPF包文类型

报文类型

作用

Hello

周期性发送,用来发现和维持OSPF邻居关系

DD

描述本地LSDB(Link State Database)的摘要信息,用于两台设备进行数据库同步。

LSR

用于向对方请求所需的LSA。

设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。

LSU

用于向对方发送其所需要的LSA。

LSA

用来对收到的LSA进行确认。

6.2.4 OSPF邻居状态

在OSPF网络中,为了交换路由信息,邻居设备之间首先要建立邻接关系,邻居(Neighbors)关系和邻接(Adjacencies)关系是两个不同的概念:

  • 邻居关系:OSPF设备启动后,会通过OSPF接口向外发送Hello报文,收到Hello报文的OSPF设备会检查报文中所定义的参数,如果双方一致就会形成邻居关系,两端设备互为邻居。

  • 邻接关系:形成邻居关系后,如果两端设备成功交换DD报文和LSA,才建立邻接关系。

邻居和邻接状态是通过OSPF状态机表现的,OSPF共有8种邻居状态机,分别是Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full。 Down、2-way、Full是稳定状态,Attempt、Init、Exstart、Exchange、Loading是不稳定状态。不稳定状态是在转换过程中瞬间存在的状态,一般不会超过几分钟。

  1. Down:邻居会话的初始阶段,表明没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包。
  2. Attempt:该状态仅发生在NBMA网络中,表明对端在邻居失效时间间隔(dead interval)超时前仍然没有回复Hello报文。此时路由器依然每发送轮询Hello报文的时间间隔(poll interval)向对端发送Hello报文。
  3. Init:收到Hello报文后状态为Init。
  4. 2-way:收到的Hello报文中包含有自己的Router ID,则状态为2-way;如果不需要形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态。
  5. Exstart:开始协商主从关系,并确定DD的序列号,此时状态为Exstart。
  6. Exchange:主从关系协商完毕后开始交换DD报文,此时状态为Exchange。
  7. Loading:DD报文交换完成即Exchange done,此时状态为Loading。
  8. Full:LSR重传列表为空,此时状态为Full。

6.2.5 OSPF网络类型

OSPF网络类型是一个非常重要的接口变量,这个变量将影响OSPF在接口上的操作,例如采用什么方式发送OSPF协议报文,以及是否需要选举DR、BDR等,接口默认的OSPF网络类型取决于接口所使用的数据链路层封装,OSPF支持4种网络类型:

  • P2P(Point-to-Point,点到点)
  • P2MP(Point to Multi-Point,点到多点)、
  • BMA(Broadcast Multiple Access,广播式多路访问)
  • NBMA(Non-Broadcast Multiple Access,非广播式多路访问)

P2P网络如图6-9所示,P2P指的是在一段链路上只能连接两台网络设备的环境,典型的例子是PPP链路,当接口采用PPP封装时,OSPF在该接口上采用的缺省网络类型为P2P。

图6-9  P2P网络示例

P2MP网络如图6-10所示, P2MP相当于将多条P2P链路的一端进行捆绑得到的网络,没有一种链路层协议会被缺省的认为是P2MP网络类型,该类型必须由其他网络类型手动更改,常用做法是将非全连通的NBMA改为点到多点的网络。

图6-10 P2MP网络示例

BMA网络如图6-11所示,BMA也被称为Broadcast,指的是一个允许多台设备接入的、支持广播的环境,典型的例子是Ethernet(以太网)。当接口采用Ethernet封装时,OSPF在该接口上采用的缺省网络类型为BMA。

图6-11 BMA网络示例

NBMA网络如图6-12所示,NBMA指的是一个允许多台网络设备接入且不支持广播的环境,典型的例子是帧中继(Frame-Relay)网络。

图6-12 NBMA网络示例

一般情况下,链路两端的OSPF接口网络类型必须一致,否则双方无法建立邻居关系,OSPF网络类型可以在接口下通过命令手动修改以适应不同网络场景,例如在一个广播域下只有两台OSPF路由器时,可以将BMA网络类型修改为P2P。

6.2.6 DR与BDR的选举

前文中提到的广播式多路访问(BMA)与非广播式多路访问(NBMA)都属于多路式访问网络(MA),我们经常提到的以太网就是一种典型的广播式多路访问网络,如图6-13所示,在MA网络中,如果每台OSPF路由器都与其他的所有路由器建立OSPF邻接关系,便会导致网络中存在过多的OSPF邻接关系,增加设备负担,也增加了网络中泛洪的OSPF报文数量,尤其是当拓扑发生变更时,网络中的LSA泛洪可能会造成带宽的浪费和设备资源的损耗。

图6-13 无DR/BDR MA网络中的邻接关系数量

     为了减少MA网络中的泛洪,优化MA网络中OSPF邻接关系,OSPF中指定了三种OSPF路由器身份:DR、BDR和DRother,而且只允许DR、DRother与其他OSPF路由器建立邻接关系,DRother之间的邻居关系会停留在2-way状态,BDR的存在是为了保障网络可靠性,BDR会监控DR的状态,并在当前DR发生故障时接替其角色,如图6-14所示,DR与BDR的存在可以减少邻接关系的数量从而减少设备的负担。

图6-14 DR/BDR减少MA网络中的邻接关系

     DR/BDR的选举规则为:先比较设备DR优先级,优先级的取值范围为0-255,数值越大越优先,其默认值为1,设置为0时,不参与DR/BDR选举,如果无法通过优先级选举出DR/BDR,则比较Router-ID,具有更高的OSPF Router-ID的路由器(的接口)被选举成DR,其次为BDR,值得注意的是的是DR具有非抢占性,也就是说在一个MA网络中,一旦选举出来了DR,在DR设备正常运行的情况下,就算具有更高优先级的设备加入了此MA网络,也不会被选举为DR。

     不同网络类型中的DR/BDR的选举如表6-2所示:

表6-2 不同网络类型中的DR/BDR的选举

OSPF网络类型

常见链路层协议

是否选举DR

是否和邻居建立邻接关系

P2P

PPP链路;

HDLC链路

Broadcast

以太网链路

     DRother之间为邻居关系,其他均为邻接关系

NBMA

帧中继链路

P2MP

需手工指定

  • 19
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值