OSPF协议详解

静态缺点

1、中大型复杂网络----配置量大

2、不能实时收敛

动态-----可以实时收敛

IGP----内部网关路由协议  RIP OSPF EIGRP ISIS

EGP----外部网关路由协议  BGP

IGP  (选路佳    占用资源    收敛快)----一个协议好需满足这三个

距离矢量 DV RIP  共享路由 (优:邻居间交互信息少)

链路状态 LS OSPF  共享拓扑 (优:防环能力强)

OSPF

Ospf:开放式最短路径优先协议  -----更新量大

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

更新方式 ---  触发更新 -- 224.0.0.5/6    周期更新 --30min:相当于ospf的保底,因为信息量大,触发更新可能出现问题,此时周期更新能够进行兜底(rip也有周期更新----rip缺少hello包和确认包(ack))

  1. OSPF的数据包类型 ---  跨层封装于3层报头(没有四层)   协议号89

5种包都是这样通过type区分

Hello   ---   周期收发,用于邻居的发现、关系的建立、周期的保活-- 10s或30s

DBD-数据库描述包      用于携带数据库目录

LSR 链路状态请求      基于本地未知的LSA信息进行查询

LSU 链路状态更新      用于传递具体的LSA信息

LSack  链路状态确认   可靠性,确认包

(LSA --链路状态通告  --- 具体的每一条的拓扑或路由信息;)

OSPF的状态机  --  邻居间的邻居关系的不同阶段

Down  一旦接收到hello包进入下一个状态

Init 初始化  收到的hello包中若存在本地的RID,进入下一状态

2way双向通讯    邻居关系建立的标志  

条件:点到点网络直接进入下一个状态机;MA网络进行DR/BDR选举(默认一个dead time),非DR/BDR间不能进入下一状态;

    

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

Exchange 准交换 使用携带目录信息的DBD包,进行交互

Loading 加载 查看完其他邻接发送过来的DBD后,基于当中本地未知的LSA信息,使用LSR查询,对端使用LSU来共享这些LSA信息,本地收到后需要ACK确认;最终完成邻接间的数据库一致

Full 转发  邻接关系建立的标志

OSPF的工作过程

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

邻居关系建立后,关注条件;条件不匹配的邻居间,将维持邻居关系,仅hello包周期保活即可;

条件匹配:可以建立邻接(毗邻)关系

将使用DBD/LSR/LSU/LSack来进行交互、共享,同步数据库,获取未知的LSA信息;最终生成与邻接一致的数据库表

当数据库表同步完成后,本地使用SPF算法,将数据库表转换为有向图,再将有向图计算成为最短路径树,然后以本地为起点,计算到达所有未知网段的最短路径,然后将这些路由加载于本地的路由表中;收敛完成。

拓扑结构突变(3种情况):

  1. 新增网段  直连新增网段的设备,使用LSU直接向本地所有邻接进行触发更新,对端需要确认
  2. 断开网段  直连断开网段的设备,使用LSU直接向本地所有邻接进行触发更新,对端需要确认
  3. 无法沟通  ---  没有周期的hello包;dead time为hello time的4倍--倒计时,正常被每一个新的hello包刷新,归0时断开邻居关系,删除该邻接共享的信息

OSPF协议的基础配置

[r1]ospf 1 router-id 1.1.1.1 启动时可以定义进程号仅具有本地意义,默认为1

       可以定义RID --- 手工 -- 环回上最大数值ip地址-- 物理接口上最大数值ip地址

宣告:1、区域划分  2、激活接口OSPF协议   3、共享接口信息

