HCIE之OSPF基础(十九)

news2024/12/18 3:10:12

OSPF理论

  • 一、OSPF基本原理(回顾)
  • 1. 邻居建立
    • 1.1(4+==1==+1)HELLO包影响邻居建立的因素。
    • 1.2 其它影响邻居建立的因素:
    • 1.3 基本配置
    • 1.4 验证命令
  • 2 DR选举
    • 2.1 为什么选?
    • 2.2 在哪选?
    • 2.3 怎么选?
    • 2.4 选完后如何工作?
  • 3 OSPF邻居状态机
    • 3.1 Down
    • 3.2 Init
    • 3.3 2-way
    • 3.4 Ex-Start
    • 3.5 Exchange
    • 3.6 loading
    • 3.7 Full
  • 4 OSPF建立并维护的3张表项
  • 5 SPF算法
  • 6 OSPF 网络类型
  • 7 OSPF的区域类型
    • 7.1 非骨干区域根据能够学习到的路由种类划分
  • 8 OSPF常见的LSA类型
    • 8.1 常见LSA的类型
    • 8.2 常见LSA详解
      • 8.2.1 LSA Type-1 —— 路由器LSA
        • 8.2.1.1 LSA Type-1输出信息详解
      • 8.2.2 LSA Type-2 —— 网络LSA
      • 8.2.3 LSA Type-3 —— 网络汇总LSA
      • 8.2.4 LSA Type-4 —— ASBR汇总LSA
      • 8.2.5 LSA Type-5 —— AS外部LSA
      • 8.2.6 OSPF Link ID与Data说明
  • 9 OSPF的路径类型

一、OSPF基本原理(回顾)

1. 邻居建立

1.1(4+1+1)HELLO包影响邻居建立的因素。

四个参数必须一致:

  1. HELLO,DEAD时间必须一致;
  2. 区域ID必须相同;
  3. 认证必须相同;
  4. 特殊区域标示位必须相同;

一个参数必须不一致:

  1. Router ID不能相同;

有时比有时不比:

  1. 掩码,广播网络类型需要比较,P2P网络类型不比较

//以上6点都是Hello包或OSPF头部中的字段

1.2 其它影响邻居建立的因素:

1、DBD报文中的MTU不匹配无法形成邻接关系(一边是EXSTART,一边是EXCHANGE);
华为设备默认关闭,可使用ospf mtu-enable 开启
(Cisco设备默认开启,可使用ip ospf mtu-ignore关闭,在小的一方改即可)

2、在MA网络,二边的接口优先集都是0的时候,只会处于邻居状态,不同步LSA。

3:网络类型不一致,一边是p2p,一边是MA。邻居关系正常,但是不能进行SPF计算,不能产生路由表。

4:Silent-interface。静默端口,不发送和不接收任何OSPF相关报文。

1.3 基本配置

在这里插入图片描述

1.4 验证命令

2 DR选举

2.1 为什么选?

  1. 加快网络收敛
  2. 减少冗余的更新,减少资源占用

2.2 在哪选?

  • 每一个MA网络选一个DR/BDR

2.3 怎么选?

  1. DR是基于端口的路由器优先级的值进行选举的。
  2. 默认为 1. 范围是 0 - 255.越大越优先
  3. 优先级为 0 的将永远不参与竞选 DR 以及 BDR.
  4. 如果优先级相同时,则比较Router ID,越大越优先

2.4 选完后如何工作?

邻居与邻接的区别:

  • 邻居不同步LSA
  • 邻接是同步LSA
    在这里插入图片描述

3 OSPF邻居状态机

  • 一共分为7个状态:

3.1 Down

a. 如何进入?
Network宣告一个接口后,此接口进入down。
b. 做什么?
发送一个hello,尝试建立邻居。

3.2 Init

a. 如何进入?
–>Hello[RID:1.1.1.1,Header+PayLoad]
收到一个不带自己router-ID的hello包。
b. 做什么?
<—Hello[RID:2.2.2.2 ,NeiRID=1.1.1.1 …]
检查Hello包里面的4+1+1参数信息,通过后,回送一个HELLO,并且里面会携带自己看到的邻居信息(router-ID)

3.3 2-way

a. 如何进入?
—>Hello[RID:1.1.1.1,NeiRID=2.2.2.2 …]
收到一个携带自己router-ID信息的hello包。

b. 做什么?
回送看到邻居信息。
等待DR/BDR选举结束。
----MA,需要完成DR/BDR选举,waiting timer = 40s----(DR/BDR选举从down状态就开始了)

3.4 Ex-Start

