HCIP第二节

OSPF:开放式最短路径协议(属于IGP-内部网关路由协议)

优点:相比与静态可以实时收敛

更新方式:触发更新:224.0.0.5/6    周期更新:30min

在华为设备欸中,默认ospf优先级是10,室友cost(开销值)作为度量值(带宽越大,cost值越小越好)

默认参考带宽100M,cost值向上取整,故当接口宽带大于参考带宽时候,cost值为1,可能导致道路不佳,可以手工修改默认参考带宽

更改带宽方式(一旦修改,全网所有设备需要一致):

ospf 1

bandwidth-reference 1000

一。OSPF的数据包类型 3层报头 协议号89

display ospf lsdb:查看ospf的数据库表

1.Hello:周期收发,用于邻居发现,关系建立,周期保活-10s/30s(路由之间相互认识)

2.database description (数据库描述包):用于携带数据库目录(将彼此目录进行转发描述)

DBD包中携带接口的MTU(最大传输单元)值,要求两端接口的MTU一致,否则卡在exstart状态,华为设备默认编写带MTU值,开启MTU的方式:

int g0/0/1

ospf mtu-enable (两端的直连接口均要开启)

对于DBD包的描述为:

I为1表示本地发出的第一个DBD

M为0表示本地发出的最后一个DBD

MS为1表示本地为主,为0表示本地为从

注释:DBD包使用序列号进行隐形确认,从基于主的序列号进行

3.link-state request(链路状态请求):基于本地未知的LSA信息进行查询(缺少目录进行相互查看咨询)

4.link-state update(链路状态更新):用于传递具体的LSA信息(状态进行更新)

5.link-state ackowledgment(链路状态通告):进行确认信息(基于数据库中的LSA生成有向图)

二。OSPF状态机(邻居间)

1.Down state:一旦接受到hello包进入下一个状态

2.init state:收到hello包若存在本地RID,进入下一个状态

3.two-way state:双向通讯,邻居间关系建立的标志

4.exstart state:预启动,使用不携带数据库目录信息的DBD包进行主从关系的选举,RID数值大为主,优先进入下一个状态--排序(避免同时更新,导致网络拥塞)

5.exchange state:准交换,使用携带目录信息的DBD包,进行交互

6.loading state:加载,查看完其他邻接发过来的DBD后,基于当中本地未知的LSA信息,使用LSR查询,对端使用LSU来共享这些LSA信息,本地收到后需要ACK进行确认,邻接间数据保持一致

7.full state:邻居关系建立的标志

三。OSPF的工作流程:

启动配置完成后1,邻居间组播收发hello包,获取对端的RID,建立邻居关系,生成邻居;

