二、OSPF协议基础

基于SPF算法(Dijkstra算法)的链路状态路由协议OSPF(Open Shortest Path First,开放式最短路径优先)

目录

1.RIP在大型网络中部署所面临的问题

2.Router ID

3.OSPF的报文

4.OSPF邻居建立过程

5.OSPF报文的确认机制:

6.DD报文中的MTU

7.DR与BDR的作用

9.邻接和邻居关系

10.几种常见的广域网和局域网

11.网络类型

12.ospf链路网络类型

13.OSPF 度量方式

14.OSPF静默接口

15.LSDB同步原则

16.LSA的种类

17.LSA头部 

18.LSDB同步原则


1.RIP在大型网络中部署所面临的问题

2.Router ID

用于在自治系统中唯一标识一台运行OSPF的路由器,每台运行OSPF的路由器都有一个Router ID。

优先级:

1.手动配置router id

2.最大的环回接口IP地址

3.最大的物理接口IP地址

:①实际上:1.手动配置router-id 2.全局router-id(设备第一个配置了IP且为UP的接口ip地址)

        ②更改router id之后必须重启ospf进程使其生效

dis ospf id                        //查看路由器全局router id

>reset ospf process          //重启ospf进程

3.OSPF的报文

五种:hello,DD,LSR,LSU,LSACK。

①hello报文:用于发现,建立,维护邻居关系。两部分:ospf通用头部+hello报文

ospf通用头部:

hello报文:

②DD报文:链路状态信息摘要报文

③LSR报文:用于向邻居请求自身缺少的LSA

④LSU报文:用于发送完整的LSA信息

当路由器收到LSR报文时,会根据报文中的LSA三要素在自身LSDB中查找相关的LSA,并将其封装在LSU报文中回复。

⑤LSACK报文:用于确认收到的LSA,使用LSA头部信息做确认回复。

4.OSPF邻居建立过程

 

5.OSPF报文的确认机制:

①hello报文,10s发一次,40s没收到则老化

②DD报文,使用seq来做隐式确认

③LSR报文,使用LSU报文作为确认回复

④LSU报文,使用LSACK报文作为确认回复

6.DD报文中的MTU

1、DD报文中的第一个字段就是发出该报文接口的MTU值,正常来说,OSPF邻居建立是需要要求两端接口的MTU值保持一致,否则无法建立。

但是华为默认不检查MTU值。因此一般会显示为0(接口缺省MTU为1500)(思科是默认检查MTU值的)

2、可以人为使用命令开启MTU检测

[AR1-GigabitEthernet0/0/0]ospf mtu-enable    //在接口开启OSPF的MTU检测

[AR1-GigabitEthernet0/0/0]mtu 1600

注:

   ①当接口开启MTU检测后,DD报文中MTU值将正常显示

   ②两端接口只有一端开启MTU检测,其不生效,也不会影响邻居建立

   ③必须两端同时开启MTU检测后才会生效

mtu影响的是DD报文阶段

①如果slave路由器接口的MTU>master路由器的MTU,那么从路由器将卡在exchange,主路由器将卡在exstart

②如果slave路由器接口的MTU<master路由器的MTU,那么从路由器将卡在exstart,主路由器将卡在exstart

7.DR与BDR的作用

8.DR与BDR选举规则

9.邻接和邻居关系

邻居(2-way):不需传递路由

邻接(Full):需要传递路由

注:DR和任何角色都要建立邻接关系,BDR和任何角色都要建立邻接关系,Drother和 Drother之间只需建立2way即可。

10.几种常见的广域网和局域网

广域网:

①X.25网络

②帧中继网络(FR)(前身是X.25)

③ATM(异步传输模式)网络

④SONET(同步光纤网络)网络

局域网:

①以太网(Ethernet)

