6-24 OSPF原理

OSPF邻居关系的建立

OSPF邻居关系建立的简要过程

image-20240317230304695

  1. 建立双向通信关系:知道互有彼此
  2. 协商主从关系:协商交互路由信息时,谁做主人,谁做从属
  3. 交互链路状态通告LSA:同步和发送LSA
  4. 完成同步:实现OSPF全毗邻

OSPF邻居关系建立的详细过程

image-20240317230701728

  1. A→B:Hello

    • 路由器A向路由器B发送一个Hello包并进入Init状态:源地址为A,目的地址为组播地址224.0.0.5(运行OSPF的路由器都会监听该组播地址);
    • 路由器B接收这个Hello包,并将A放入邻居表中
  2. B→A:Hello:通过下述过程,A、B之间的邻居关系就建立起来,彼此直到互为对方邻居

    • 路由器B向路由器A发送一个Hello包并进入Init状态:源地址为B,目的地址为A(注意此时发的是一个单播包)
    • 路由器A收到上述单播包,将B放进自己的邻居表当中,并且由于收到的是一个单播包,A就知道B的邻居表里已经有A了,A进入Two-way(双向)状态
  3. A→B:DBD:数据库描述包,协商主从关系

    • 路由器A向路由器B发送一个DBD包:告诉B说我的RouterID为12.1.1.1
  4. B→A:DBD:数据库描述包

    • 路由器B向路由器A发送一个DBD包:告诉A说我的RouterID为12.1.1.2,比你高一些;则B为主,A为从
  5. A↔B:DBD:交互数据库描述包,这个DBD相当于是自己链路状态数据库的目录索引信息

    • 交互DBD数据库描述包,即交互链路状态数据库的目录索引信息
  6. A↔B:ACK:

    • 确认DBD数据库描述包交互完毕
  7. A→B:LSR链路状态请求包

    • 链路状态请求包:告诉对方我需要哪个网络的链路状态信息
  8. B→A:LSU链路状态更新包

    • LSU链路状态更新包:对方需要的网络的链路状态信息
  9. A→B:LSUAck确认更新包

    • LSUAck确认更新包:告诉对方已收到并更新上述信息
  10. 通过上述交互,使得两台路由器LSDB链路状态数据库完全同步

注意上图中用红色标注出来的,是邻居关系建立的状态阶段

查看邻居关系

当两台路由器建立起OSPF邻居关系之后,可使用display ospf peer查看邻居关系

image-20240317233720923

上图中Full状态说明两台路由器已经完全同步LSDB链路状态数据库

OSPF网络类型

OSPF支持的网络类型

  • 点到点网络
  • 广播型多路访问网络
  • 非广播型多路访问(NBMA)网络
  • P2MP网络

常见链路层协议对应的默认网络类型

网络类型 常见链路层协议
Point-to-Point PPP链路,HDLC链路
Broadcast 以太网链路
NBMA 帧中继链路,ATM链路
P2MP 需手工指定

DR和BDR

OSPF中有两个较为重要的概念,分别是DR和BDR

image-20240317234147973

上述网络拓扑是一个广播多路网络,图1相当于将这些路由器连接至同一个交换机上去,交换机在拓扑中表现为一条总线了

在广播多路访问网络中,所有路由器接口都在相同网段,这些接口都将两两建立OSPF邻居关系这就意味着,网络中共有(排列组合):
$$
M=N(N-1)/2
$$
这么多OSPF邻居关系,维护如此多邻居关系不仅耗费设备资源,也增加了网络中LSA泛洪数量,如图2所示。

为解决上述的问题,我们需在广播多路访问网络中选举一个指定路由器DR和一个备用指定路由器BDR

image-20240317234518474

为减小多路访问网络中的OSPF流量,OSPF会在每一个Ma网络(多路访问网络)选举一个指定路由器(DR)和一个备用指定路由器(BDR)。

  • DR选举规则:最高OSPF接口优先级拥有者被选坐DR,如果优先级相等(默认为1),具有最高OSPF RouterID的路由器被选举为DR,并且DR具有非抢占性。

  • 指定路由器(DR):负责使用变化新消息更新其他OSPF路由器(DRother)

  • 备用指定路由器(BDR):监控DR状态,并在当前DR发生故障后接替其角色

注意OSPF为“接口敏感协议”,DR及BDR的身份状态是基于OSPF接口的

Ma网络中(多路访问网络),所有其他路由器均只与DR和BDR建立邻居关系,其他路由器之间不建立邻接关系

如此一来,Ma网络中OSPF需要维护的邻居关系大幅减少至
$$
M=(n-2)*2+1
$$
因此,LSA泛洪问题得到缓解,如下图所示

image-20240317235213110

  • 假设R3下方网络链路状态发生变化,路由器R3用224.0.0.6通知DR及BDR;DR、BDR监听224.0.0.6这一组播地址
  • DR向组播地址224.0.0.5发送更新以通知其他路由器,所有的OSPF路由器监听224.0.0.5
  • 路由器收到链路变化后的LSU后,更新自己的LSDB,进行SPF重新计算,更新路由表

OSPF区域概念

单区域存在的问题

image-20240317235557965

如果所有路由器处于同一个OSPF区域,则会存在如下问题:

  • LSA泛洪严重,OSPF路由器的负担很大
  • 区域内部动荡会引起全网路由器的SPF计算,消耗路由器CPU资源
  • LSDB庞大,资源消耗过多,设备性能下降,影响数据转发
  • 每台路由器都需要维护的路由表越来越大,单区域内路由无法汇总

OSPF多区域

image-20240317235652638

为此,引入多区域的OSPF,有如下优点:

  • 减少了LSA洪泛范围,有效把拓扑变化控制在区域内,达到网络优化的目的
  • 在区域边界可以做路由汇总,减小了路由表
  • 充分利用OSPF特殊区域的扩展性,进一步减少LSA泛洪,从而优化路由
  • 多区域提高了网络的扩展性,有利于组建大规模网络

所有非骨干区域必须与骨干区域直连

若骨干区域定义为区域0,则所有的其他非骨干区域必须与区域0直连,下面图2中区域3连接错误

image-20240317235831406

OSPF区域中的路由器角色

image-20240318000126413

类型 英文名称
区域内路由器 Internal Router
区域边界路由器 ABR Area Border Router
骨干路由器 Backbone Router
AS边界路由器ASBR(自治系统边界路由器) AS Boundary Router

站内搜索

没有找到内容!