OSPF 知识点总结

发布于:2022-10-29 ⋅ 阅读:(570) ⋅ 点赞:(0)

随笔一篇,以便日后翻阅,如有问题欢迎指正



前言

先认识一些知识点和术语:

  • 静态路由的缺点:
    • 无法适应大规模的网络
    • 无法动态响应网络变化

既然静态路由无法满足动态响应,那便采用不同的动态协议
(此处仅按照工作机制算法分类):

  • 距离矢量路由协议(Distance Vector Routing Protocols):运行协议的路由器周期性泛洪自己的路由表,对于路由器自身而言并不知道网络拓扑结构,只是简单明白要去往的目的地在哪里、有多远。例如:RIP协议

  • 链路状态路由协议(Link-State Routing Protocols):宣告的是 LSA ,描述了路由器接口的状态信息(接口开销、连接对象),最终每台路由器会形成自己的数据库(路由详情参数表)。例如:OSPF协议、IS-IS协议。

  • LSDB:链路状态数据库,用于描述整个区域所有接口相关状态的信息

  • RIB(Routing Information Base):路由信息表,存储所有的路由信息:

    • 存有所有通过动态路由协议学到的路由条目
    • 存有所有的直连网络
    • 存有另外配置的路由条目,如静态路由

Ⅰ . OSPF 概述

一、OSPF简介

OSPF:Open Shortest Path First —— 开放式最短路径优先
基于链路状态算法的路由协议,帮助路由器构造路由表

  • 典型的链路状态路由协议, IGP 协议之一
  • ipv4对应的OSPF版本为 Version 2,ipv6对应的则是 Version 3
  • 运行OSPF的路由器之间交互的是 LS(Link State)—— 链路状态
  • OSPF的路由器采用 SPF算法 计算最短路径
  • OSPF支持 VLSM(Variable Length Subnet Mask)—— 可变子网掩码,且还支持路由聚合
  • 多区域的设计使得OSPF支持更大规模的网络
  • OSPF在园区网络中的核心交换机和汇聚交换机上可以实现园区的路由可达
  • OSPF协议封装在IP协议之上,IP协议的功能只能尽力而为的帮他传输报文,所以便衍生出OSPF自己的传输机制
  • OSPF支持的网络类型(不同网络类型影响邻居建立和路由计算的过程):
    • Broadcast(广播型)
    • NBMA(非广播型的多点接入)
    • P2MP(点到多点传输)
    • P2P(点到点传输)

二、链路状态路由协议工作流程

  1. 路由器之间先建立邻居关系
  2. 泛洪自身LSA完善各自的LSDB
  3. 各自把自己当做树根去寻找到达其他路由器最短的路径
  4. 将最短的路径记录到 RIB 路由信息表

Ⅱ . OSPF 概念

一、区域

  • OSPF Area 用于标识一个OSPF区域
  • 区域是从逻辑上将设备划分为不同的组,每个组用区域号 Area ID 来标识

二、Router - ID

Router - ID(Router Identifier)—— 路由器标识符

  • 用于在一个OSPF域中唯一 的标识一台路由器
  • 可以通过手动配置,也可以使用系统配置
  • 形式根ipv4地址形式一样

三、度量值

  • OSPF使用COST(开销)值作为路由的度量值
  • 每一个激活OSPF的接口都会维护一个接口的COST值,缺省接口的COST值为 100 M b i t / s 接口带宽 100Mbit/s\over接口带宽 接口带宽100Mbit/s,100Mbit/s为默认值,可以进行手动配置
    • 100M --> Cost 1
    • 10M --> Cost 10
    • 1G --> Cost 1(因为Cost最小值为1,所以需要手动修改Cost值或者修改参考值)
  • 整条路由开销值是整条路径开销值的总和

四、OSPF协议报文类型

报文 简写 描述
Hello 周期性发送,用来发现和维护OSPF令居关系
Database Description DD 描述本地 LSDB 的摘要信息,用于两台设备进行数据库同步
Link State Request LSR 用于向对方发送请求所需要的 LSA,且只有在邻居双方成功交换 DD 报文后才会对对方发出 LSR 报文
Link State Update LSU 用于向对方发送其所需的 LSA
Link State ACK LSA 用于对收到的 LSA 进行确认

摘要信息:想邻居发送目录,确保邻居缺失哪类信息,并返回 LSR 请求报文,收到 LSR 后把缺失的详细内容打包成 LSU 发送并返回 LSA 确认收到报文


