路由器基础(五): OSPF原理与配置

news2024/11/28 4:47:08

        开放式最短路径优先 (Open   Shortest   Path    First,OSPF)  是一个内部网关协议 (Interior    Gateway     Protocol,IGP),用于在单一自治系统(Autonomous   System,AS) 内决策路由。OSPF 适合小型、中型、较大规模网络。OSPF 采用Dijkstra的最短路径优先算法 (Shortest Path Firs, SPF) 计算最小生成树,确定最短路径。OSPF 基于IP, 协议号为89, 采用组播方式交换OSPF包。OSPF的组播地址为224.0.0.5 (全部OSPF路由器)和224.0.0.6 (指定路由器)。OSPF使用链路状态广播 (LinkState Advertisement,LSA) 传送给某区域内的所有路由器。

一、AS

        自治系统 (AS) 是指使用同一个内部路由协议的一组网络。Internet 可以被分割成许多不同的自治系统。换句话说, Internet 是由若干自治系统汇集而成的。每个AS 由一个长度为16位的编码标识,由Internet地址授权机构 (Internet Assigned Numbers Authority,IANA)  负责管理分配。AS编号分为公有AS  (编号范围1~64511)和私有AS (编号范围64512~65535),公有AS编号需要向IANA申请。

二、IGP

        内部网关协议 (Interior Gateway Protocol,IGP) 在同一个自治系统内交换路由信息。IGP的主要目的是发现和计算自治域内的路由信息。IGP使用的路由协议有RIP、OSPF、IS-IS等。

三、EGP

        外部网关协议 (Exterior Gateway Protocol,EGP) 是一种连接不同自治系统的相邻路由器之间交换路由信息的协议。EGP使用的路由协议有BGP

四、IGP EGPAS三者关系

六、链路状态路由协议

        链路状态路由协议基于最短路径优先 (SPF) 算法。该路由协议提供了整网的拓扑视图,根据拓扑图计算到达每个目标的最优路径;当网络变化时触发更新,发送周期性更新链路状态通告,不是相互交换各自的整张路由表。

        运行距离矢量路由协议的路由器会将所有它知道的路由信息与邻居共享,当然只是与直连邻居共享。

链路状态和距离矢量路由协议对比:

距离矢量路由协议

链路状态路由协议

发布路由触 发条件

周期性发布路由信息

当网络扑拓变化时,发布路由信息

发布路由信 息的路由器

所有路由器

指定路由器(Designated Router, DR)

发布方式

广播

组播

应答方式

不要求应答

要求应答

支持协议

RIP、I GRP、BGP(增 强型距离矢量路由协议)

OSPF、IS-IS

 七、区域 (Area)

        OSPF 是分层路由协议,将网络分割成一个“主干”连接的一组相  互独立的部分,这些相互独立的部分称为“区域” (Area),   “主 干”部分称为“主干区域”。每个区域可看成一个独立的网络,区 域的OSPF 路由器只保存该区域的链路状态。每个路由器的链路状态数据可以保持合理大小,计算路由时间、报文数量就不会过大。

八、OSPF的5类报文

        OSPF 使用IP包头封装5类报文,用来交换链路状态广播 (Link State Advertisement,LSA)

        注意: LSA 本身不是OSPF 的消息,而是一类数据结构,存放在路由器的链路状态库 (Link-State  DataBase,LSDB) 中,并可包含在LSU 消息中进行交换。LSA包括有关邻居和通道成本的信息。接收路由器用LSA 维护其路由选择表。

LSA类型

产生者

传播区域

描述

LSA1(Router LSA)

所有路由 器

只在所描述的区 域内泛洪

描述某区域内路由器端口链 路状态的集合

LSA 2(Network LSA)

DR或BDR

只在DR、BDR所  属的区域内泛洪

描述广播型网络和NBMA络,包含了该网络上所连接 路由器Route ID列表

LSA3(Network

summary LSA)

ABR

通告给其他相关 区域

区域内所有网段的路由信息

LSA 4(ASBR

Summary LSA)

ABR

通告给除AS BR 所在区域的其他 相关区域

描述到ASBR的路由

LSA5(Autonomous

System

External LSA)

ASBR

通告到所有的区 域(除了Stub  域和NSSA区域)

