OSPF协议基础

OSPF 路由协议基础:

OSPF概述:


  • OSPF(开放式最短路径优先)

  • 基于链路状态信息的内部网关协议(IGP协议)

  • 基于IP协议,协议号:89

  • SPF算法:OSPF区域中所有的路由器会从与他相邻的路由器获得LSA,将这些LSA存入LSDB中,计算到每一地方的最优路径,然后将最优路径存入全局路由表中。在计算的过程中,就已经消除了环路

OSPF特点:


  1. 使用区域化的概念:区域内部独立计算,减少对内存和cpu的占用。构建了一个层次化的网络拓扑。

  2. 支持无类路由,支持划分子网。

  3. 没有开销限制,

  4. 局部更新

  5. 支持负载分担(最多8条)

  6. 使用组播更新报文(DR:224.0.0.6,其他路由器:224.0.0.5)

  7. 支持md5认证

OSPF区域:


  • 分为骨干区域和非骨干区域

  • 每个网络拓扑里面只允许存在一个骨干区域,所有的非骨干区域必须与骨干区域相连。

OSPF网络类型


网络类型 Hello时间 Dead时间 邻居与邻接关系
广播 10s 40s 自动建立邻居,选举DR/BDR
P2P 10s 40s 自动建立邻居,无需选举DR/BDR
P2MP 30s 120s 手动指邻居,无需选举DR/BDR
NBMA 30s 120s 手动指邻居,选举DR/BDR

OSPF 报文类型:

报文类型 报文作用
Hello 周期性的发送,用来发现,建立,维护邻居关系。
DD-First DBD 用来确定主从关系的
DD-DBD 用来描述本地链路数据库的摘要信息
LSR 用于向邻居请求所需LSA的详细信息。
LSU 用与向对方回复所请求LSA的详细信息
LSACK 用于对收到的LSA的详细信息做确认

注:DBD报文需要做确认,哪怕master设备发送的DBD报文是空的,slave也需要做确认,否则5s重传一次。

通过keepalive机制,检测邻居的建立状态。

OSPF状态机:

状态 效果
DOWN(无效状态) 表示在dead时间内没有收到hello报文
Init(初始状态) 收到hello报文,没有发现自己的R-id
2-way(双向通信状态) 接受到了hello报文,且在active neighbor字段看到了自己的R-ID
Exstart(信息交互初始状态) 交互first DBD报文,确定主从关系,R-ID大的为master
Exchange(信息交换状态) 交互DBD报文,携带LSA的头部信息
Loading(信息加载状态) 当收到本地DBD报文中M位为0是,进入该状态
Full(完全邻接状态) 路由器之间建立完全邻接状态,LSDB同步完成

注意点:

2-way:当进入到2-way状态后,表明邻居关系建立完成,如果在MA的网络中,还需要选举DR/BDR.

DR/BDR的选举过程:

  1. 先比较接口优先级,华为默认为1,当为0时不参与选举。
  2. 接口优先级一致时,比较R-ID,R-ID大的为DR
  3. DR/BDR不具有抢占性。

Exstart:当DBD报文中,I 位置位时表明这是第一个DBD报文,为first-DBD报文,确定主从关系是为了方便进行lsdb的同步,确定完主从关系后,slave需要做确认,确认自己知道了谁是master,

Exchage:master路由器向slave路由器发送LSDB摘要信息,并规定其实序列号,每发送一个DBD报文序列号+1,slave路由器则使使用master路由器的序列号进行应答。

loading:LSR-LSU-LSACK报文的运用,LSDB的同步过程。

attempt:该状态只有在NBMA网络类型中才有,表示本地路由器在dead时间超时后,没有收到邻居回复的hello报文,而此时路由器仍然会向对方发送hello报文。

OSPF影响建立邻居关系的因素

  • R-ID一致:1.直连设备(邻居关系无法建立)2.同区域不直连(可以建立邻居,LSDB不能同步),3.不同区域不直连(不影响邻居关系的建立, )
  • area-id不一致
  • area类型不一致
  • hello/dead时间不一致
  • 认证参数及密钥不一致
  • 掩码不一致(只针对于MA网络)
  • 接口被静默
  • options可选项置位不一致

OSPF影响邻接关系建立的因素:

  • MTU(华为默认填充字段为0)
  • 如果主的MTU比较大,那么master发送的DD,slave就不会收到,所以双方会停留在exstar
  • 如果从的MTU比较大,那么slave跟master回应的DD,master不会收到,那么从会停留在exchange,主会停留在master。
  • DR优先级为(只针对于MA网络)
  • 链路状态请求列表(LSR)或链路重传列表(LSU)不为空

DR/BDR的概念:

  • 为什么要有DR/BDR:

    选举DR的目的是为了避免在广播网络和非广播网络中LSA的重复通告而带来的带宽浪费问题

    选举BDR是为了做DR的备份。

  • 为什么DR没有抢占机制:

    因为DR区域内的路由器没有建立全连接的邻接关系,所以如果进行抢占的话,会DRother会与新的DR建立邻接关系,

  • DR/BDR何时可以抢占:

    当新加入的设备发送的Hello报文中,DR/BDR字段不为空,即可以发生强占,若为空的话,DR/BDR会之间把自己的地址进行填充。

  • DR/BDR的选举流程:

    先选BDR,在BDR的集合里选举DR,BDR成为了DR后,再从优先级非0的集合中选举BDR.

OSPF认证:

  • 认证类型:
    • 接口认证,
  • MD5:密码,OSPF内容,Key-id

OSPF撤销路由:

  • 3600 3,4,5,7类 PRC算法。
  • 一类,二类,直接更新序列号。

OSPF不同网络下报文的发送方式:

网络类型 组播 单播
BMA Hello,LSU,LSAck DD,LSR
NBMA Hello,LSU,LSAck,DD,LSR
P2P Hello,LSU,LSAck,DD,LSR
P2MP Hello DD,LSU,LSAck,DD,LSR

OSPF一类LSA所描述的链路类型

链路类型 Link id Data
TrantNet DR接口IP地址 去往DR的出接口地址
StubNet 网络地址 网络掩码
P2P 邻居的R-ID 去往邻居的出接口地址
V-link 对端的R-ID 本地Vlink 的地址
posted @ 2020-07-05 22:46  皓先生  阅读(361)  评论(0编辑  收藏  举报