OSPF笔记

一、OSPF基础

1、技术背景(RIP中存在的问题)

RIP中存在最大跳数为15的限制,不能适应大规模组网

周期性发送全部路由信息,占用大量的带宽资源

路由收敛速度慢

以跳数作为度量值

存在路由环路可能性

每隔30秒更新

2、OSPF协议特点

没有跳数限制,适合大规模组网

使用组播更新变化的路由和网络信息 

路由收敛快,可以触发更新

以COST作为度量值

采用SPF算法有效避免环路

每隔30分钟周期性更新----LSA

在互联网上大量使用,是运用最广泛的路由协议

注意:OSPF传递的是拓扑信息和路由信息,RIP传递的是路由表

3、OSPF三张表

邻居表:记录邻居状态和关系

拓扑表:链路状态数据库(LSDB)

路由表:记录由SPF算法计算的路由,存放在OSPF路由表中

4、OSPF数据包

(1)hello

作用:用来周期保活的,发现,建立邻居关系。

(2)DBD(数据库描述报文):

作用:仅包含LSA摘要

(3)LSR

作用:请求自己没有的或则比自己更新的链路状态详细信息

(4)LSU:链路状态更新信息

作用:把对方所需的几条LSA的详细信息,打包成一条LSU发给对方

一个LSU报文可以包含多个---LSA--(具体关于LSA请看后文)

(5)LSAck:

对LSU的确认

5、OSPF工作过程

邻居:双方通过hello报文,相互认识

邻接:邻居关系建立好后,进行一系列报文交互,当两台路由器LSDB同步完成,开始独立计算路             由时,这两台路由器形成了邻接关系

(1)确认可达性,建立邻居

(2)邻接路由器之间交换链路状态信息,实现区域内链路状态数据库同步

  1. 向邻接路由器发送DBD报文,通告本地LSDB中所有LSA的摘要信息
  2. 收到DBD报文后,与本地LSDB对比,向对方发送LSR报文,请求发送本地所需要的LSA的完整信息
  3. 收到LSR后,把对方所需的LSA的完整信息打包为一条LSU报文,发送至对方
  4. 收到LSU后,向对方回复LSAck报文,进行确认

(3)完整信息同步,完全邻接关系建立

完全邻接关系建立,LSDB表与路由表形成

6、OSPF的状态机

邻居关系开始建立

(1)down关闭状态(稳定状态),这种情况处于手动指定邻居的情况下,发送hello包之后进入下一个状态

(2)INIT初始化状态,收到对方的hello报文,但没有收到对方的hello确认报文

(3)Attempt一般不会出现,只出现在NBMA网络中,发出hello,但收不到对方的hello包

(4)2-way(稳定状态):双方互相发现,邻居状态稳定,并确认了DR/BDR的角色;

当选举完毕后,就算出现一台优先级更高的路由器,也不会替换成新的DR\BDR;

需要原DR\BDR失效,或重置OSPF进程才会成为新的DR\BDR;

2-way的前提:

      Router-id无冲突,修改router-id需要重置ospf进程使生效;

      掩码长度一致(MA网络中);

      区域ID一致;
      验证密码一致;
      hello-time一致;
      dead-time一致;
      特殊区域类型一致;

邻接关系开始建立

(5)Exstart交换开始状态;发送第一个DD报文,但不发送LSA摘要,仅用于确定LSDB协商的主从,ROUTER-ID大的成为master

(6)Exchange:交换状态;发送后续DD报文,用于通告LSDB摘要

(7)Loading读取状态,进行LSA的请求、加入和确认

(8)Full邻接状态(稳定状态),两端同步LSDB;

   --注意:  FULL的前提:两端MTU一致,否则可能卡在EXSTART\Exchange状态

      能够计算路由的前提:两端网络类型一致,否则邻居状态full,但无法学习路由

二、OSPF的区域划分

1、分区好处

减少LSA泛洪范围;

提高网络扩展性,有利于组建大规模的网络;

2、区域类型

骨干区域:

非骨干区域:

特殊区域:优化路由表、优化LSDB表

  1、STUB区域:末梢区域

(1)定义:

末梢区域,适用于区域中路由器性能较低,目的是为了减少区域中路由器的路由表规模以及路由信息传递的数量。不希望接收大量的AS以外路由

(2)特征:

不接受4类5类LSA;

不允许出现ASBR;

区域0不能被配置为STUB区域;

虽然拒绝学习域外路由信息,但依然有访问域外路由的需求;故会由ABR设备自动下发一条指向骨干区域的3类缺省;

2、totally stub区域----完全末梢区域

(1)定义:完全末梢区域,拒绝学习域外和其他区域的路由信息

(2)特征:

不接受3类4类5类LSA;

不允许出现ASBR;

区域0不能被配置为totally STUB区域;

虽然拒绝学习域外路由信息,但依然有访问域外路由的需求;故会由ABR设备自动下发一条指向骨干区域的3类缺省;

3、NSSA区域(Not-So-stubby Area)----非纯末梢区域

(1)定义:非纯末梢区域,是STUB区域的变形,拒绝学习域外(主要是5类)路由信息,但需要引入后面的域外路由信息

(2)特征:不接受4类5类LSA;

          本区域引入的外部路由以7类LSA存在;

          本区域的ABR会 把引入的7类LSA转换为5类 LSA通告给其他区域;

                                          LSA

LSAOSPF的一个核心内容,如果没有LSAOSPF是无法描述网络的拓扑结构及网段信息的,也无法传递路由信息,更加无法正常工作,OSPFV2中,需要我们掌握的主要有6种。

1、type1-LSA:----重要且复杂

(1)定义:router LSA

  1. 描述区域内部与路由器直连的链路信息(链路类型、开销值等)
  2. 仅在区域内部传输
  3. 每台路由器都会产生Type1 LSA

2、type2-LSA:

(1)定义:network LSA

描述区域内的MA网络(广播网络、NBMA网络)链路的路由器及掩码信息

仅在区域内部传输

只有DR才会产生type2_LSA

[R1]dis ospf lsdb network  查看Type2 LSA的具体信息

(2)内容:

LS ID:该网段的DR的IP地址

Adv Rtr:该网段DR的router-id

network mask:该网段DR的IP地址的子网掩码信息

3、type3-LSA:

(1)定义:Summary LSA(聚合LSA)

在整个OSPF区域内,描述其他区域的链路信息

以子网形式传播,类似直接传递路由

只有ABR会产生type3_LSA

[R1]dis ospf lsdb summary  查看Type3 LSA的具体信息

(2)内容:

LS ID:其他区域某个网段的网络地址

SubAdv Rtv:通告该LSA的ABR的router-id

net mask:该网段的子网掩码

注:3类LSA的传递范围在ABR相邻的单区域中进行,跨区域传递时,需要进行通告者的转换,通告者变了,则将不是同一条LSA

4、type4-LSA:

(1)定义:Asbr-summary LSA

描述ASBR的信息

只有ABR才会产生TYPE4 LSA

(2)内容:

LS ID:ASBR的router-id

Adv Rtv:通告描述该ASBR的ABR的router-id

注:在ASBR本区域的内部路由器,不会产生到达该ASBR的4类LSA

5、type5-LSA:

(1)定义:AS_extenal LSA,传递域外 路由信息

描述AS外部引入的路由信息,会传播到所有区域(特殊区域除外)

只有ASBR才会产生type5_LSA

(2)内容:

LS ID:外部路由的目的网络地址

Adv Rtv:引入该网络路由的ASBR的router-id

net mask:引入的该目标网段的子网掩码

[R1]dis ospf lsdb ase  查看Type5 LSA的具体信息

6、type7-LSA:

(1)定义:NSSA LSA

描述在NSSA区域引入的AS外部路由信息

只会出现在NSSA和totolly NASS区域,不能进入area 0

7类LSA生成路由信息的标记位,O_NSSA,优先级150

(2)内容:

LS ID:外部某个网段的网络地址

