当前位置: 首页 > news >正文

OSPF总结

1.定义及相关信息

(1)全称:Open ShortestPath First,开放式最短路径优先

(2)是一种基于链路状态算法的路由协议

(3)目前针对IPv4协议使用的是OSPF Version2RFC2328

         目前针对IPv6 协议使用的是 OSPF Version3 RFC2740
(4)运行 OSPF 路由器之间交互的是 LSA(LinkState 链路状态 ) 信息 ,而不是直接交互路由。
                
                也可以说: LSA是OSPF计算路由的依据

2.相关术语

(1)区域:区域是从逻辑上将设备划分为不同的组,每个组用区域号(AreaID)来标识,为了减少LSDB泛洪广播

        Area0--骨干区--最核心部分--必须有         |        Area1……n--非骨干区

注意: 所有的非骨干区域必须和主干区域相连
(2) Router-ID:是路由器标识符,用于在一个 OSPF 域中 唯一 地标识一台路由器
        
        可以通过手工配置的方式,或使用系统自动配置的方式
        其中系统配置遵循的原理顺序如下:手工配置是最大的,首选的→逻辑口上的IP选个最大的→物理口选个IP最大的
(3)度量值: OSPF 使用 Cost(开销 )作为路由的度量值
        笼统来说,一条OSPF 路由的 Cost 值可以理解为是从目的网段到本路由器沿途所有入接口的Cost 值累加
        ospf接口开销==100/接口带宽

(4)OSPF路由器根据其位置或功能不同,有这样几种类型:

                区域内路由器(Internal Router)

                区域边界路由器ABR(Area Border Router)
                骨干路由器(Backbone Router)
                自治系统边界路由器ASBR(AS Boundary Router)--引入外部路由

3.三五七

学习OSPF就要知道关于它的三五七

(1)三

即三大表项:OSPF邻居表、LSDB表、OSPF路由表