a. 如何进入?
形成邻居后,需要交互LSDB,就会进行此状态。
b. 做什么?
使用router-ID,选举一个Master,使用master生成的序列号作为隐式确认的号码。
发对空的DBD报文
—>DBD[RID:1.1.1.1,Seq=4040,I=1,M=1,MS=1,MTU=0,LSA=NULL]
<—DBD[RID:2.2.2.2,Seq=5050,I=1,M=1,MS=1,MTU=0,LSA=NULL]
<—DBD[RID:2.2.2.2,Seq=5050,I=0,M=1,MS=1,Master,LSA=NULL]

3.5 Exchange

a. 如何进入?
选举完成Master后,进行此状态。
b. 做什么?
通DD报文,描述LSDB所有的LSA信息。互相就知道对方有哪些LSA了。
—>DBD[RID=1.1.1.1,Seq=5050,I=0,M=0,MS=0,LSA=ALL]
<—DBD[RID=2.2.2.2,Seq=5051,I=0,M=0,MS=1,LSA=ALL]

3.6 loading

a. 如何进入?
DD同步结束后,就知道对方有哪些LSA的时候,进行此状态。

b. 做什么?
发送LSR,请求我所缺少的LSA,进行LSA同步。
收到LSR后,发送LSU更新。
收到LSU后,发送LSACK确认

3.7 Full

LSA完全同步结束后。

4 OSPF建立并维护的3张表项

1、 邻居表 :列出每台路由器全部已经建立邻居关系的邻居路由器
2、 链路状态数据库【LSDB】:列出网络中其它路由器的信息,由此显示了全网的网络拓扑
3、 路由表:列出通过SPF算法计算出的到达每个相连网络的最佳路径

5 SPF算法

1、创建并维护以下3张表项:
在这里插入图片描述
重复执行以下3步N次:
1、从Tentative List的所有路由器中寻找距离自身【根节点】最近的网络节点,并将其从Tentative List中移动至Paths List中
2、发现此节点通告的所有前缀,并将其安装至RIB【路由表项】中
3、发现此节点的所有邻居,并将其移动至Tentative List中
注:Dijkstra:迪杰斯特拉算法【是由荷兰计算机科学家狄克斯特拉于1959年提出的】

6 OSPF 网络类型

在这里插入图片描述
Thinking about:
1、不同的网络类型是否可以建立邻居?
2、不同的网络类型是否可以相互学习路由?
Analysis:
NBMA只能与NBMA建立Full关系,与其它网络类型均无法建立Full的关系【因为NBMA网络单播发现邻居】
Broadcast与P2P能建立Full关系,但无法正常计算路由【因为构建的拓扑不一致】
Broadcast与P2MP通过修改Hello / Dead Timer可以建立Full关系,但不能计算路由
P2P与P2MP通过修改Hello / Dead Timer可以建立Full关系,路由也可正常计算
概括总结:
1、因为OSPF的Hello报文中没有描述网络类型的字段,能否建立邻居关系主要看Hello报文的发送间隔、Holdtime以及Hello报文的发
送方式;路由计算是否正常,主要看是否选举DR/BDR

7 OSPF的区域类型

骨干区域【Area 0】
非骨干区域

7.1 非骨干区域根据能够学习到的路由种类划分

1、标准区域:学习本区域的内部路由、学习域间路由、学习外部路由
2、末节区域【Stub】:学习本区域的内部路由、学习域间路由,不学习外部路由,不包含ASBR,与外部通讯完全依靠自动创建的缺省路由
3、完全末节【Totally Stubby】区域:仅学习本区域内部路由,不学习外部路由,不学习域间路由,与外部通讯完全依靠自动创建的缺省路由
4、非纯末节区域【NSSA】:学习域内路由,学习域间路由,学习本区域自身引入的外部路由,不学习其它区域引入的外部路由
5、非纯完全末节区域:学习域内路由,学习本区域自身引入的外部路由,不学习域间路由,不学习其它区域引入的外部路由
注:NSSA区域是OSPF RFC的补遗,定义了特殊的LSA类型7;提供类似Stub Area与Totally Stubby Area的优点,可以包含ASBR

8 OSPF常见的LSA类型

8.1 常见LSA的类型

在这里插入图片描述

8.2 常见LSA详解

8.2.1 LSA Type-1 —— 路由器LSA

每一个运行OSPF的路由器都会生成一个路由器LSA
该LSA仅在本区域内泛洪;无法穿越ABR
包含路由信息与拓扑信息;Link-ID为路由器的Router-ID

8.2.1.1 LSA Type-1输出信息详解

1、Link Type: Transnet
作用:用于描述直连链路上网络类型为广播或NBMA的邻居
Link ID:该链路上DR的IP地址
Data:与DR相连的接口IP地址
Metric:自身到DR的OSPF开销

2、Link Type: Stubnet
作用:用于描述自身直连的网络号及子网掩码
Link ID:直连链路的网络号
Data:子网掩码
Metric:自身到直连网络的OSPF开销