②令牌环网(Token Ring

 

11.网络类型

根据数据链路层使用的协议来进行划分的网络类型

①MA网络——多点接入网络,分为两种【介质使用同轴电缆、网线、光纤】

        1)BMA——广播型多点接入网络(broadcast)

                以太网协议

        2)NBMA——非广播型多点接入网络

                帧中继、ATM

②P2P网络——点到点网络【介质使用串口线】

        PPP(点到点协议)——常用

        HDLC(高级链路控制协议)

③P2MP网络——点到多点网络

没有任何一种链路层协议被认为是P2MP,不是一种默认的网络类型,一般是人为手动配置的(多用于DSVPN技术)

12.ospf链路网络类型

①broadcast广播

当链路层协议为以太网时,OSPF网络类型会默认为广播型

1)hello时间10s,dead时间40s

2)需要选举DR、BDR 、Drother

3)组播更新地址:224.0.0.5和224.0.0.6

        所有设备使用单播形式交互DD报文以及LSR报文

        所有设备固定使用224.0.0.5交互hello报文

4)LSU和LSACK比较特别:

        a. 当drother发送LSU报文时通过224.0.0.6组播地址发送给DR和BDR;然后DR通过224.0.0.5发送给其他drother和BDR;

            drother收到更新后通过224.0.0.6回复ACK;BDR收到更新后通过224.0.0.5回复ACK。

        b.当DR发送LSU报文时通过224.0.0.5组播地址发送给BDR和drother;

          drother收到更新后通过224.0.0.6回复ACK;BDR收到更新后通过224.0.0.5回复ACK。

c.当BDR发送LSU报文时通过224.0.0.5组播地址发送给DR和drother;

  DR收到更新后通过224.0.0.5回复ACK;drother收到更新后通过224.0.0.6回复ACK。

 总结:DR和BDR收包和发包都在224.0.0.5,DRother在224.0.0.5上收包,在224.0.0.6上发包

②点到点

当链路层协议为PPP/HDLC时,OSPF网络类型会默认为点到点

应用场景:加快ospf网络收敛速度

1)hello时间10s,dead时间40s。

2)不需要选举DR BDR Drother

3)直接建立邻接关系

4)所有报文通过224.0.0.5更新

int g0/0/0

ospf network-type p2p //更改ospf链路类型

 

③非广播多路访问NBMA(了解即可)

当链路层协议为帧中继FR/ATM时,OSPF网络类型会默认为NBMA

如果使用NBMA网络类型组网,那么需要在OSPF进程中,使用peer x.x.x.x命令来指定对端邻居。

1)hello时间 30s,dead时间120s

2)需要选举DR BDR DRother

3)DR和任何角色都要建立邻接关系,BDR和任何角色都要建立邻接关系,Drother和Drother之间建立2-WAY即可

4)所有报文通过单播形式更新

④点到多点(了解即可)

没有任何一种链路层协议被认为是P2MP,P2MP一般是人为手动配置的(多用于DSVPN技术)

1)hello 30s,dead 120S

2)不需要选举DR BDR Drother

3)直接建立邻接关系

4)hello报文是通过224.0.0.5组播更新,其他4种报文通过单播更新。

:两端网络类型要保持一致才能传递路由,虽然邻居可以建立,状态为full,LSA也能发送,但算法算不出来

13.OSPF 度量方式

①带宽参考值/实际接口带宽(参考值100M)

        当计算出的cost 大于0且小于2时,    cost=1

                               大于等于2且小于3时,cost=2

                               以此类推

②修改接口cost的方法:

        1)直接通过命令手动修改   [AR1-GigabitEthernet0/0/0]ospf cost 100

        2)修改带宽参考值         [AR1-ospf-1]bandwidth-reference 10000

计算一条路由条目的cost值:数据传递方向路由器出接口cost累加

14.OSPF静默接口

当路由器的接口被配置为静默接口后,该接口可以生成LSA,但是不再收发和处理OSPF报文

①黑名单模式配置:

ospf 1

silent-interface GigabitEthernet 0/0/0

②白名单模式配置:

ospf 1

silent-interface all

