0%

01OSPF 开放最短优先

OSPF 开放最短优先

简介

  • 是IETF组织开发的一个基于链路状态的内部网关协议

OSPF协议特点

  • 没有路由跳数的限制(15)
  • 使用组播更新变化的路由和网络信息(224.0.0.5、224.0.0.6)
  • 路由收敛速度较快(触发更新)
  • 以开销(cost)作为度量值
  • 采用的SPF算法可以有效的避免环路
  • 在互联网上大量使用,是运用最广泛的路由协议

OSPF表项

  • 邻居表记录了建立邻居关系的路由器
  • LSDB中包含了所有的链路状态信息,并需要实时同步
  • 经过SPF算法计算出的路由存放在OSPF路由表中

生成OSPF路由

  • 网络的拓扑结构
  • 每台路由器的LSDB
  • 由LSDB得到的带权有向图
  • 每台路由器分别以自己为根节点计算最小生成树

分层结构

  • 骨干区域
  • 非骨干区域
  • 骨干区域负责转发非骨干区域之间的路由

划分区域的优势

  • 减少了区域内的LSDB中链路状态信息的数量,降低了运行OSPF协议对路由器性能的要求
  • 可以将相同功能性或者地理位置的路由器划分在一个区域内,以便于管理
  • 隔离拓扑变化,减少路由震荡对整个自治系统的影响

OSPF路由器类型

  • 区域内路由器 (Internal Router)
  • 区域边界路由器 (ABR,Area Border Router)
  • 骨干路由器(Backbone Router)
  • 自治系统边界路由器(ASBR,Autonomous System Border Router)

Router ID

  • 一台路由器如果要运行OSPF协议,则必须存在Router ID。RID是一个32比特无符号整数,可以在一个自治系统中唯一标识一台路由器
  • RID可以手工配置,也可以自动生成
  • 如果没有通过命令指定RID,将按照如下顺序自动生成一个RID
  • 如果存在配置IP地址的Loopback接口,则选择Loopback接口地址中最大的作为Router ID
  • 如果没有配置IP地址的Loopback接口,则从其他接口的IP地址中选择最大的作为Router ID(不考虑接口的UP/DOWN状态)

OSPF网络类型

  • Broadcast(广播)默认以太网协议,生成时间,死亡时间10s、40s
  • P2P (点到点)默认PPP协议,生成时间,死亡时间10s、40s
  • NBMA (非广播多点可达网络) 默认FR协议,生成时间,死亡时间30s、120s
  • P2MP(点到多点)只能由其他类型更改而来,生成时间,死亡时间30s、120s

NBMA与P2MP

  • NBMA网络是指那些全连通的、非广播、多点可达网络。
  • 而P2MP网络,则并不需要一定是全连通的
  • NBMA是一种缺省的网络类型
  • P2MP网络必须是由其它的网络强制更改的
  • NBMA网络采用单播发送报文,需要手工配置邻居。
  • P2MP网络采用组播方式发送报文。

OSPF报文类型与封装

OSPF报文类型 作用
Hello 建立邻居关系、周期性维护邻居关系
Database Description(DD) 协商主从、发送摘要
Link State Request(LSR) 请求不具备的LSA
Link State Update(LSU) 发送详细的LSA信息
Link State Acknowledge(LSAck) 确认收到LSA

OSPF报文格式

| 链路层帧头 | IP Header | OSPF Packet | 链路层帧尾 |

  • OSPF报文直接封装在IP报文中,协议号为89

邻居关系

  • 建立邻居关系
  • 维持邻居关系
    • 邻居之间通过交换Hello报文,确认邻居是否工作正常
    • 如果在一定的时间间隔内,收不到邻居发来的Hello报文,就认为邻居已经失效,从邻居表中删除
  • DR/BDR的选举
    • 采用DR/BDR建立邻接关系,可以降低需要维护的邻接关系数量
  • 邻接关系建立
  • 在广播和NBMA网络中,链路状态发生变化时,主要是通过DR路由器发送更新报文

DR/BDR的选举原则

  • 首先比较Hello报文中携带的优先级(优先级最高的选举为DR,优先级次高的被选举为BDR,优先级为0的不参与选举)
  • 优先级一致的情况下,比较Router ID(越大越优先)
  • 保持稳定原则(选举完毕,一台具有更高优先级的路由器变为有效,也不会替换该网段中已经选举的DR/BDR)

OSPF的状态机

  • down 接口没有启用ospf
  • init hello报文中的参数没有协商成功
  • att NBMA,只发了Hello还没接受
  • 2-way Hello报文中的参数协商成功(route-id、接口地址和掩码、生成时间死亡时间、区域、特殊区域、验证)
  • exstart 发送第一个DD报文,协商主从关系
  • exchange 发送第二个DD报文,携带摘要信息
  • loading 互相学习LSA,发送LSR、LSU、LSAck报文
  • full 区域内LSA同步

LSDB更新

  • 收到一条LSA更新报文,在LSDB中查找,没找到就加入LSDB
  • 查找到比谁的LSA序列号大,序列号大的加入LSDB
  • 在广播和NBMA网络中,链路状态发生变化时,主要是通过DR路由器发送更新报文

区域划分时存在的问题

  • 骨干区域被分割
  • 非骨干区域无法和骨干区域保持连通

虚连接

  • 解决骨干区域被分割的问题
  • 解决非骨干区域无法和骨干区域保持连通的问题