描述到AS外部的路由

 (1)Hello

        Hello 用于发现邻居,保证邻居之间keepalive,      NBMA网络上  选举指定路由器 (DR)  备份指定路由器 (BDR)  Hello   文的发送间隔时间是10秒,默认无效时间间隔是Hello时间间隔的4 倍,即如果在40秒内没有从特定的邻居接收到这种分组,路由器就 认为那个邻居不存在了。 Hello 包应该包含:源路由器的RID源路 由器的Area ID源路由器接口的掩码、源路由器接口的认证类型和 认证信息、源路由器接口的Hello包发送的时间间隔、源路由器接口的无效时间间隔、优先级、 DR/BDR接口IP 地址、五个标记位、源路由器的所有邻居的RID Hello 组播地址为224.0.0.5

(2)数据库描述 (DD DBD) 消息

        用来交换每个LSA 的摘要版本, 一般出现在初始拓扑交换中,这样路由器可以获悉邻接路由器的LSA 列表并用于选择主从关系。 LSA描述了路由器的所有链路、接口、路由器的邻居及链路状态信息。

(3)链路状态请求 (LSR) 消息。

        请求一个或多个LSA,  告知邻接路由器提供LSA的详细信息给发送路由器。

(4)链路状态更新 (LSU) 消息。

        包含LSA 的详细信息, 一般用来响应LSR 消息。

( 5 )       (LSAck)  

        用来确认已收到LSU 消息。

        上述消息可以支持路由器发现邻接路由器 (Hello),  学习其本身链路状态库 (LSDB)  中没有的LSA(DD),    请求并可靠交换LSA(LSR/LSU),    监测邻接路由器是否发生拓扑改变。
        LSA每30分钟重传1次。

九、OSPF 工作流程

        (1)启动OSPF 进程的接口,发送Hello 消息。

        (2)交换Hello 消息建立邻居关系。

        (3)每台路由器对所有邻居发送LSA 

        (4)路由器接收邻居发过来的LSA 并保存在LSDB 中,发送一个LSAcopy给其他邻居。

        (5)LSA 泛洪扩散到整个区域,区域内所有路由器都会形成相同LSDB

        (6)当所有路由器的LSDB 完全相同时,每台路由器将以自身为根,使用最短路径算法算出到达每个目的地的最短路径。

        (7)每台路由器通过最短路径构建出自己的路由表,包含区域内路由(最优)、区域间路由、 E1外部路由和E2外部路由。

十、BRBDR选举

        在DR BDR 出现之前,每一台路由器及其所有邻居成为全连接的OSPF邻接关系,关系数为n×(n-1)/2   在多址网络中,路由器发出的LSA从邻居的邻居发回来,导致网络上产生很多LSA的复制,所以基于这种考虑产生了DR BDR 网段中的所有路由器都从DR BDR 交换信息,而不是彼此交换信息。 DR BDR 将信息转交给其他所有路由器,用DR BDR 方式的连接数为2×(n-1)。

DR/BDR的选举过程:

        (1)选举路由器必须进入双向会话 (Two-way)    状态,优先级别必须大于0(优先级为0,则不参与选举)。

        (2)选举优先级最高的路由器为DR,  次优的为BDR。

        (3)如果优先级相同,则选举Router-id 最大的路由器。

        (4)如果DR/BDR已经存在,而又有新的OSPF路由器加入,即使该路由器优先级最高,也不剥夺现有DR/BDR 的角色。

        (5)如果DR失效,则BDR接管DR, 并重新激活一个新BDR选举进程。

十一、OSPF选举Router-id 的规则

        (1)手动配置的Router-id为首选。

        (2)用所有loopback 中最大的IP作为Router-id。

        (3)用所有活动物理接口中最大的IP作为Router-id   (用作Router-id 的接口不一定非要运行OSPF协议)。

十二、OSPF 网络类型

        OSPF 网络类型分为点到点网络 (Point-to-Point)、 广播型网络(Broadcast) 非广播型 (NonBroadcast     Multiaccess,NBMA)  网络、点到多点网络 (Point-to-Multicast)、  虚链接 (Virtual     Link)

OSPF网络类型

特点

数据传输方式

点到点网络

(Point-to-Point)

有效邻居总是可以形成邻居关系

组播地址为224.0.0.5,该 地址称为AllSPFRouters

点到多点网络

(Point-to-Multicast)

不选举DR/BDR,可看作是多个 Point-to-Point链路的集合

单播(Unicast)

广播型网络

(Broadcast)

选举DR/BDR,所有路由器和 BR/BDR交换信息。DR/BDR不 能被抢占。广播型网络有:以太 网、Token RingFDDI

DR、BDR组播到224.0.0.5 ; DR/BDR侦听224.0.0.6,

该地址称为AllDRouters

非广播型

(NBMA)

没有广播,需手动指定邻居,

Hello消息单播。NBMA网络有 X.25、Frame Relay和ATM

单播