undo silent-interface GigabitEthernet 0/0/0

15.LSDB同步原则

OSPF支持的更新方式:

触发更新: 路由新增或消失

周期更新: 因为每一条LSA都有一个老化时间,当老花时间达到3600s时,将删除LSA。

        所以每条LSA会在1800s做一次周期更新。

:一条LSA周期更新只在始发路由器进行更新,再发布给其他路由器

16.LSA的种类

17.LSA头部 

18.LSDB同步原则

注:DD摘要的动作:①查看自己没有的LSA并请求 ②对比同一条LSA的新旧

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

59、回溯-括号生成

思路&#xff1a; 括号是成对出现&#xff0c;首先左括号可以放n个&#xff0c;右括号也可以放n个。如果当前左括号放了3了&#xff0c;右括号放了4个&#xff0c;错了&#xff0c;如果左括号放了5个&#xff0c;右括号放了4个。可以&#xff0c;继续放右括号即可。所以可以设…

linux系统安全及应用【上】

目录 1.账号安全控制 1系统账号清理 2密码安全控制 1 对已经存在的用户账号进行控制 2 对新建的用户密码默认设置 3 历史命令和终端自动注销的安全管理 1 历史命令的限制 2. 用户切换管理 1 su命令的使用 2 ssh 3.授权用户管理 1 sudo命令 2 sudo用户别名 3 查看su…

Vuforia AR篇(三)— AR模型出场效果

目录 前言一、AR模型出场二、AR出场特效三、添加过渡效果四、效果 前言 例如&#xff1a;随着人工智能的不断发展&#xff0c;机器学习这门技术也越来越重要&#xff0c;很多人都开启了学习机器学习&#xff0c;本文就介绍了机器学习的基础内容。 一、AR模型出场 创建ARCamer…

【Go语言快速上手(四)】面向对象的三大特性引入

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Go语言专栏⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多Go语言知识   &#x1f51d;&#x1f51d; GO快速上手 1. 前言2. 初识GO中的结构…

深度学习中的子空间、线性变换和矩阵概念应用

1.表示子空间 在深度学习中&#xff0c;“不同的表示子空间”通常是指模型通过不同的参数&#xff08;例如权重矩阵&#xff09;将输入数据映射到不同的高维空间&#xff0c;这些空间被称为表示子空间。每个子空间都能够捕获输入数据中不同的特征或模式。以下是一些详细解释&am…

软考-论文写作-论架构风格论文

题目 素材 框架 一、 摘要 2020年12月,我参加了某省政协委员履职系统的开发。该系统为政协机关人员线上开展各项工作以及委员完成各项履职提供了全方位的软件支撑。我在该项目重担任系统架构师一职,负责履职系统的架构设计。本文结合实践,以委员履职系统为例,主要讨论软件…

使用FunASR处理语音识别

FunASR是阿里的一个语音识别工具&#xff0c;比SpeechRecognition功能多安装也很简单&#xff1b; 官方介绍&#xff1a;FunASR是一个基础语音识别工具包&#xff0c;提供多种功能&#xff0c;包括语音识别&#xff08;ASR&#xff09;、语音端点检测&#xff08;VAD&#xff…

verilog中比较器的代码用法

在 verilog 中以大于“>”&#xff0c;等于””&#xff0c;小于”<”&#xff0c;大于等于”>”&#xff0c;小于等于”<”&#xff0c;不等于”!”表示&#xff0c;以大于举例&#xff0c;如 c a > b ;表示如果 a 大于 b&#xff0c;那么 c 的值就为 1&#x…

网盘——文件重命名

文件重命名具体步骤如下&#xff1a; 目录 1、具体步骤 2、代码实现 2.1、添加重命名文件的槽函数 2.2、关联重命名文件夹信号槽 2.3、添加重命名文件的协议 2.4、添加槽函数定义 2.5、服务器 2.6、添加重命名文件的case 2.7、客户端接收回复 3、测试 3.1、点击重命…