五、OSPF三大表项 —— 邻居表

  • 通过Hello报文成功建立邻居关系后会将信息加入邻居表
    通过命令 display ospf peer查看邻居表

六、OSPF三大表项 —— LSDB 表

  • 形成用于计算开销值的数据库容器,用于保存来自邻居以及自己产生的 LSA 信息
  • Type 标识 LSA 类型,ADV Router(边界路由器 —— ABR) 标识 LSA 的产生者
  • 通过 display ospf lsdb查看 LSDB 表

七、OSPF三大表项 —— OSPF路由表

  • OSPF路由表和 路由器中的路由表 是两张不同的表项
  • 此表中包含 Destination、Cost、Next Hop(下一跳)等作为指导作用的信息,择优选择最佳路径放入IP路由表

Ⅲ . OSPF 工作原理

OSPF路由器之间存在两种关系:邻居关系邻接关系

  • 若只考虑一种简单的拓扑,存在两台路由器直连状态下,在双方互联接口上激活OSPF协议,路由器便开始发送并侦听Hello报文。在通过Hello报文发现彼此后,此时两台路由器便建立起了邻居关系
  • 邻居关系建立只是一个开始,后续会进行一系列的报文交换直到各自同步完自己的LSDB并开始计算路由时,这两台路由器便建立起了邻接关系

一、OSPF 邻居建立

  • 关系:双方通过 Hello 报文交互发现彼此后便建立起邻居关系

  • 关系:双方会进行 DD、LSR、LSU、LS、ACK报文互传并同步 LSDB 数据库,且开始独立计算报文

  • 稳定邻居关系建立步骤:
    ① 建立初步邻居(双向交互Hello报文后)
    ② 协商主从 (交互DD报文)
    ③ 交互 LSDB 信息(交互各自的摘要)
    ④ 同步 LSDB (更新 LSA )
    ⑤ 各自计算路由开销
    在这里插入图片描述

  1. 初步邻居建立细节

    ① R1 先向所在链路上发送 Hello 报文并等待回应

    ② 链路上的 R2 收到报文后会将 R1 的信息添加进邻居表,并将 R1 的状态标识为 init(初始状态)

    ③ R2 回应 R1 的报文并向对方确认已收到

    ④ R1 将 R2 的信息存入路由表,并将 R2 的状态标识为 2-Way(双边邻居)

    ⑤ R1 再向 R2 发送确认报文,R2 路由表中将 R1 的信息更新为 2-Way
    在这里插入图片描述

  • 当一台OSPF路由器收到其他路由器发来的首个Hello报文时会从初始Down状态切换为Init状态。
  • 当OSPF路由器收到的Hello报文中的邻居字段包含自己的Router ID时,从Init切换2-way状态
  1. 协商主从并交互报文细节

    ① R1 向邻居 R2 发送 DD 报文,内容为空,序列号随机,告诉 R2 我是 Master(主)和自己的 Router-ID。发送完后自己的状态将变为 Ex-start(Exchange Start —— 准启动状态),表明已经对外发送过报文且已宣誓过主权了

    ② R2 同样也会向 R1 发送且经历①的步骤,但由于序列号大的为主,所以最终 R2 宣誓主权成功成为主路由器,且所有路由器发送的序列号都要听从 R2 的

    ③ R1 回复 R2 的报文带上 R2 规定的序列号和自己 LSDB 中的 LSA摘要,发送后自己的状态变为 Exchange

    ④ R2 回复 R1 的报文序列号 +1 递增,并也发送自己的 LSA摘要,随后变为 Exchange 状态

    ⑤ R1 回复确认报文,双方比较后得知自己缺失的信息
    在这里插入图片描述

  2. 同步 LSDB 细节

    ① R1 和 R2 对比各自收到的 DD 报文后发现缺失的信息,随机向对方发送 LSR 请求报文请求缺失的部分,自身状态变为 Loading

    ② 双方收到来自对方的 LSR 请求后,把对方缺失的信息封装到 LSU Update报文后回复对方自身完整的 LSA 信息

    ③ 双方收到 LSU 得到较完整的 LSA 信息后同步自身 LSDB ,并回复确认收到报文。如果另一方迟迟没收到对方的确认消息,会再向对方发送 LSU

    ④ 双方同步完 LSDB 后,状态变为 Full(完全邻接状态)
    在这里插入图片描述

  3. 邻居表参数详情
    在这里插入图片描述