十三、OSPF网络接口COST 

         OSPF 协议中每个接口根据其速率不同,都有一个默认的公式计算的

cost值。

        OSPF 协议中接口的开销计算公式:接口开销=参考带宽/逻辑带宽

        注意: OSPF 的接口带宽默认为100Mbps, 因此Ethernet(100Mbit/s)对应的开销的缺省值是1。

十四、OSPF  配置

        创建OSPF 进程,指定路由器的RouterID, 启动OSPF OSPF 配置的前提。

(1)创建OSPF进程。

system-view                                //进入系统视图

ospf  [process-id|router-id  router-id  ]               //启OSPF 进程,进入OSPF视图

//process-id为进程号,缺省值为1,这个值只有本地意义; router-id router-id 是路由器的ID

area    area-id                                        //进入OSPF 区域视图

//OSPF区域分为骨干区域 (Area 0)  和非骨干区域。骨干区域负责区域之 间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发

network address wildcard-mask [description text] 

//配置区域所包含的网段。其中, description 字段用来为OSPF指定网段配置描述信息

(2)在接口上启动OSPF

system-view                                                     //进入系统视图

interface interface-type interface-number       //进入接口视图

ospf enable [process-id ]area area-id             //在接口上启动OSPF

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

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

相关文章

Go Gin中间件

Gin是一个用Go语言编写的Web框架,它提供了一种简单的方式来创建HTTP路由和处理HTTP请求。中间件是Gin框架中的一个重要概念,它可以用来处理HTTP请求和响应,或者在处理请求之前和之后执行一些操作。 以下是关于Gin中间件开发的一些基本信息&am…

【计算机网络 - 自顶向下方法】第一章习题答案

P2 Question:   式 (1-1) 给出了经传输速率为 R 的 N 段链路发送长度为 L 的一个分组的端到端时延。 对于经过 N 段链路一个接一个地发送 P 个这样的分组,一般化地表示出这个公式。 Answer:    N ∗ L R \frac{N*L}{R} RN∗L​ 时&…

【移远QuecPython】EC800M物联网开发板的内置GNSS定位获取(北斗、GPS和GNSS)