OSPF 邻居表显示了 OSPF 路由器之间的邻居状态,使用 display ospf peer 查看
LSDB表会保存自己产生的及从邻居收到的 LSA 信息,使用display ospf lsdb 查看
OSPF 路由表包含 Destination (目的地)、 Cost (花销)和 NextHop (下一跳)等指导转发的信息,使用display ospf routing 查看
(2)五
五种类型 的协议报文
报文名称报文功能
Hello
周期性发送 ( 10s ) ,用来发现和维护 OSPF 邻居关系
Database Description (DD)
描述本地 LSDB 摘要信息 (概括),用于两台设备进行数据库同步
Link State Request (LSR)
用于向对方请求所需要的 LSA
设备只有在 OSPF 邻居双方成功交换 DD 报文后才会向对方发出LSR报文
通过 LSR 请求 LSA
Link State Update (LSU)
用于向对方发送其所需要的 LSA ,链路状态更新报文
LSA
LSU报文携带着LSA这个信息
Link State ACK (LSK
用来对收到的 LSA 进行确认

文字感觉理解不明白,来通过画图来进行一个理解

(3)七

即七类LSA,本质上是对OSPF区域的优化,减少LSA的数量,设备消耗资源就少,性能就提高了

详细对比内容如下图本人所致表格所示

注意:先有5类后有4类

4.邻接关系建立

首先要注意的一点就是:不是所有的邻居关系都能成为邻接关系
邻居关系的建立只是一个开始,后续会进行一系列的报文交互,例如前文提到的 DD报文、LSR LSU 和LS ACK 等,当两台路由器 LSDB 同步完成,并开始独立计算路由时,这两台路由器才形成了邻接关系
OSPF 完成邻接关系的建立有四个步骤:建立邻居关系、协商主 / 从、交互 LSDB 信息,同步 LSDB
(1)建立邻居关系

(2)协商主/从、交互LSDB信息

协商主 / 从是因为他们之间是基于 ip 协议的,换句话说即 ip 是不可靠的

(3) 同步 LSDB

在建立邻接过程中,涉及到的各个状态也是十分重要的,接下来做一个总结

down

关闭
init
发现另一个的路由器 AR
2-way
被另一个的路由器 AR 发现了
邻居建立完成发送Hello报文
ex-start
准备交互
中间空白时间
商量主从,Router-ID号大的为主,号小的为从
ex-change
交换 DD 报文,摘要 LSDB
loading
要完整的 LSA 信息
Full
同步OK

5.支持网络类型

OSPF 的有四种网络类型: Broadcast (广播)、 NBMA (非广播多路访问)、 P2MP (点对多点)和 P2P (点对点)
链路两端的 OSPF 接口网络类型必须 一致 ,否则双方无法建立邻居关系

6.DR BDR

首先要知道MA网络:MA(Multi-Access)多路访问网络

        它有两种类型:广播型多路访问网络(BMA)及非广播型多路访问网络(NBMA)

                                  以太网(Ethernet)是一种典型的广播型多路访问网络

MA 网络中,如果每台 OSPF 路由器都与其他的所有路由器建立 OSPF 邻接关系,便会导致 网络中存在过 多的 OSPF 邻接关系,增加设备负担,也增加了网络中泛洪的 OSPF 报文数量,当拓扑出现变更,网络中的LSA泛洪可能会造成带宽的浪费和设备资源的损耗
优化MA网络中OSPF邻接关系 OSPF 指定了三种 OSPF 路由器身份, DR(DesignatedRouter,指定路由器 ) BDR(Backup Designated Router ,备用指定路由器 ) DRother 路由器
        可以将DR看作为班长,BDR看作为副班长,DRother看作为班级成员
注意:
        (1)只允许DR BDR 与其他 OSPF 路由器建立邻接关系
        (2)DRother之间不会建立全 毗邻( pi 二声, 就是 连接的意思) OSPF 邻接关系,双方停滞在 2-way 状态( 只能为邻居,不能为邻接
        (3)其中BDR会监控 DR 的状态,并在当前 DR 发生故障时接替其角色
        (4)当DR挂了时, BDR会 上位,再从 Dother 中选一个 BDR 出来,如果 BDR 成为 DR 后,原 DR 恢复了,那么原 DR 会成为 DRother
       
        (5)选举DR是在 ex-start ex-change 中间空白时间进行选举,要考虑两点因素
               
                ① 优先级: 基于端口优先级选举 DR ,数大为优,优先级范围 0-255 ,默认值为 1
                        注意:如果优先级为0,表示不参与选举
Router-ID: 大的优先,并且 DR不支持抢占

7.LSA

是OSPF计算路由的依据

LSA中的三元组(三个重要字段):type、LS-ID、advrouter

                作用是:判断接收到的是否是同一个LSA

新增,更新,删除

(1)新增:三元组和本地LSDB不重复

(2)更新:三元组和本地LSDB重复,更新原则如下:

(3)删除:①被动删除,本地LSDB的age达到3600秒,在1800秒时会重生
②主动删除,对面的某个网段undo掉,会再发送一条LSA,信息中时间为3600秒

8.特殊区域

(1)stub区域

        骨干区域不能被配置为stub区域。

        Stub区域中的所有路由器都必须将该区域配置为stub。

        Stub区域内不能引入也不接收AS外部路由

        虚连接不能穿越Stub区域。

4类5类为缺省3类

OSPF规定Stub区域是不能引入外部路由的,这样可以避免大量外部路由引入造成设备资源消耗。

Totally Stub区域既不允许AS外部路由在本区域内传播,也不允许区域间路由在本区域内传播

        Totally Stub区域内的路由器通过本区域ABR下发的缺省路由(使用3类LSA描述)到达其他区域,以及AS外部

        注意:与Stub区域配置的区别在于,在ABR上需要追加no-summary关键字

(2)NSSA区域

NSSA区域能够引入外部路由,同时又不会学习来自OSPF网络其它区域引入的外部路由

Totally NSSA与NSSA区域的配置区别在于前者在ABR上需要追加no-summary关键字

最后,来做个关于特殊区域的总结吧


http://www.mrgr.cn/news/69156.html

相关文章:

  • vue项目npm run serve出现【- Network: unavailable】(从排查到放弃)
  • Linux---常用shell脚本
  • 调用 Xinference OpenAI接口时报错 Model not found in the model list, uid
  • http自动发送请求工具(自动化测试http请求)
  • 自动驾驶仿真:软件在环(SIL)测试详解(精简版入门)
  • 告别Print,使用IceCream进行高效的Python调试
  • 一键分发平台哪个方式最好?老板一人轻松运营500名员工的实战经验分享!(从零开始,不走弯路!)
  • Linux下通过sqlplus连Oracle提示字符是乱码▒▒▒[
  • 从《梅艳芳》到《焚城》,王丹妮实力诠释剧抛脸
  • leetcode 832.翻转图像
  • [CKS] kube-batch修复不安全项
  • [Python学习日记-63] 继承与派生
  • 算法 -插入排序
  • 从 iPhone 设备恢复误删微信消息的 4 种方法
  • C++ --- 异步编程
  • 一致性哈希算法详解
  • 理想汽车Android面试题及参考答案
  • 本地连接IP地址的自主设置指南‌
  • Clifford数
  • ONLYOFFICE 8.2深度测评:开源的办公套件
  • C#设计原则
  • Seata — 分布式事务
  • AI产品经理必修课:关键AI技术知识概览
  • vue之组件网站(后续补)
  • 自制操作系统(九、操作系统完整实现)
  • 【设计模式】观察者模式