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

        开放式最短路径优先 (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

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

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

相关文章

腾讯云24元香港服务器有用过的吗?性能如何?

香港云服务器可以选择腾讯云香港地域的轻量应用服务器,轻量2核2G配置、20M峰值带宽、40G SSD系统盘,优惠价格24元一个月,Linux系统是288元一年,Windows系统是360元一年,腾讯云百科txybk.com分享腾讯云香港轻量应用服务…

php去除字符串两边空格空字符串换行方法

在PHP中,可以使用以下几种方法去除字符串两边的空格、空字符串和换行符: 使用trim()函数去除字符串两边的空格和空字符串,例如: $str " Hello World! "; $trimmed trim($str); echo $trimmed; 使用preg_replace(…

代码随想录打卡第62天|● 503.下一个更大元素II ● 42. 接雨水

● 503.下一个更大元素II 题目:给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第…

C语言打印出九九乘法表

#include<stdio.h> int main() {int i,j;for(i1;i<9;i){for(j1;j<9;j){printf("%d*%d%d\t",i,j,i*j); //\t制表符}printf("\n"); //\n输出个回车} }

解决Lightroom Classic无法使用修改照片的问题

Lightroom Classic是一款广泛使用的照片编辑软件&#xff0c;但在使用过程中&#xff0c;可能会遇到无法修改照片的问题。修改照片这个模块无法使用&#xff0c;功能按钮呈现灰色&#xff0c;无法点击。本文将介绍几种常见的解决方法&#xff0c;帮助您快速解决Lightroom无法使…

【C语言】函数的系统化精讲(一)

&#x1f308;write in front :&#x1f50d;个人主页 &#xff1a; 啊森要自信的主页 &#x1f308;作者寄语 &#x1f308;&#xff1a; 小菜鸟的力量不在于它的体型&#xff0c;而在于它内心的勇气和无限的潜能&#xff0c;只要你有决心&#xff0c;就没有什么事情是不可能的…

Redis-使用java代码操作Redis->java连接上redis,java操作redis的常见类型数据存储,redis中的项目应用

java连接上redisjava操作redis的常见类型数据存储redis中的项目应用 1.java连接上redis package com.zlj.ssm.redis;import redis.clients.jedis.Jedis;/*** author zlj* create 2023-11-03 19:27*/ public class Demo1 {public static void main(String[] args) { // …

2022年电工杯数学建模B题5G网络环境下应急物资配送问题求解全过程论文及程序

2022年电工杯数学建模 B题 5G网络环境下应急物资配送问题 原题再现&#xff1a; 一些重特大突发事件往往会造成道路阻断、损坏、封闭等意想不到的情况&#xff0c;对人们的日常生活会造成一定的影响。为了保证人们的正常生活&#xff0c;将应急物资及时准确地配送到位尤为重要…

chromedp库编写程序

步骤1&#xff1a;首先&#xff0c;我们需要导入chromedp库&#xff0c;以便使用它来下载网页内容。 import chromedp 步骤2&#xff1a;然后&#xff0c;我们需要创建一个函数&#xff0c;该函数接受一个URL作为参数&#xff0c;并使用chromedp库下载该URL的内容。 func do…

pytorch复现_conv2d

import numpy as npdef conv2d(inputs, kernels, bias, stride, padding):"""正向卷积操作inputs: 输入数据&#xff0c;形状为 (C, H, W)kernels: 卷积核&#xff0c;形状为 (F, C, HH, WW)&#xff0c;C是图片输入层数&#xff0c;F是图片输出层数bias: 偏置&…

Synchronized与锁升级

一&#xff1a;java对象内存布局 对象在堆内存的存储布局可以划分为三个部分&#xff1a;对象头&#xff08;Header&#xff09;、实例数据&#xff08;Instance Data&#xff09; 和对齐填充 二&#xff1a;对象在堆内存中的存储布局 1&#xff1a;对象头 &#xff08;在64…

睿思BI已支持3D图形

从睿思BI旗舰版V5.3开始&#xff0c;系统支持如下3D图形&#xff1a; 3D地球 3D地图 飞线图 3D金字塔 睿思BI采用ThreeJS实现3D功能&#xff0c;用户也可以基于系统接口&#xff0c;采用ThreeJS在数据大屏中实现自己的3D图形。 系统演示地址&#xff1a;睿思BI旗舰版https://…

C#,数值计算——偏微分方程,Mglin的计算方法与源程序

1 文本格式 using System; using System.Collections.Generic; namespace Legalsoft.Truffer { public class Mglin { private int n { get; set; } private int ng { get; set; } private double[,] uj1 { get; set; } private Lis…

【原创】java+swing+mysql校园共享单车管理系统设计与实现

摘要&#xff1a; 校园共享单车作为一种绿色、便捷的出行方式&#xff0c;在校园内得到了广泛的应用。然而&#xff0c;随着单车数量的增加&#xff0c;管理难度也不断加大。如何提高单车的利用率和管理效率&#xff0c;成为校园共享单车发展面临的重要问题。本文针对这一问题…

苹果手机微信照片过期怎么恢复?分享3个实用技巧!

很多时候&#xff0c;我们会在微信中给家人和朋友分享一些有趣的照片。但有时会因为各种原因&#xff0c;比如还没有来得及查看或保存&#xff0c;从而导致这些照片过期失效。 如果这些图片我们还需要用到&#xff0c;那么将它们找回来是很有必要的事情。微信照片过期怎么恢复…

LeetCode.6 N字形变换

一开始想的是真的创建一个数组 去按照题目所给的要求填入数据 最后输出不为空的数组项 但是不仅时间复杂度高 而且错误频繁出现 最终也没有提交成功 查阅题解后发现数组并不重要 假设我们忽略掉数组中的那些空白项 最终输出的结果就是numRows行的字符串的拼接 string conver…

记一次pdjs时安装glob出现,npm ERR! code ETARGET和npm ERR! code ELIFECYCLE

如往常一样&#xff0c;我使用pdjs来编译proto文件&#xff0c;但出现了以下报错&#xff1a; 大致就是pdjs的util在尝试执行npm install glob^7.2.1 escodegen^1.13.0时出错了 尝试手动执行安装&#xff0c;escodegen被正确安装&#xff0c;但glob^7.2.1出错 npm ERR! code E…

一个JS版寻路的实现

js版的寻路的测试 20231104_161146 path get_v8: function (x_inc, y_inc) {if (x_inc 0) {if (y_inc < 0) {return [[0, -1], [-1, -1], [1, -1], [-1, 0], [1, 0], [-1, 1], [1, 1], [0, 1]];} else if (y_inc > 0) {return [[0, 1], [-1, 1], [1, 1], [-1, 0], [1, 0…

The service already exists! 安装mysql数据库错误!

当你输入mysql install命令时报The service already exists! 报错的原因是服务已经存在&#xff01; 说明你之前可能已经装过了。 解决方法&#xff1a; 输入sc delete mysql 提示DeleteService 成功,则表示删除成功&#xff0c;你就可以重新输入mysqld install了。 最后显…