[r1-ospf-1]area  0[r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0

OSPF区域划分规则:

  1. 必须为星型结构   区域0为骨干,大于0为非骨干,非骨干必须连接骨干区域
  2. 区域间必须使用ABR来互联  -- ABR区域边界路由器

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

OSPF协议的hello包为周期收发;邻居间hello包中必须完全一致的参数:否则无法建立邻居关系

Hello、dead time;区域编号;认证字段;末梢区域标记;在华为设备中邻居间hello包还将携带建邻的接口ip地址子网掩码,也必须和邻居一致;

<r2>display  ospf peer  查看邻居表

<r2>display  ospf peer brief  查看邻居简表

         OSPF Process 1 with Router ID 2.2.2.2

                  Peer Statistic Information

 ----------------------------------------------------------------------------

 Area Id          Interface                        Neighbor id      State   

 0.0.0.0          GigabitEthernet0/0/0             1.1.1.1          Full       

 0.0.0.1          GigabitEthernet0/0/1             3.3.3.3          Full       

 ----------------------------------------------------------------------------

邻居关系建立后,邻居间进行条件的匹配;匹配失败维持邻居关系,仅hello包周期保活;

匹配成功,可以建立邻接关系;使用DBD/LSR/LSU/LSack来获取本地未知的LSA信息;实现邻接关系间设备的数据库一致; 

数据库表

<r1>display  ospf lsdb  查看数据库表  LSDB--链路状态数据库

DBD包:DBD包中携带接口的MTU值,要求两端接口MTU一致,否则将卡在exstart状态机;华为设备默认不携带MTU值,MTU默认值为1500

若要携带则需手动开启:

[r1]interface g0/0/1[r1-GigabitEthernet0/0/1]ospf mtu-enable  两端直连接口均需开启

当MTU值不一样,数据有可能会拆开(若一边为1400另一边接口为1300则包会拆分为一个1300和一个大于(多出来的数据会出现合成一个完整的包)100的数据)

DBD包中的描述位:

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

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

MS 为1表示本地为主(master),为0表示本地为从(slave

DBD使用序列号来进行隐性确认,从(slave)基于主(master)的序列号进行;

当邻接关系间数据库同步完成后,本地基于数据库中的所有LSA;生成 有向图 --> 最短路径树-->将本地作为起点,计算到达所有未知网段的最短路径,然后将其加载到路由表中:

在华为设备中,默认的优先级为10;使用cost作为度量;

(Cost=开销值=参考带宽/接口带宽)

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

[r1]ospf 1[r1-ospf-1]bandwidth-reference ?INTEGER<1-2147483648>  The reference bandwidth (Mbits/s)[r1-ospf-1]bandwidth-reference 1000切记:一旦修改,全网所有设备需一致;

ospf协议默认将选择cost值之和最小的路径,为最短路径加表;

OSFP邻居关系建立成为邻接关的条件

从邻居关系建立成为邻接关系,关注网络类型;点到点  MA(BMA、NBMA)

在点到点网络中,邻居直接全部建立为邻接关系(不进行DR/BDR选举);

在MA网络中若两两间均建立邻接关系,将可能出现大量的重复更新

(1给2和3,因为邻居之间互相传递2又给3)

DV距离矢量路由协议可以使用接口水平分割来解决,由于OSPF协议邻接需要数据库比对,故不能设计接口水平分割;只能进行DR/BDR选举来解决;所有非DR/BDR之间为邻居关系,不进行数据库同步;DR选举是避免在一个MA网段内出现重复更新

选举规则:

  1. 先比较参选接口优先级,默认1;越大越优  为0标识不参选
  2. 若优先级相同,比较参选设备的RID数值,越大越优
[r1]int g0/0/1[r1-GigabitEthernet0/0/1]ospf dr-priority 0 将接口优先级改为0,不进行玄选举

 

OSPF的接口网络类型 ---  ospf协议在不同网络类型的接口上,不同的工作方式

[r1]display  ospf interface g0/0/1  查看OSPF协议在接口具体的工作方式名称

 Interface: 12.1.1.1 (GigabitEthernet0/0/1)

 Cost: 1       State: BDR       Type: Broadcast ;

接口类型                     OSPF工作方式

LoopBack     华为显示p2p,实为环回专用工作方式  无hello包 以32位主机路由传递

点到点类型(HDLC/PPP/GRE) p2p  hello time10s ,死亡时间为Hellotime的4倍,不选DR,邻居直接建立为邻接

BMA(以太网) Broadcast(广播)  hello time10s ,死亡时间为Hellotime的4倍, 选DR/BDR 非DR/BDR间仅建立邻居关系

NBMA(MGRE) 默认和普通GRE一样接口工作方式为p2p,该工作方式在华为设备上仅和最先收到的hello包建立邻居关系(只允许建一个邻居);

故在MGRE环境(MA)需要手工修改接口工作方式:

[r1-Tunnel0/0/0]ospf network-type ?broadcast  Specify OSPF broadcast networknbma       Specify OSPF NBMA networkp2mp (不选DR但谁给路由谁就是下一跳)      Specify OSPF point-to-multipoint networkp2p        Specify OSPF point-to-point network

注:p2p 和broadcast 两种工作方式的hello time均为10s,故可以建立邻居关系,但在DR选举上不同,故无法正常交流LSA

切记:邻居间ospf接口工作方式必须一致,才能正常建邻和正常收敛

若将MGRE下所有接口的工作方式修改为broadcast,需要关注拓扑结构:

  1. 全连网状结构,可以正常工作,正常选举DR/BDR
  2. 非全连 ---管理员手工合理安排DR位置
  3. 星型结构-- 仅中心站点为DR,无BDR

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

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

相关文章

node.js的模块化 与 CommonJS规范

一、node.js的模块化 (1)什么是模块化&#xff1f; 将一个复杂的程序文件依据一定的规则拆分成为多个文件的过程就是模块化 在node.js中&#xff0c;模块化是指把一个大文件拆分成独立并且相互依赖的多个小模块&#xff0c;将每个js文件被认为单独的一个模块&#xff1b;模块…

HDLbits 刷题 -- Alwaysblock2

学习&#xff1a; For hardware synthesis, there are two types of always blocks that are relevant: Combinational: always (*)Clocked: always (posedge clk) Clocked always blocks create a blob of combinational logic just like combinational always blocks, but…

基于ArgoCD和Testkube打造GitOps驱动的Kubernetes测试环境

本文介绍了一项新工具&#xff0c;可以基于Gitops手动或者自动实现Kubernetes集群应用测试&#xff0c;确保集群的健康状态与Git仓库定义的一致。原文: GitOps-Powered Kubernetes Testing Machine: ArgoCD Testkube 简介&#xff1a;GitOps 云原生测试面临的挑战 现代云原生应…

[蓝桥杯 2014 省 A] 波动数列

容我菜菲说一句&#xff0c;全网前排题解都是rubbish&#xff0c;当然洛谷某些也是litter 不好意思&#xff0c;最近背单词背了很多垃圾的英文&#xff0c;正题开始 [蓝桥杯 2014 省 A] 波动数列 题目描述 输入格式 输入的第一行包含四个整数 n , s , a , b n,s,a,b n,s,a…

iPhone设备中定位应用程序崩溃问题的日志分析技巧

​ 目录 如何在iPhone设备中查看崩溃日志 摘要 引言 导致iPhone设备崩溃的主要原因是什么&#xff1f; 使用克魔助手查看iPhone设备中的崩溃日志 奔溃日志分析 总结 摘要 本文介绍了如何在iPhone设备中查看崩溃日志&#xff0c;以便调查崩溃的原因。我们将展示三种不同的…

蓝桥杯刷题day13——玩游戏【算法赛】

一、问题描述 小 A 和小 B 两个人在海边找到了 n 个石子&#xff0c;准备开始进行一些游戏&#xff0c;具体规则如下&#xff1a;小 B 首先将 n 个石子分成若干堆&#xff0c;接下来从小 A 开始小 A 和小 B 轮流取石子&#xff0c;每次可以任选一堆石子取走任意个&#xff0c;…

Linux中JMeter的使用

Linux中JMeter的使用 Linux版本JMeter安装 # 1、下载、安装JMeter 如果有安装包直接上传即可 wget -c https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.4.1.tgz # 解压 tar -zxvf apache-jmeter-5.4.1.tgz -C /usr/local/sjdwz_test cd /usr/local/sjdwz_t…

数据分析之Tebleau可视化:折线图、饼图、环形图

1.折线图的绘制 方法一&#xff1a; 拖入订单日期和销售金额&#xff0c;自动生成一个折线图 方法二&#xff1a; 选中订单日期和销售金额&#xff08;摁住ctrl可以选择多个纬度&#xff09; 点击右边的智能推荐&#xff0c;选择折线图 2.双线图的绘制、双轴的设置 方法一&…

【Jmeter+Influxdb+Grafana性能监控平台安装与部署】

JmeterInfluxdbGrafana性能监控平台安装与部署 前言Influxdb安装与连接Jmeternfluxdb下载&#xff08;winodws&#xff09;Grafana安装与配置 前言 我们在性能测试过程中&#xff0c;在需要较大并发时&#xff0c;为了尽量避免使用GUI界面来节省资源&#xff0c;通常使用命令行…

python+vue访客预约登记系统-数据可视化echart大屏

为了系统的完整&#xff0c;必须要有可行性分析的&#xff0c;系统的可行性关系到生存问题&#xff0c;分析其意义可否利用本系统来弥补线下管理模式中的不足之处等&#xff0c;通过本系统来减少工作量&#xff0c;使管理者与用户的工作和管理效率更高。对此体现出更多的意义和…

基于深度学习的端到端自动驾驶的最新进展:调研综述

基于深度学习的端到端自动驾驶的最新进展&#xff1a;调研综述 附赠自动驾驶学习资料和量产经验&#xff1a;链接 论文链接&#xff1a;https://arxiv.org/pdf/2307.04370.pdf 调研链接&#xff1a;https://github.com/Pranav-chib/ 摘要 本文介绍了基于深度学习的端到端自…

一次生产docker MTU=1500问题排查解决

和业务方进行联调&#xff0c;业务方调用我方服务&#xff0c; 我方服务部署在虚拟机的docker容器中 提供grpc服务&#xff0c; 通过公网vip lvs到宿主机端口 联调发现 ping 和 telnet我方端口都正常&#xff0c; 但是通过grpc协议调用不通&#xff0c;一直超时 在容器上和lv…

构建安全高效的用户登录系统:登录流程设计与Token验证详解

在当今数字化时代&#xff0c;用户登录系统是几乎所有在线服务的基础。然而&#xff0c;随着网络安全威胁的不断增加&#xff0c;设计一个安全可靠的登录系统变得至关重要。本文将深入探讨用户登录流程的设计原则以及Token验证的实现方式&#xff0c;带您了解如何构建安全高效的…

基于DCT和扩频的音频水印嵌入提取算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ......................................................................... N 10; %嵌入一…

RTOS中临界区嵌套保护的实现原理(基于RT-Thread)

0 前言 什么是临界区&#xff08;临界段&#xff09;&#xff1f; 裸机编程中由于不涉及线程和线程切换&#xff0c;因此没有临界区这一个概念。在RTOS中由于存在线程切换等场景&#xff0c;便有了临界区这个概念。简单来说&#xff0c;临界区就是不允许被中断的代码区域。什么…

在 Three.js 中,`USDZExporter` 类用于将场景导出为 USDZ 格式,这是一种用于在 iOS 平台上显示增强现实(AR)内容的格式。

demo 案例 在 Three.js 中&#xff0c;USDZExporter 类用于将场景导出为 USDZ 格式&#xff0c;这是一种用于在 iOS 平台上显示增强现实&#xff08;AR&#xff09;内容的格式。下面是关于 USDZExporter 的入参、出参、方法和属性的讲解&#xff1a; 入参 (Parameters): sc…

HTTP和HTTPS谁传输数据更安全?

1.HTTP HTTP在传输数据时&#xff0c;通常都是明文传输&#xff0c;也就是传输的数据没有进行加密。在这种情况下&#xff0c;如果传输的是一些敏感数据&#xff0c;比如某银行卡密码&#xff0c;就很容易被别人截获到&#xff0c;这就对我们的个人利益产生了威胁。 HTTP传输数…

Mysql数据库故障排查与优化

目录 前言 一、Mysql数据库的单实例故障 1.故障一——拒绝连接数据库 1.1故障内容 1.2问题分析 1.3解决方法 2.故障二——密码错误 2.1故障内容 2.2问题分析 2.3解决方法 3.故障三——数据库处理较慢 3.1故障内容 3.2问题分析 3.3解决方法 4.故障四——数据库表…

k8s 基础入门

1.namespace k8s中的namespace和docker中namespace是两码事&#xff0c;可以理解为k8s中的namespace是为了多租户&#xff0c;dockers中的namespace是为了网络、资源等隔离 2.deployment kubectl create #新建 kubectl aply #新建 更新 升级&#xff1a; 滚动升级&#x…

真实sql注入以及小xss--BurpSuite联动sqlmap篇

前几天漏洞检测的时候无意发现一个sql注入 首先我先去网站的robots.txt去看了看无意间发现很多资产 而我意外发现admin就是后台 之后我通过基础的万能账号密码测试or ‘1‘’1也根本没有效果 而当我注入列的时候情况出现了 出现了报错&#xff0c;有报错必有注入点 因此我…