IP路由基础+OSPF 基础

IP路由

RIB与FIB

RIB:Routing Information Base,路由信息库 ,路由器的控制平面
FIB:Forwarding Information Base,转发信息库,路由器的数据平面

路由信息库主要是记录直连路由以及协议宣告的路由信息,转发信息库主要是记录路由转发信息,记录可以通过那条路由进行转发的路由信息。

路由表参数

路由表中有很多参数,例如nexthop为下一跳,protocol为路由协议;其中Preference用于不同路由协议间路由优先级的比较,Cost用于同一种路由协议内部不同路由的优先级的比较。

FIB表信息查看命令:display fib [ slot-id ]
slot-id:显示指定槽位号的FIB表信息。整数形式,取值范围请根据设备实际配置选取。

Flag:当前标志,G、H、U、S、D、B的组合。
G(Gateway):网关路由,表示下一跳是网关。
H(Host):主机路由,表示该路由为主机路由。
U(Up):可用路由,表示该路由状态是Up。
S(Static):静态路由。
D(Dynamic):动态路由。
B(Black Hole):黑洞路由,表示下一跳是空接口。

TunnelID:表示转发表项索引。该值不为0时,表示匹配该项的报文通过隧道转发(如:MPLS隧道转发)。该值为0时,表示报文不通过隧道转发。

数据转发流程

路由的三种来源

⦁    直连路由:直连接口所在网段的路由,由设备自动生成。
⦁    静态路由:由网络管理员手工配置的路由条目。
⦁    动态路由:路由器通过动态路由协议(如OSPF、IS-IS、BGP等)学习到的路由。
⦁    BGP(Border Gateway Protocol,边界网关协议)是一种实现AS(Autonomous System,自        治系统)之间的路由可达,并选择最佳路由的距离矢量路由协议。
AS是指在一个实体管辖下的拥有相同选路策略的IP网络。

路由引入

指的是路由信息从一种路由协议发布到另一种路由协议的操作

作用:

通过路由引入,可以实现路由信息在不同协议之间进行传递

执行路由引入时,还可以部署路由控制,从而实现对业务流量的灵活把控

配置(路由引入)

配置往往是在引入的路由器上进行配置,而不是引出的路由器(路由引入是具有方向性的)

路由引入的参数

路由优先级:路由器在进行路由选择时,根据不同的路由协议和配置参数,为每个路由设置一个优先级。优先级越高的路由,其路径将被优先选择作为数据包的传输路径。

路由回灌:路由回灌是一种优化技术,用于在网络中将动态学习或静态配置的路由信息重新注入到路由协议中。当网络拓扑发生变化时,路由器可以通过回灌操作更新路由表,从而适应新的网络情况。

路由度量值:路由度量值是用来衡量路由的选择优劣的指标。它可以基于各种因素进行计算,如跳数、带宽、延迟、可靠性等。路由器根据路由度量值来评估可选路由的优劣,并选择度量值最低的路由作为最佳路径。

常见路由的优先级

 

 OSPF

DR与BDR

DR与BDR类似于选举老大,等老大不在的时候备用管事儿,其中DR为老大BDR为备用。DR和BDR的选举是为了选择一个具有较高优先级的路由器。

选举过程:

  1. 首先,每个OSPF路由器都会发送Hello消息来宣告自己的存在,并与相邻的路由器建立邻居关系。
  2. 每个路由器在Hello消息中包含自己的路由器优先级(Router Priority)值。默认情况下,路由器优先级为1。
  3. 当路由器收到Hello消息后,会比较对方发送的路由器优先级和自己当前的DR和BDR的优先级。
  4. 如果对方发送的路由器优先级大于自己当前的DR和BDR的优先级,那么当前路由器会更新自己的DR和BDR,并将对方设置为BDR。
  5. 如果对方发送的路由器优先级等于自己当前的DR和BDR的优先级,并且对方的路由器ID(Router ID)比自己大,则当前路由器会更新自己的DR和BDR,并将对方设置为BDR。
  6. 如果对方发送的路由器优先级等于自己当前的DR和BDR的优先级,并且对方的路由器ID比自己小,则当前路由器不会更新DR和BDR的角色。

不同网络类型中DR与BDR的选举

 

动态路由协议分类

 