二、OSPF 网络类型

  • OSPF网络类型是一个非常重要的接口变量,此变量将直接影响到OSPF在接口上的操作

  • 一般情况下,链路两端的OSPF网络接口类型必须一致,否则双方无法正常建立邻居关系

  • 接口默认的OSPF网络类型取决于接口所使用的数据链路层封装,例如:

    • 千兆口 —— 广播型(Broadcast)
    • 串行口 —— 点到点(P2P)
    • 帧中继 —— 广播式多路访问(NBMA
    • P2MP无默认,需要手动修改
  • 可以通过命令行手动更改网络类型适应不同网络场景:
    [R]ospf network-type ______

1. P2P —— Point-to-Point(点对点)

在这里插入图片描述

  • P2P指在一段链路上只能连接两台网络设备的环境
  • 当PPP链路接口采用PPP封装时,OSPF在该接口采用的缺省接口类型为P2P

2、P2MP —— Point Multi-Point(点到多点)

在这里插入图片描述

  • 相当于将多条P2P链路的一端进行捆绑得到的网络
  • 没有任何链路协议缺省状况下会被认定为P2MP网络类型,该类型必须手动更改得到
  • 常用做法是将非全连通的NBMA改为点到多点的网络

3、BMA —— Broadcast Multiple Access(广播式多路访问)

在这里插入图片描述

  • BMA也被称为Broadcast,指一个允许多台设备接入且支持广播的环境
  • 当接口采用Ethernet封装时,OSPF在该接口上采用的缺省网络类型为BMA

4、NBMA —— Non-Broadcast Multiple Access(非广播式多路访问)

在这里插入图片描述

  • 指一个允许多台网络设备接入且不支持广播的环境,例如帧中继(Frame-Relay)网络

三、DR / BDR

问题背景:以太网是一种典型的广播型多路访问网络,在多路访问网络中,如果每台OPSF路由器都与其他OSPF路由器建立关心的话,会导致网络中存在过多LSA交互,一旦网络规模庞大,会造成LSA泛洪和宽带资源浪费等问题,增加设备负担,且一旦设计网络拓扑变化,也会造成资源浪费
在这里插入图片描述

  • 所以为了优化网络邻接关系,OSPF指定了三种路由器身份
    • DR —— Designated Router(指定路由器)【班长】
    • BDR —— Backup Designated Router(备用指定路由器)【副班长】
    • DRother —— Designated Router other(其他指定路由器)【班委】
  • 规定:
    • 只允许DR(班长)、BDR(副班长)与其他OSPF路由器(同班同学)建立邻接关系。
    • DRother(班委)之间不会相互建立邻接关系,双方均停留在 2-Way 状态
    • BDR(副班长)受DR(班长)监督,一旦BDR发生故障或更替时,DR马上接手工作
    • 比较有意思且接地气的解释:DR、BDR和DROther的关系之通俗演绎

四、OSPF 单区域

域 —— Domain
区域 —— Area

  • 同属一个OSPF域的路由器会在网络中泛洪LSA,前提是此区域内的路由器都已成功同步LSDB
  • OSPF域不能只有一个,否则会出现诸多问题:
    • LSDB越来越庞大,导致OSPF路由表规模增加,消耗资源过多,设备性能下降,影响工作效率
    • 庞大的LSDB极大影响路由计算
    • 拓扑变更会给LSA全域洪泛和全网 SPF计算 带来巨大负担
      在这里插入图片描述

五、OSPF 多区域

  • 将一个OSPF域划分成多个域,使得OSPF支持更大的组网
  • 多区域的设计减小了LSA的洪泛范围有效的把拓扑变化影响控制在主区域内,达到网络优化的目的
  • 在区域边界可以做路由汇总,减小路由表规模
  • 多区域提高了网络拓展性,有利于组件大规模网络
  • 区域分类:
    • 骨干区域 —— Area0
    • 非骨干区域 —— 除Area0以外的所有区域
  • 多区域互联原则: 防止区域间环路,非骨干区域 与 非骨干区域 不能直连,所有 非骨干区域 必须与 骨干区域 相连
  • 多区域编号唯一且以路由器为边界,但同一路由器可属多个区域
    在这里插入图片描述

六、OSPF 路由器类型

根据位置和功能不同划分不同路由器类型:

  • 区域内路由器(Internal Router)
  • 区域边界路由器(Area Border Router —— ABR)
  • 骨干路由器(Backbone Router)
  • 自治系统边界路由器(AS Boundary Router —— ASBR)
    在这里插入图片描述

Ⅳ . OSPF 基础配置


超详细补充深入:路由技术——OSPF


网站公告

今日签到

点亮在社区的每一天
去签到