邻居关系建立后,关注条件,条件不匹配的邻居间,将维持邻居关系,仅hello包周期保活即可,条件匹配,可以建立邻接关系(将使用DBD/LSR/LSU/LSack来进行交互通向,同步数据库,获取未知的LSA信息,最终生成与邻接一致的数据库表;当数据库同步完成后,本地进行SPF算法,将数据库表转发为有向图(基于LSA),再将有向图计算成最短路径树,然后以本地为起点,计算到达所有未知网段的最短路径,然后将这些路由加载于本地的路由表中

四.基本配置:

查看邻居表:display ospf peer brief

ospf 1

router-id 1.1.1.1(起名字,定义进程号,仅具有本地意义)

area 0(区域划分)

network 12.1.1.1 0.0.0.0(激活OSPF协议,激活接口信息)

划分规则:

1.必须为星型结构(area 0 为主干部分,其他大于0都是非主干部分,非骨干必须连接骨干部分)

2.区域之间必须使用ABR来互联--ABR区域边界路由器(骨干和非骨干中间连接的设备)

注释:宣告配置全部完成后,邻居间周期组播收发hello包,建立邻居关系,生成邻居表

五.OSPF邻居关系建立成为邻接关系的条件:

从邻居关系建立成为邻接关系,关注网络类型:点到点,MA

1.在点到点网络中,邻居直接全部建立为邻接关系

2.在MA网络中,若两两间均建立邻接关系,将可能出现大量的重复更新,DV距离矢量(如RIP)路由协议可以通过使用接口水平分割来解决由于OSPF协议邻接需要数据库比对,故不能设计接口水平分割,只能进行DR/BDR选举解决,所有非DR和BDR之间的邻居关系,不能进行数据库同步

拓展:DR选举:

1.先比较参选接口优先级,默认1;越大越好,为0不参选

2.若优先级一样,则比较参选设备的RID数值,越好越好

IGP:

1.距离矢量 DV RIP 共享路由(提供路径)

2.链路状态 LS OSPF 共享拓扑(提供图:可以防环)

无类别链路状态型路由协议:邻居间基于拓扑信息进行交互,更新量很大,故为了能在中大型复杂网络中工作,需要结构化的部署(良好的ip地址划分/区域划分)

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

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

相关文章

vue3+vite+js 实现移动端,PC端响应式布局

目前使用的是vue3vite,没有使用ts 纯移动端|PC端 这种适用于只适用一个端的情况 方法:amfe-flexible postcss-pxtorem相结合 ① 执行以下两个命令 npm i -S amfe-flexible npm install postcss-pxtorem --save-dev② main.js文件引用 import amfe-f…

使用固定公网地址远程访问开源服务器运维管理面板1Panel管理界面

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、…

【前端】输入时字符跳动动画实现

输入时字符跳动动画实现 在前端开发中,为了提升用户体验,我们经常需要为用户的交互行为提供即时的反馈。这不仅让用户知道他们的操作有了响应,还可以让整个界面看起来更加生动、有趣。本文将通过一个简单的例子讲解如何实现在用户输入字符时…

更适合宝妈和上班族的兼职,每天2小时收入250+的微头条项目

许多人通过撰写微头条赚取收入,但这通常需要自己寻找素材,然后逐字逐句地进行改编创作,整个过程既繁琐又低效。 然而,如今全球范围内的AI工具正如雨后春笋般涌现。百度推出了文心一言,阿里巴巴推出了AI工具通义千问&a…

Stateflow基础知识笔记

01--Simulink/Stateflow概述 Stateflow是集成于Simulink中的图形化设计与开发工具,主要 用于针对控制系统中的复杂控制逻辑进行建模与仿真,或者说, Stateflow适用于针对事件响应系统进行建模与仿真。 Stateflow必须与Simulink联合使用&#…

20240503解决Ubuntu20.04和WIN10双系统下WIN10的时间异常的问题

20240503解决Ubuntu20.04和WIN10双系统下WIN10的时间异常的问题 2024/5/3 9:33 缘起:因为工作需要,编译服务器上都会安装Ubuntu20.04。 但是因为WINDOWS强悍的生态系统,偶尔还是有必须要用WINDOWS的时候,于是也安装了WIN10。 双系…

LNMP部署wordpress

1.环境准备 总体架构介绍 序号类型名称外网地址内网地址软件02负载均衡服务器lb0110.0.0.5192.168.88.5nginx keepalived03负载均衡服务器lb0210.0.0.6192.168.88.6nginx keepalived04web服务器web0110.0.0.7192.168.88.7nginx05web服务器web0210.0.0.8192.168.88.8nginx06we…

Flask应用的部署和使用,以照片分割为例。

任务是本地上传一张照片,在服务器端处理后,下载到本地。 服务器端已经封装好了相关的程序通过以下语句调用 from amg_test import main from test import test main() test() 首先要在虚拟环境中安装flask pip install Flask 文件组织架构 your_pro…

BERT模型的网络结构解析 运行案例分析

整体结构 第一部分:嵌入层第二部分:编码层第三部分:输出层 对于一个m分类任务,输入n个词作为一次数据,单个批次输入t个数据,在BERT模型的不同部分,数据的形状信息如下: 注1&#x…

【保姆级讲解如何安装与配置Xcode】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

SpringBoot 打包所有依赖

SpringBoot 项目打包的时候可以通过插件 spring-boot-maven-plugin 来 repackage 项目&#xff0c;使得打的包中包含所有依赖&#xff0c;可以直接运行。例如&#xff1a; <plugins><plugin><groupId>org.springframework.boot</groupId><artifact…

强强联手!沃飞长空携手中信海直,开启空中交通新篇章

自古以来&#xff0c;人类就对天空充满了向往。而新一代航空革命性飞行器eVTOL的出现&#xff0c;让我们离智慧低空出行场景更进一步。目前&#xff0c;中国、美国、欧洲等国家和地区都在加紧布局低空经济产业&#xff0c;整个市场可谓是百家争鸣。随着国内外相关研发企业的不断…

在ubuntu 24.04 上安装vmware workstation 17.5.1

ubuntu安装在新组装的i9 14900机器上&#xff0c;用来学习笨叔的ARM64体系结构编程&#xff0c;也熟悉Linux的用法。但有时候写文档总是不方便&#xff0c;还是需要window来用。因此想在ubuntu 24.04上安装Linux版本的vmware worksation 17.5.1以虚拟机的方式安装windows 11。其…

karateclub,一个超酷的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个超酷的 Python 库 - karateclub。 Github地址&#xff1a;https://github.com/benedekrozemberczki/karateclub Python karateclub是一个用于图嵌入和图聚类的库&#xff…

升级 Vite 5 出现警告 The CJS build of Vite‘s Node API is deprecated

错误描述 vue3-element-admin 项目将Vite4 升级至 Vite5 后,项目运行出现如下警告: The CJS build of Vites Node API is deprecated. See https://vitejs.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.图片 问题原因 Vite 官方弃用 C…

PHP定时任务框架taskPHP3.0学习记录7宝塔面板手动可以执行自动无法执行问题排查及解决方案(sh脚本、删除超过特定天数的日志文件、kill -9)

PHP定时任务框架taskPHP3.0学习记录 PHP定时任务框架taskPHP3.0学习记录1&#xff08;TaskPHP、执行任务类的实操代码实例&#xff09;PHP定时任务框架taskPHP3.0学习记录2&#xff08;环境要求、配置Redis、crontab执行时间语法、命令操作以及Screen全屏窗口管理器&#xff0…

计算机毕业设计 | vue+springboot 在线花店后台管理系统(附源码)

1&#xff0c;绪论 1.1 项目背景 随着社会发展&#xff0c;网上购物已经成为我们日常生活的一部分。但是&#xff0c;至今为止大部分电商平台都是从人们日常生活出发&#xff0c;出售都是一些日常用品比如&#xff1a;食物、服装等等&#xff0c;并未发现一个专注于鲜花的电商…

UI-Diffuser——使用生成式扩散模型的UI原型设计算法解析

概述。 移动UI是影响参与度的一个重要因素&#xff0c;例如用户对应用的熟悉程度和使用的便利性。如果你有一个类似的应用程序&#xff0c;你可能会选择一个具有现代、好看的设计的应用程序&#xff0c;而不是一个旧的设计。然而&#xff0c;要从头开始研究什么样的UI最适合应…

解锁程序员高效编程之谜:软件工具、编辑器与插件的秘密武器大公开!

程序员如何提高编程效率&#xff1f; 程序员提高编程效率是一个多方面的过程&#xff0c;涉及技能提升、工具使用、时间管理以及工作习惯等多个方面。以下是一些建议&#xff0c;帮助程序员提高编程效率&#xff1a; 1. 选择适合的工具 使用高效的代码编辑器或集成开发环境&…

TypeScript学习日志-第二十天(模块解析)

模块解析 一、ES6之前的模块规范 前端模块化规范是有很多的&#xff0c;在es6模块化规范之前分别有一下的模块化规范 一、Commonjs 这是 NodeJs 里面的模块化规范 // 导入 require("xxx"); require("../xxx.js"); // 导出 exports.xxxxxx function() …