⦁    BGP使用一种基于距离矢量算法修改后的算法,该算法被称为路径矢量(Path Vector)算法。因此在某些场合下,BGP也被称为路径矢量路由协议。
⦁    IGP(内部网关协议)在同一个自治系统内交换路由信息,IGP的主要目的是发现和计算自治域内的路由信息。
⦁    EGP(外部网关协议)主要用于AS(自治系统)之间的互联。

链路状态路由协议 

基本原理:

每个路由器都会获取网络拓扑信息,并计算出到达其他路由器的最佳路径。它通过交换链路状态信息来维护网络的拓扑状态,各个路由器根据收到的信息构建一个全局的网络拓扑图,然后使用某种算法计算最短路径。

在链路状态路由协议中,每个路由器都会周期性地广播它的链路状态信息,或者通过多播方式发送给周围的邻居路由器。当一条链路发生故障或者网络拓扑发生变化时,路由器会更新自己的链路状态信息,并重新计算最佳路径。

 

链路状态路由协议有四个步骤:
⦁    第一步是建立相邻路由器之间的邻居关系。
⦁    第二步是邻居之间交互链路状态信息和同步LSDB。
⦁    第三步是进行优选路径计算。
⦁    第四步是根据最短路径树生成路由表项加载到路由表。

 

Router ID

 Router ID一旦选定,之后如果要更改的话就需要重启OSPF进程。

区域

度量值

ospf三大表

邻居表

 lsdb表

路由表

报文格式以及类型

 

  1. OSPF Hello(Hello报文):

    • 用途:邻居发现和建立邻居关系。
    • 报文格式:报文头部信息(Version、Router ID、Area ID等)和邻居列表。
  2. OSPF Database Description(DD报文):

    • 用途:用于同步链路状态数据库(LSDB)。
    • 报文格式:报文头部信息(Version、Router ID、Area ID等)、参数字段(MTU、Options等)和LSA描述符(包括LSA类型、LSA序列号、LSA长度等)。
  3. OSPF Link State Request(LSR报文):

    • 用途:请求指定的LSA(Link State Advertisement)。
    • 报文格式:报文头部信息(Version、Router ID、Area ID等)和请求的LSA列表。
  4. OSPF Link State Update(LSU报文):

    • 用途:传输LSA。
    • 报文格式:报文头部信息(Version、Router ID、Area ID等)和LSA列表。
  5. OSPF Link State Acknowledgement(LSAck报文):

    • 用途:确认收到的LSU报文。
    • 报文格式:报文头部信息(Version、Router ID、Area ID等)和确认的LSA列表。

 

 重要字段解释
⦁    Version :对于当前所使用的OSPFv2,该字段的值为2。
⦁    Router ID:表示生成此报文的路由器的Router ID。
⦁    Area ID:表示此报文需要被通告到的区域。
⦁    Type:类型字段。
⦁    Packet length:表示整个OSPF报文的长度,单位是字节。
⦁    Checksum:校验字段,其校验的范围是整个OSPF报文,包括OSPF报文头部。
⦁    Auth Type:为0时表示不认证;为1时表示简单的明文密码认证;为2时表示加密(MD5)认证。
Authentication:认证所需的信息。该字段的内容随AuType的值不同而不同。 

ospf工作过程

  1. 邻居发现和建立邻居关系:

    • 路由器启动时发送Hello报文,用于邻居发现。
    • 路由器之间通过比较Hello报文中的参数建立邻居关系。
  2. 链路状态数据库(LSDB)同步:

    • 路由器发出Database Description(DD)报文,携带自己所知道的LSA序列号列表,以与邻居交换信息。
    • 路由器收到DD报文后,比较自己的LSA序列号列表,并发送Link State Request(LSR)报文请求缺失的LSA。
    • 路由器根据收到的LSR报文,发送Link State Update(LSU)报文携带请求的LSA。
  3. 最短路径计算:

    • 每个路由器收集到足够的LSA后,构建链路状态数据库(LSDB)。
    • 使用Dijkstra算法基于链路状态信息计算最短路径树(Shortest Path Tree),确定到达目标网络的最短路径。
  4. 路由更新和转发:

    • 路由器使用最短路径树计算出的路由表更新自己的路由表。
    • 路由器使用已更新的路由表将数据包转发到最佳路径上的下一跳路由器。
  5. 监听和更新:

    • 路由器周期性地发送Hello报文以保持邻居关系,并检测邻居失效。
    • 当链路状态信息发生变化时,路由器会向邻居发送新的LSA,并更新链路状态数据库。