3、Link Type: P-2-P
作用:描述P2P/P2MP链路上的OSPF邻居
Link ID:邻居的Router-ID
Data:与邻居相连接口的IP地址
Metric:自身到邻居的OSPF开销

8.2.2 LSA Type-2 —— 网络LSA

由MA网络中的DR发出
仅在本区域内进行泛洪;无法穿越ABR
所包含的内容与Type-1的LSA联合,共同描绘出网络的拓扑与路由
Link-ID为DR接口的IP地址

8.2.3 LSA Type-3 —— 网络汇总LSA

起源于ABR,每经过一个ABR,通告路由器将会发生变化
仅在本区域内进行泛洪,ABR之间接力传递,从而泛洪至整个AS
该LSA用于通告一个区域的信息至其它区域,包含一条路由信息【描述链路的网络号与掩码】
Link-ID为这条路由信息的前缀

8.2.4 LSA Type-4 —— ASBR汇总LSA

起源于ABR
泛洪于本区域,除ASBR所在区域外的整个自治系统
该LSA在AS中向其它区域通告ASBR的位置
Link-ID为ASBR的Router-ID

8.2.5 LSA Type-5 —— AS外部LSA

起源于ASBR,通告路由器在整个AS中不发生变化;泛洪于整个AS
该LSA用于通告自治系统外部的网络
Link-ID为此路由信息的前缀

8.2.6 OSPF Link ID与Data说明

在这里插入图片描述

9 OSPF的路径类型

1、区域内路径【Intra-area path】:在路由器所在的区域内就可以到达目的地的路径
2、区域间路径【Inter-area path】:目的地在其它区域,但还在OSPF自治系统内的路径
3、类型1的外部路径【Type l external path,E1】:目的地在OSPF自治系统外部的路径
4、类型2的外部路径【Type 2 external path,E2】:目的地在OSPF自主系统外部的路径,但在计算外部路由的度量时不再计入到达ASBR路由器的路径代价

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2261359.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python 基于 docx 文件模板生成 docx 或 PDF 文件

需求背景 提供一个Word文档模板&#xff0c;使用python程序替换里边的占位符&#xff0c;替换内容包括文本和图片&#xff0c;然后输出docx或者PDF文件。 功能演示 输入示例 输出示例 实现程序 import os import shutil import subprocess import timefrom docx import Doc…

CSS 实现带tooltip的slider

现代 CSS 强大的令人难以置信 这次我们来用 CSS 实现一个全功能的滑动输入器&#xff0c;也就是各大组件库都有的slider&#xff0c;效果如下 还可以改变一下样式&#xff0c;像这样 特别是在拖动时&#xff0c;tooltip还能跟随拖动的方向和速度呈现不同的倾斜角度&#xff0c…

MybatisPlus-扩展功能

代码生成 在使用MybatisPlus以后&#xff0c;基础的Mapper、Service、PO代码相对固定&#xff0c;重复编写也比较麻烦。因此MybatisPlus官方提供了代码生成器根据数据库表结构生成PO、Mapper、Service等相关代码。只不过代码生成器同样要编码使用&#xff0c;也很麻烦。 这里…

中后台管理信息系统:Axure12套高效原型设计框架模板全解析

中后台管理信息系统作为企业内部管理的核心支撑&#xff0c;其设计与实现对于提升企业的运营效率与决策能力具有至关重要的作用。为了满足多样化的中后台管理系统开发需求&#xff0c;一套全面、灵活的原型设计方案显得尤为重要。本文将深入探讨中后台管理信息系统通用原型方案…

40 基于单片机的温湿度检测判断系统

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STC89C52单片机&#xff0c;采用dht11温湿度传感器检测温湿度&#xff0c; 通过lcd1602显示屏各个参数&#xff0c;四个按键分别可以增加温湿度的阈值&#xff0c; 如果超过阈值&#xff0c;则…

SAP ABAP-日期格式问题 SAP内部错误,反序列化JSON字符串时发生异常 值 20241215 不是根据 ABAP 的 XML 格式的有效日期

SAP ABAP-日期格式问题 SAP内部错误,反序列化JSON字符串时发生异常 值 20241215 不是根据 ABAP 的 XML 格式的有效日期 在SAP内部用 YYYYMMDD没有问题 外部传入参数

深度学习——激活函数、损失函数、优化器

深度学习——激活函数、损失函数、优化器 1、激活函数1.1、一些常见的激活函数1.1.1、sigmoid1.1.2、softmax1.1.3、tanh1.1.4、ReLU1.1.5、Leaky ReLU1.1.6、PReLU1.1.7、GeLU1.1.8、ELU 1.2、激活函数的特点1.2.1、非线性1.2.2、几乎处处可微1.2.3、计算简单1.2.4、非饱和性1…

YOLOv5-7.0训练过程中出现报错Example: export GIT_PYTHON_REFRESH=quiet