Adv Rtv:引入该网络路由的ASBR的ABR的router-id

-------------区域内传拓扑,区域间传路由

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

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

相关文章

kotlin基础【3】

Kotlin Playground: Edit, Run, Share Kotlin Code Online 资料&#xff1a;kotlin实战 第一章 data class Person(val name: String,val age:Int?null)//允许接受以age为空&#xff0c;当为空将它赋值为null,如果不这么写直接写age:Int?是否可以fun main(args:Array<St…

Java-数构二叉树

1.树 1.1概念 树是一种非线性的数据结构&#xff0c;它是由n个有限节点组成一个具有层次关系。这种结构有以下特点&#xff1a; 一个特殊的结点&#xff0c;称为根节点&#xff0c;根节点没有前驱节点除根节点以外&#xff0c;其余节点分成M个互不相交的集合。每个集合又是一…

编程中水合的理解

在编程中&#xff0c;水合&#xff08;Hydration&#xff09; 是一个常见概念&#xff0c;尤其在 前端开发 和 服务端渲染&#xff08;SSR&#xff09; 场景中频繁出现。它的核心含义是&#xff1a;将静态内容“激活”为交互式动态内容。1. 水合的本质简单理解&#xff1a;水合…

使用ffmpeg转码h265后mac默认播放器不支持问题

由于mac自带录屏是mov并且文件特别大&#xff0c;我使用ffmpeg转码视频为h265使用如下命令ffmpeg_command [ffmpeg_path,"-i", input_path,"-c:v", "libx265","-preset", "veryslow","-map_metadata", "0&q…

支持MySQL、PostgreSQL和Redis集群部署,1Panel开源面板v2.0.5版本发布

2025年7月24日&#xff0c;现代化、开源的Linux服务器运维管理面板1Panel正式发布v2.0.5版本。在这一版本中&#xff0c;1Panel新增数据库集群部署、邮件告警和主从节点灵活切换三项功能&#xff0c;聚焦为企业级运维场景提供更优使用体验。 1Panel v2.0.5版本是1Panel开源面板…

GaussDB 数据库架构师修炼(九) 逻辑备份实操

1 逻辑备份定义 逻辑备份是指与业务有关的对象进行备份&#xff0c;这个对象包括表、表的数据、视图、索引、过程、函数等等。GaussDB支持逻辑备份的工具为gs_dump、gs_restore&#xff0c;以下举例说明。 2 创建举例数据 以下创建testdb库&#xff0c;创建test1模式&#xf…

c# Winform发布成独立文件

改造前&#xff1a; 通过发布页面&#xff0c;修改部署模式为独立&#xff0c;输出文件目录没有完全包含所有dll改造后&#xff1a;通过修改项目文件方式修改csproj前&#xff1a;<PropertyGroup><OutputType>WinExe</OutputType><TargetFramework>net…

Android基础(一) 运行HelloWorld

Android基础&#xff08;一&#xff09; 运行HelloWorld一、创建你的第一个Android项目二、创建HelloWorld项目三、安装并启动模拟器四、安装三方模拟器五、使用真机一、创建你的第一个Android项目 学习任何一门编程语言&#xff0c;编写的第一个程序都是Hello World&#xff0…

MongoDB 和 Elasticsearch(ES)区别

MongoDB 和 Elasticsearch&#xff08;ES&#xff09;都是流行的 NoSQL 数据库&#xff0c;但设计目标和适用场景有显著区别。以下是它们的核心差异和典型使用场景对比&#xff1a;1. 核心定位特性MongoDBElasticsearch数据库类型文档数据库&#xff08;通用型 OLTP&#xff09…

【C++算法】89.多源BFS_01 矩阵

文章目录题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a;题目链接&#xff1a; 542. 01 矩阵 题目描述&#xff1a; 解法 先看懂题目 解法一&#xff1a;一个位置一个位置求&#xff08;最差的情况下会非常恐怖&#xff09; 解法二&#xff1a;多源BFS正…

数据结构之 【排序】(归并排序)