配置

调整设备接口的网络类型

 

LSA类型

常见的OSPF LSA类型

Type 1 LSA(Router LSA):由每个OSPF路由器生成,用于描述路由器的直连连接和邻居信息。它被分发到本地区域的所有其他路由器,帮助构建链路状态数据库(LSDB)。

Type 2 LSA(Network LSA):由DR(Designated Router)创建,用于描述多点链路的网络段。它提供了该网络上的所有路由器的信息,并分发给本地区域中的其他路由器。

Type 3 LSA(Summary LSA):由ABR(Area Border Router)在不同区域之间传播,用于汇总本地区域内的网络信息,向其他区域的路由器提供达到本地区域内部目标网络的路径信息。

Type 4 LSA(ASBR Summary LSA):由ASBR(AS Boundary Router)创建,用于向本地区域中的其他路由器提供到达外部AS(Autonomous System)的路径信息。

Type 5 LSA(External LSA):由ASBR生成,用于表示外部AS中的目标网络。它被分发到所有的区域中,并包含了到达外部目标网络的路径信息。

Type 7 LSA(NSSA External LSA):在NSSA(Not-So-Stubby Area)中使用,类似于Type 5 LSA,但用于表示从NSSA区域到外部网络的路径信息。

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

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

相关文章

vue : 无法加载文件 C:\Users\…\npm\vue.ps1,因为在此系统上禁止运行脚本。

在 PowerShell 中创建 vue 项目时,出现了以下错误导致创建失败:vue : 无法加载文件 C:\Users\…\npm\vue.ps1,因为在此系统上禁止运行脚本。 报错原因 用户权限不足导致无法加载文件,以管理员身份运行终端或者 PowerShell 也可…

【架构设计】如何设计一个高性能短链系统

一、前言 所谓系统设计,就是给一个场景,让你给出对应的架构设计,需要考虑哪些问题,采用什么方案解决。很多面试官喜欢出这么一道题来考验你的知识广度和逻辑思考能力。 虽然各个系统千差万别,但是设计思想基本一致&a…

Python-OpenCV中的图像处理-图像金字塔

Python-OpenCV中的图像处理-图像金字塔 图像金字塔高斯金字塔拉普拉斯金字塔 金字塔图像融合 图像金字塔 同一图像的不同分辨率的子图集合,如果把最大的图像放在底部,最小的放在顶部,看起来像一座金字塔,故而得名图像金字塔。cv2…

剑指 Offer 30. 包含min函数的栈

题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 示例 思路 新开一个辅助栈记录不严格递增序列,栈顶元素始终为栈内的最小值,注意多个…

flask使用cookie (设置cookie与查看cookie内容)

1.flask包cookie的使用 设置cookie app.route(/set_cookie) def set_cookie():resp make_response(Setting cookie)resp.set_cookie(username, John)return resp查看cookie: app.route(/get_cookie) def get_cookie():username request.cookies.get(username)return Welco…

CSS基础介绍笔记1

官方文档 CSS指的是层叠样式(Cascading Style Sheets)地址:CSS 教程离线文档:放大放小:ctrl鼠标滚动为什么需要css:简化修改HTML元素的样式;将html页面的内容与样式分离提高web开发的工作效率&…

安装程序报错问题解决 -2147287037 <<30005>> 2203

本文如下报错适用: 一、The installer has encountered an unexpected error installing this package. Thismay indicate a problem with this package. The error code is 2203 二、错误 2203.数据库: C:\WINDOWS\Installer\inprogressinstallinfo.i…

Vue2-简介、模板语法、数据绑定、MVVM、数据代理、事件处理