出现报错&#xff1a; This initial message can be silenced or aggravated in the future by setting the $GIT_PYTHON_REFRESH environment variable. Use one of the following values: - quiet|q|silence|s|silent|none|n|0: for no message or exception - warn…

发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)

CS软件授权注册系统-发布/部署WebApi服务器(IIS.NET8ASP.NETCore) 目录 本文摘要VS2022配置发布VS2022发布WebApiIIS服务器部署WebApi 将程序文件复制到云服务器添加网站配置应用程序池配置dns域名配置端口阿里云ECS服务器配置19980端口配置https协议 (申请ssl证书)测试WebAp…

从零开始:如何在.NET Core Web API中完美配置Swagger文档

目录 新建项目 RestFul Swagger配置 注释展示 版本控制 Token传值 方法封装 新建项目 打开visual studio创建新项目&#xff0c;这里我们选择.net core web api模板&#xff0c;然后输入项目名称及其解决方案创建新项目 这里使用配置一些其他信息&#xff0c;根据自己情…

零基础开始学习鸿蒙开发-基础页面的设计

目录 1.样例图 2.逐项分析 2.1 头顶布局分析&#xff1a;首先我们要把第一行的图标绘制出来&#xff0c;一个左一个右&#xff0c;很明显&#xff0c;需要放在一个Row容器中&#xff0c;具体代码如下&#xff1a; 2.2 和头像同一行的布局&#xff0c;需要注意的是&#xff0c…

vscode借助插件调试OpenFoam的正确的.vscode配置文件

正确的备份文件位置&#xff1a; /home/jie/桌面/理解openfoam/正确的调试爆轰单进程案例/mydebugblastFoam 调试爆轰案例流体 并且工作区和用户区都是openfoam-7版本 问题&#xff1a;F5以debug模式启动后不停在断点 解决方法&#xff1a; 这里备份一下.vsode正确的配置&…

【小白包会的】使用supervisor 管理docker内多进程

使用supervisor 管理docker内多进程 一般情况下&#xff0c;一个docker是仅仅运行一个服务的 但是有的情况中&#xff0c;希望一个docker中运行多个进程&#xff0c;运行多个服务&#xff0c;也就是一个docker容器执行多个服务。 调研了一下&#xff0c;发现可以通过**super…

day11 性能测试(3)——Jmeter 断言+关联

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、复习 2、查看结果树 多个http请求原因分析 3、作业 4、Jmeter断言 4.1 响应断言 4.1.1 案例 4.1.2 小结 4.2 json断言 4.2.1 案例 4.2.2 小结 4.3 断言持续时间 4.3.1 案例 4.3.2 小结 4.…

热更新解决方案3 —— xLua

概述 xLua框架导入和AB包相关准备 xLua导入 其它的导入 C#调用Lua 1.Lua解析器 using System.Collections; using System.Collections.Generic; using UnityEngine; //引用命名空间 using XLua;public class Lesson1_LuaEnv : MonoBehaviour {// Start is called before the fi…

Rk3588 FFmpeg 拉流 RTSP, 硬解码转RGB

RK3588 ,基于FFmpeg, 拉取RTSP,使用 h264_rkmpp 实现硬解码. ⚡️ RK3588 编译ffmpeg参考: Ubuntu x64 架构, 交叉编译aarch64 FFmpeg mpp Code RTSPvoid hardwave_init(AVCo

谷粒商城—分布式高级①.md

1. ELASTICSEARCH 1、安装elastic search dokcer中安装elastic search (1)下载ealastic search和kibana docker pull elasticsearch:7.6.2 docker pull kibana:7.6.2(2)配置 mkdir -p /mydata/elasticsearch/config mkdir -p /mydata/elasticsearch/data echo "h…

OpenCV圆形标定板检测算法findGrid原理详解

OpenCV的findGrid函数检测圆形标定板的流程如下: class CirclesGridClusterFinder {CirclesGridClusterFinder(const CirclesGridClusterFinder&); public:CirclesGridClusterFinder

30. Three.js案例-绘制并渲染圆弧

30. Three.js案例-绘制并渲染圆弧 实现效果 知识点 WebGLRenderer WebGLRenderer 是 Three.js 中用于渲染 3D 场景的核心类。它利用 WebGL 技术在浏览器中渲染 3D 图形。 构造器 new THREE.WebGLRenderer(parameters) 参数类型描述parametersObject可选参数对象&#xff…

STM32F407ZGT6-UCOSIII笔记4:时间片轮转调度

本文学习与程序编写基于 正点原子的 STM32F1 UCOS开发手册 编写熟悉一下 UCOSIII系统的 时间片轮转调度 文章提供测试代码讲解、完整工程下载、测试效果图 目录 解决上文的卡系统问题&#xff1a; 使能时间片轮转调度&#xff1a; 任务初始化定义更改&#xff1a; 文件结构…