目录 1.递归实现归并排序的思想及图解 2.递归实现归并排序的代码逻辑 2.1嵌套子函数 2.2递归过程 2.3递归结束条件 2.4归并及拷贝过程 3.非递归实现归并排序的思想及图解 4.非递归实现归并排序的代码逻辑 4.1边归并边拷贝 4.2某一gap下归并完成才进行拷贝 5.归并排…

企业如何选择适合的高防服务器?

高防服务器租用哪家好&#xff1f;这个问题困扰着许多站长&#xff0c;建立的网站经常受到各种网络攻击&#xff0c;虽然高防服务器有着较高的防御性能&#xff0c;十分适合经常被攻击的行业网站&#xff0c;但是如何租到满意的高防服务器呢&#xff01;徐州高防服务器是部署在…

告别重复劳动:Ansible 自动化运维超详细学习路线图

在运维的世界里&#xff0c;我们总是在与重复性任务作斗争&#xff1a;部署同一套环境 N 次、在几十台服务器上修改同一个配置文件、一遍又一遍地执行相同的发布流程……这些工作不仅枯燥&#xff0c;还极易出错。 如果你也为此感到烦恼&#xff0c;那么 Ansible 就是为你量身打…

UDS 0x29 身份验证服务 Authentication service

背景 0x29服务的目的是为客户端提供一种证明其身份的方法&#xff0c;在ECU端&#xff0c;有些服务或者数据因信息安全、排放或功能安全原因而受到严格限制。 只有身份验证通过之后&#xff0c;才能够允许其访问数据和/或诊断服务。 例如&#xff0c;用于将数据下载/上传到ECU以…

【python高阶】-1- python工程和线程并发

一、项目工程守则1.pdm新建一个项目命令行终端&#xff1a;pip install pdmpdm init版本号&#xff1a;x.y.zx:兼容版本y:新增功能z:补丁版本pdm add pytest requests (添加依赖)pdm是协助管理我们的项目 2. black就是规范我们的代码风格的&#xff1a;pdm add blackblackblack…

YOLOv8 剪枝模型加载踩坑记:解决 YAML 覆盖剪枝结构的问题

1. 问题背景模型剪枝是实现模型轻量化、加速推理的关键步骤。然而&#xff0c;在 Ultralytics YOLOv8 的生态中&#xff0c;在成功剪枝后&#xff0c;进行微调&#xff08;Fine-tuning&#xff09;时会遇到一个令人困惑的现象&#xff1a;明明加载的是剪枝后的模型&#xff08;…

js的学习1

1.数组 数组方法 push()数组尾部添加unshift()数组头部添加pop()数组尾部删除shift()数组头部删除splice(起始位置&#xff0c;删除几个元素&#xff0c;要替换的元素)删除指定的元素&#xff0c;改变了原数组&#xff0c;返回值是被删除的元素indexOf()第一次查到的索引&#…

LeetCode 2563.统计公平数对的数目

给你一个下标从 0 开始、长度为 n 的整数数组 nums &#xff0c;和两个整数 lower 和 upper &#xff0c;返回 公平数对的数目 。 如果 (i, j) 数对满足以下情况&#xff0c;则认为它是一个 公平数对 &#xff1a; 0 < i < j < n&#xff0c;且 lower < nums[i] n…

ZABBIX配置自动发现与自动注册,网易邮箱告警和钉钉告警

一、自动发现zabbix server 主动的去发现所有的客户端&#xff0c;然后将客户端的信息登记在服务端上。缺点是如果定义的网段中的主机数量多&#xff0c;zabbix server 登记耗时较久&#xff0c;且压力会较大。1、部署准备准备三台虚拟机192.168.80.151&#xff1b;192.168.80.…

QT(五)常用类

1. QString字符串类(掌握) QString是Qt的字符串类&#xff0c;与C的string相比&#xff0c;不再使用ASCII编码&#xff0c;QString使用的是Unicode编码。 QString中每个字符都是一个16位的QChar&#xff0c;而不是8位的char。 QString完全支持中文&#xff0c;但是由于不同的技…