OSPF协议详解

news2024/12/23 22:24:43

静态缺点

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 network

  nbma       Specify OSPF NBMA network

  p2mp (不选DR但谁给路由谁就是下一跳)      Specify OSPF point-to-multipoint network

  p2p        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.coloradmin.cn/o/1574536.html

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

相关文章

Pandas分箱/离散化cut与qcut的区别

cut与qcut区别 1、pd.cut()2、pd.qcut()3、cut与qcut区别 Pandas提供了智能剪贴功能&#xff1a;pd.cut()与pd.qcut()&#xff0c;它们通常用于更方便直观地处理关系型或标签型数据&#xff0c;将数据进行分箱/离散化 1、pd.cut() 我们可以通过两种方式使用cut()函数&#xff…

C++的并发世界(七)——互斥锁

0.死锁的由来 假设有两个线程T1和T2&#xff0c;它们需要对两个互斥量mtx1和mtx2进行访问。而且需要按照以下顺序获取互斥量的所有权&#xff1a; -T1先获取mte1的所有权,再获取mt2的所有权。 -T2先获取 mtx2的所有权。再铁取 mtx1的所有权。 如果两个线程同时执行&#xff0c…

Android Studio学习4——gradle文件

视频讲解 https://developer.android.google.cn/studio/releases/gradle-plugin.htmIl#updating-gradle

二分查找与搜索树高频问题-算法通关村

二分查找与搜索树高频问题-算法通关村 1 基于二分查找的拓展问题 1.1 山脉数组的封顶索引 LeetCode852&#xff1a;这个题的要求有点啰嗦&#xff0c;核心意思就是在数组中的某位位置i开始&#xff0c;从0到 i 是递增的&#xff0c;从i1到数组最后是递减的&#xff0c;让你找到…

JavaEE 初阶篇-深入了解线程池(线程池创建、线程池如何处理任务)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 线程池概述 1.1 线程池的优点 1.2 不使用线程池的问题 1.3 线程池的工作原理图 1.4 如何创建线程池&#xff1f; 2.0 通过 ThreadPoolExecutor 类自定义创建线程…

数据结构与算法笔记:递归函数设计技巧

ACM金牌带你零基础直达C语言精通-课程资料 本笔记属于船说系列课程之一&#xff0c;课程链接&#xff1a; 哔哩哔哩_bilibilihttps://www.bilibili.com/cheese/play/ep66799?csourceprivate_space_class_null&spm_id_from333.999.0.0 你也可以选择购买『船说系列课程-年度…

Tensorflow2.0笔记 - 自定义Layer和Model实现CIFAR10数据集的训练

本笔记记录使用自定义Layer和Model来做CIFAR10数据集的训练。 CIFAR10数据集下载&#xff1a; https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz 自定义的Layer和Model实现较为简单&#xff0c;参数量较少&#xff0c;并且没有卷积层和dropout等&#xff0c;最终准确率…

穿越代码之海:探寻结构体深层逻辑,展望未来应用新天地

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看&#xff0c;已成习惯 创作不易&#xff0c;多多支持&#xff01; 结构体作为一种数据结构&#xff0c;其定义和特点决定了它在各种应用中的广泛适用性。随着科技的进步和新兴行业的不断涌现&#xf…

测试自动化流程设计思路

a) 背景介绍 基于当前互联网敏捷开发的现状&#xff0c;手工人力测试已不足以满足当前快速的版本迭代&#xff1b;以下将介绍一种可实现的自动化设计与使用。 b) 当前版本迭代流程 研发同学从代码库master分支拉出新代码进行研发工作得开发开发完成之后提交到代码库测试同学介入…

从概念到实践:探索独立站在当代电商中的关键作用

随着数字化时代的到来&#xff0c;电子商务已成为全球商业生态的核心组成部分。在这个不断变化的市场中&#xff0c;独立站作为企业建立在线身份和拓展业务的强大工具&#xff0c;正逐步展现出其不可替代的价值。 从概念到实践&#xff0c;本文将深入探索独立站在当代电商中的关…

C++从入门到精通——类的作用域及类的实例化

类的作用域及类的实例化 前言一、类的作用域二、类的实例化引例类是对对象进行描述的示例 一个类可以实例化出多个对象示例 示例 前言 类的作用域是指类中定义的变量和方法的可见性和可访问性范围。在类的内部&#xff0c;所有成员&#xff08;包括属性和方法&#xff09;都具…

LeetCode-51. N 皇后【数组 回溯】

LeetCode-51. N 皇后【数组 回溯】 题目描述&#xff1a;解题思路一&#xff1a;回溯&#xff0c; 回溯三部曲。验证是否合法只需要检查:1.正上方&#xff1b;2. 左上方&#xff1b;3.右上方。因为是从上到下&#xff0c;从左到右遍历的&#xff0c;下方不可能有皇后。解题思路…

Day60:WEB攻防-XMLXXE安全无回显方案OOB盲注DTD外部实体黑白盒挖掘

目录 XML&XXE-传输-原理&探针&利用&玩法 XXE 黑盒发现 XXE 白盒发现 XXE修复防御方案 有回显 无回显 XML&XXE-黑盒-JSON&黑盒测试&类型修改 XML&XXE-白盒-CMS&PHPSHE&无回显 知识点&#xff1a; 1、XXE&XML-原理-用途&…

Unity与CocosCreator对比学习二

一、锚点与适配 1.在Creator中 适配通过锚点、位置和Widget达到适配目的&#xff1b;锚点是节点在其父节点坐标系中坐标对其点&#xff0c;其x,y范围在[0, 1]之间&#xff1b; 锚点为(0, 0)时在节点自身的左下角&#xff0c;节点坐标指其左下角在父节点中的坐标&#xff1b;锚…

【2024系统架构设计】案例分析- 5 Web应用

目录 一 基础知识 二 真题 一 基础知识 1 Web应用技术分类 大型网站系统架构的演化:高性能、高可用、可维护、应变、安全。 从架构来看:MVC,MVP,MVVM,REST,Webservice,微服务。

内存管理(SRAM)

内存管理介绍 内存管理实际上就是指管理SRAM. 内存管理&#xff0c;是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如 何高效、快速的分配&#xff0c;并且在适当的时候释放和回收内存资源。内存管理的实现方法有很多种&#xff0c;其实最终都是要实现两…

用vscode仿制小米官网

html内容: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><link rel&quo…

无线基本认识和配置

1、无线局域网 IEEE 802.11标准 根据应用范围分类 WPAN --- 个人无线网络 NFC、ZIgbee、Bluetooth WLAN --- 无线局域网 WiFi&#xff0c;使用到WPAN技术 WMAN --- 无线城域网 WiMax 802.16 WWAN --- 无线广域网 GSM、CDMA、WCDMA、LTE、5G、TD-SCDMA 2、…

PG 中的 MAXALIGN 及对齐分配内存(MemoryContextAllocAligned)

在PG源码中&#xff0c;MAXALIGN这个宏&#xff0c;返回最接近输入数字&#xff08;大于&#xff09;且能整除8的数&#xff0c;仅此而已。 常用于内存相关的计算&#xff0c;在PG代码中使用的相当广泛&#xff0c;为啥要用这个MAXALIGN&#xff1f;我估计是基于 “CPU访问对齐…

数据库同步方案Sqlserver

数据库同步方案探究 随着信息技术的迅猛发展&#xff0c;数据库在各个领域的应用日益广泛。而在分布式系统、云计算、大数据等场景下&#xff0c;数据库同步成为了一个至关重要的问题。数据库同步不仅关乎数据的完整性和一致性&#xff0c;还直接影响到系统的稳定性和性能。因…