【移远QuecPython】EC800M物联网开发板的内置GNSS定位获取(北斗、GPS和GNSS) 测试视频(其中的恶性BUG会在下一篇文章阐述): 【移远QuecPython】EC800M物联网开发板的内置GNSS定位的恶性BUG(目前没有完全的…

Python语言:容器操作知识点总结清单

容器通用操作表格: 列表知识点清单: 元组知识点清单: 字典知识点清单: 集合知识点清单: 字符串知识点清单: 说明:本次知识点总结可能会有遗漏,没有做到面面俱到。

联通智网科技正式入选国家级专精特新“小巨人”企业

近日,北京市经济和信息化局发布《第五批专精特新“小巨人”企业公告名单》,根据工业和信息化部发布的《工业和信息化部关于公布第五批专精特新“小巨人”企业和通过复核的第二批专精特新“小巨人”企业名单的通告》,联通智网科技股份有限公司…

Java自学第3课:Java语言流程控制和字符串

1 复合语句 复合语句是以区块为单位的语句&#xff0c;也就是{}内的内容。 2 条件语句 if (布尔表达式){语句序列}else{语句序列} 有个好玩的是&#xff0c;对年龄段的分段&#xff0c;其实以前的思维是有点冗余的&#xff0c;比如a<100 & a>90&#xff0c;在复合…

蛋白质N端测序服务

表达纯化后的蛋白产物&#xff0c;特别是蛋白品的分析过程中&#xff0c;需要对蛋白的末端进行验证&#xff0c;以保证表达纯化产物的N端和C端序列准确。Edman降解法是蛋白的N端序列分析中非常成熟的方法之一&#xff0c;有着广泛的应用。卡梅德生物采用岛津公司Edman测序系统&…

C++定义一个 Student 类,在该类定义中包括:一个数据成员 score(分数)及两个静态数据 成员 total(总分)和学生人数 count

完整代码&#xff1a; /*声明一个Student类&#xff0c;在该类中包括一个数据成员score&#xff08;分数&#xff09;、两个静态数据成员total_score&#xff08;总分&#xff09;和count&#xff08;学生人数&#xff09;&#xff1b;还包括一个成员函数account&#xff08;&…

Redis缓存穿透、击穿、雪崩问题原理和解决方案

目录 一、Redis缓存穿透1.1、缓存穿透原理1.2、缓存穿透代码演示1.3、缓存穿透解决方案解决方案一&#xff08;数据库中查询不到数据也将key进行缓存&#xff09;解决方案二&#xff08;使用布隆过滤器&#xff09; 二、Redis缓存击穿&#xff08;缓存失效&#xff09;三、Redi…

KV STUDIO对plc的读取与电焊机的配料设置

今天又开始了明天的工作总结&#xff0c;希望对于看小编博客的粉丝有所帮助&#xff0c;前程似锦&#xff01;&#xff01;&#xff01; KV STUDIO对plc的读取 一&#xff0c;先将电脑与设备相连接&#xff0c;有许多种发生&#xff0c;小编这使用的是以太网方式 二&#xff0…

倒计时丨距离RestCloud新品发布仅有6天!

6天倒计时&#xff0c;RestCloud零代码集成自动化平台重磅发布 ⏰11月9日14:00&#xff0c;期待您的参与&#xff01; 点击报名&#xff1a;http://c.nxw.so/dfaJ9

【LeetCode刷题-链表】--146.LRU缓存

146.LRU缓存 方法一&#xff1a;哈希表双向链表 使用一个哈希表和一个双向链表维护所有在缓存中的键值对 双向链表按照被使用的顺序存储了这些键值对&#xff0c;靠近头部的键值对是最近使用的&#xff0c;而靠近尾部的键值对是最久使用的哈希表即为普通的哈希映射&#xff0…

Java基础之类型(内涵面试题)

目录 一、自动类型转换&#xff1a; 二、强制类型转换&#xff1a; 1.强制类型转换可能造成数据丢失&#xff08;溢出&#xff09;。 2.浮点型强转成整型&#xff0c;直接丢掉小数部分&#xff0c;保留整数部分返回。 三、自增、自减&#xff08;、--&#xff09;有关面试题…

JavaScript设计模式之发布-订阅模式

发布者和订阅者完全解耦&#xff08;通过消息队列进行通信&#xff09; 适用场景&#xff1a;功能模块间进行通信&#xff0c;如Vue的事件总线。 ES6实现方式&#xff1a; class eventManager {constructor() {this.eventList {};}on(eventName, callback) {if (this.eventL…

【凡人修仙传】定档曝光,最新更新时间有所调整,期待值暴涨

Hello,小伙伴们&#xff0c;我是小郑继续为大家深度解析国漫资讯。 深度爆料&#xff0c;备受瞩目的动漫作品《凡人修仙传》终于在新年之际宣布定档了&#xff01;这个消息让广大动漫爱好者们激动不已。在某知名视频网站上&#xff0c;这部作品的官方发布了一个名为“新年番定…

在 Python 中创建奇数列表

我们将在本文中介绍在 Python 中创建奇数列表的不同方法。 Python 中的奇数 定义奇数有两种方法&#xff0c;第一种是整数不能被 2 整除时的情况。另一种是整数除以 2 时余数为 1 的情况。 例如&#xff0c;1、5、9、11、45等都是奇数。 从列表中获取奇数的方法有很多&#x…

Attention is all you need 论文阅读

论文链接 Attention is all you need 0. Abstract 主要序列转导模型基于复杂的循环或卷积神经网络&#xff0c;包括编码器和解码器。性能最好的模型还通过注意力机制连接编码器和解码器提出Transformer&#xff0c;它 完全基于注意力机制&#xff0c;完全不需要递归和卷积对两…

为什么我们要重视学历提升?因为“一纸文凭”就是我们重要的通行证!

在当下社会内卷越来越紧的时代&#xff0c;“一纸文凭”就是我们最重要的通行证&#xff0c;可能学历背景不够好&#xff0c;在职场上就难以获得发展&#xff0c;未来规划也无法成功。 学历提升的重要性 1.就业 现在的就业市场越来越看重一个人的学历出身&#xff0c;单位招…

【小白的Spring源码手册】 Bean的扫描、装配和注册,面试学习可用

目录 前言源码学习Bean配置1. 注解2. xml配置 Bean扫描、装配、注册1. 扫描2. 装配BeanDefinition3. 校验BeanDefinition4. 注册BeanDefinition 总结 前言 如今Spring框架功能众多&#xff0c;每次打开Spring源码&#xff0c;要么就是自顶向下从整个框架来了解Spring整体流程&…

YOLOv5:按每个类别的不同置信度阈值输出预测框

YOLOv5&#xff1a;按每个类别的不同置信度阈值输出预测框 前言前提条件相关介绍YOLOv5&#xff1a;按每个类别的不同置信度阈值输出预测框预测修改detect.py输出结果 验证修改val.py输出结果 参考 前言 由于本人水平有限&#xff0c;难免出现错漏&#xff0c;敬请批评改正。更…