🥔:成功之后就能光明正大地回望所有苦难 VUE-Day1 Vue简介1、Vue是什么?2、谁开发的? 发展历程?3、Vue的特点4、容器和实例、实例中的el和data总结 Vue模板语法插值语法指令语法 数据绑定1.单向数据绑定(v-…

微服务Ribbon-负载均衡原理

目录 一、LoadBalancerIntercepor 二、LoadBalancerClient 三、负载均衡策略IRule 四、总结 上一篇中,我们添加了LoadBalanced注解,即可实现负载均衡功能,这是什么原理呢? SpringCloud底层其实是利用了一个名为Ribbon的组件&…

企业邮箱安全对比:哪家公司的产品更可靠?

邮箱仍然是企业沟通的关键组成部分,但往往容易受到安全威胁。为了保护敏感信息,企业需要采取措施使企业邮箱更加安全。这可以通过投资先进的安全解决方案,创建限制或控制访问的策略,并定期对员工进行最佳实践培训来实现。 1、投资…

世界算力简史(下)

世界算力简史(上) 世界算力简史(中) 今天终于要完结了…… █ 1980-1990:PC时代 IBM-PC和“兼容机” 上一篇,我们说到,70年代微处理器崛起,使得个人电脑开始大量出现。 这种情况&…

AI Deep Reinforcement Learning Autonomous Driving(深度强化学习自动驾驶)

AI Deep Reinforcement Learning Autonomous Driving(深度强化学习自动驾驶) 背景介绍研究背景研究目的及意义项目设计内容算法介绍马尔可夫链及马尔可夫决策过程强化学习神经网络 仿真平台OpenAI gymTorcs配置GTA5 参数选择行动空间奖励函数 环境及软件…

Unity3d C#利用本地网页快速打开萤石云监控视频流(ezopen)实现云台,声音等控制,支持WebGL平台,替代UMP播放(含源码)

前言 之前我介绍了替代Universal?Media?PlayerUMP播放石云监控视频流(ezopen)的功能,效果还是很明显的,笔者的测试是差不多3-5秒就能打开监控画面,不过稍微遗憾的是,之前的功能是iframe打开石云提供的播放网页的形式&#xff0…

AI量化模型预测挑战赛 第二次学习笔记

有关竞赛信息以及基础baseline代码解读请看我的上一篇文章 AI量化模型预测——baseline学习笔记_寂ღ᭄秋࿐的博客-CSDN博客 在经过baseline进行详细的分析之后,接下来的方向肯定是奔着提分去的,下面我就从五个方面进行一一列出提分思路 提取更多的特征…

Linux下安装nginx (tar解压版安装)

Linux下安装nginx (tar安装) 1、下载nginx 官方下载地址https://nginx.org/en/download.html 在这里插入图片描述 2.解压 解压‘nginx-1.16.1.tar.gz’到指定目录(/usr/local/myWorkSpace)并且重命名 命令: tar -xvf nginx-1.16.1.tar.gz …

共享式以太网的争用期

在以太网中,必然会发生碰撞。   站点从发送帧开始,最多经过 2 τ 2\tau 2τ就会检测到碰撞,此时 2 τ 2\tau 2τ被称为争用期或碰撞窗口。   站点从发送帧开始,经过争用期 2 τ 2\tau 2τ这段时间还没有检测到碰撞&#xff0c…

ModaHub魔搭社区——GPTCache是如何工作的?

在线服务通常表现出数据局部性,用户经常访问流行或趋势内容。缓存系统通过存储通常访问的数据来利用这种行为,这反过来减少了数据检索时间,提高了响应时间,并减轻了后端服务器的负担。传统缓存系统通常利用新查询和缓存查询之间的精确匹配来确定请求的内容在获取数据之前是…

LeetCode 31题:下一个排列

目录 题目 思路 代码 题目 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序…

网络安全(黑客)工作篇

一、网络安全行业的就业前景如何? 网络安全行业的就业前景非常广阔和有吸引力。随着数字化、云计算、物联网和人工智能等技术的迅速发展,网络安全的需求持续增长。以下是网络安全行业就业前景的一些关键因素: 高需求:随着互联网的…

MFC第二十七天 通过动态链表实现游戏角色动态增加、WM_ERASEBKGND背景刷新的原理、RegisterClass注册窗口与框架程序开发

文章目录 通过动态链表实现游戏角色动态增加CMemoryDC.hCFlashDlg.hCFlashDlg.cpp WM_ERASEBKGND背景刷新的原理RegisterClass注册窗口与框架程序开发CFrameRegister 通过动态链表实现游戏角色动态增加 CMemoryDC.h #pragma once#include "resource.h"/*内存DC类简介…