【AIGC调研系列】Bunny-Llama-3-8B-V与其他多模态大模型相比的优劣

Bunny-Llama-3-8B-V作为基于Llama-3的多模态大模型&#xff0c;其优势主要体现在以下几个方面&#xff1a; 性能超越其他模型&#xff1a;根据我搜索到的资料&#xff0c;Bunny-Llama-3-8B-V在多个主流Benchmark上表现良好&#xff0c;超越了LLaVA-7B、LLaVA-13B、Mini-Gemini…

汽车企业安全上网解决方案

需求背景 成立于1866年的某老牌汽车服务独立运营商&#xff0c;目前已经是全球最大的独立汽车服务网络之一&#xff0c;拥有95年的历史&#xff0c;在全球150多个国家拥有17,000多个维修站&#xff0c;始终致力于为每一位车主提供高品质&#xff0c;可信赖的的专业汽车保养和维…

智慧文旅:引领旅游产业智慧升级的创新模式

一、智慧文旅是什么&#xff1f; 智慧文旅是指以当地特色文化为核心&#xff0c;借助现代科技手段&#xff0c;实现旅游景区全面智慧升级的旅游模式。在智慧文旅中&#xff0c;新一代信息网络技术和装备得到充分运用&#xff0c;文化旅游基础设施得到新建和改善&#xff0c;特…

OpenCV鼠标绘制线段

鼠标绘制线段 // 鼠标回调函数 void draw_circle(int event, int x, int y, int flags, void* param) {cv::Mat* img (cv::Mat*)param;if (event cv::EVENT_LBUTTONDBLCLK){cv::circle(*img, cv::Point(x, y), 100, cv::Scalar(0, 0, 255), -1);} }// 鼠标回调函数 void dra…

牛客NC199 字符串解码【中等 递归,栈的思想 C++/Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/4e008fd863bb4681b54fb438bb859b92 相同题目&#xff1a; https://www.lintcode.com/problem/575 思路 解法和基础计算器1&#xff0c;2,3类似,递归参考答案C struct Info {string str;int stopindex;Info(str…

react —— useState 深入

基础用法 useState Hook 提供了这两个功能&#xff1a; State 变量 在第一次重新渲染期间&#xff0c;这将具有作为参数传递的值State setter 函数 set 函数将允许将状态的值更新为不同的值&#xff0c;如果 set 函数中提供的值不同&#xff0c;则将触发重新渲染。 注意&…

【网站项目】书籍销售系统小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

如何3分钟,快速开发一个新功能

背景 关于为什么做这个代码生成器&#xff0c;其实主要有两点: 参与的项目中有很多分析报表需要展示给业务部门&#xff0c;公司使用的商用产品&#xff0c;或多或少有些问题&#xff0c;这部分可能是历史选型导致的&#xff0c;这里撇开不不谈&#xff1b;项目里面也有很多C…

torch.cuda.is_avaliable()在命令行里是true,pycharm是false【省流:换Pycharm】

我的问题&#xff1a; 1、torch.cuda.is_avaliable()在命令行里是true&#xff0c;但是pycharm是false 2、pycharm选择pytorch所在的解释器&#xff0c;加载失败。 3、pytorch所在的解释器加载成功&#xff0c;但是里边的torch包莫名消失。 解决方法&#xff1a; 在调试了很…

SpringBoot+RabbitMQ实现MQTT协议通讯

一、简介 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上&#xff0c;是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议&#xff0c;为此&#xff0c;它需要一个消息中间件 。此…

数据结构之堆

片头 嗨! 小伙伴们,上一篇中,我们学习了队列相关知识,今天我们来学习堆这种数据结构,准备好了吗? 我们开始咯 ! 一、堆 1.1 堆的概念 堆&#xff08;Heap&#xff09;是一种特殊的树,如果将一个集合中的所有元素按照完全二叉树的顺序存储方式存储在一个一维数组中,并满足一定…