当前位置: 首页 > news >正文

8.路由原理专题

路由器数据转发原理,路由表、FIB、快速转发表的关系

  • 路由的控制平面与转发平面

    • 控制平面:负责路由计算,维护;路由协议运行在控制平面

    • 转发平面:进行数据包的封装,报文转发,路由表,FIB表,快速转发表等

    • 控制平面与转发平面相互独立又协同工作

  • 路由器检查数据包的目的 IP 地址,用数据包的目的 IP 地址查询路由表,在路由表中对所有路由条目遍历,最终按照能匹配的掩码最长的路由进行转发

  • 基于最长匹配机制,路由表规模太大后,将会大幅降低查表速度,从而影响转发效率。同时为了做到控制平面与转发平面完全隔离,构建了FIB表,所以设计了 FIB 表,FIB 表来自于路由表中 Active 状态的路由和 ARP表,FIB 表规模大幅小于路由表,所以数据转发查询 FIB 表,速度会更快

    image-20250227005544203

  • FIB 表和路由表一样都属于最长匹配的表项,所以能够提升的查询速度也较有限。所以引入了快速转发表

  • 快速转发表是针对数据五元组信息的精确匹配表项。当一组五元组相同的数据流的首包进入路由器,路由器会通过查 FIB 表来完成转发,并根据转发结果来产生该五元组的快速转发表项。后续五元组相同的数据包再进入路由器,就查询到快速转发表,按照快速转发表来完成转发;由于快速转发表项是精确匹配,无需遍历整个表项,所以查表速度可以大幅提升;(源IP地址,源端口号,目的IP地址,目的端口号,协议号)

    image-20250227005601658

路由备份与路由负载

  • 路由备份指的当一台路由器上有多条路径到达目的网段,配置不同来源的路由走不同路径,按照路由写表规则,会选择优先级数字最小的路由成为 Active 路由,其他路由成为 Inactive 路由。当 Active 路由故障后,路由器会在 Inactive 路由中选择优先级数字最小的成为新的 Active 路由

  • 路由负载则是在路由器上配置同一来源的路由,如果 Cost.相等,就会在多条路径上产生等价路由,从而实现到达目的网段流量的负载分担

  • 实际使用中,如果不同路径的带宽相差太大,建议使用路由备份,如果不同路径的带宽接近,则建议使用等价路由来负载

什么是浮动静态路由

  • 场景:当网络中存在两个出口,一个出口是高速链路,一个是低速。一般会在高速出口上运行路由协议来传递路由,而低速链路为了节省带宽,都会配置静态路由如果高速链路上运行的是 RIP 协议的话,根据路由写表规则,路由器会选择静态路由作为最优路由,而不会选择 RIP。这样就会导致低速链路成为了主链路而高速链路成为了备份链路,不符合真实需求

  • 浮动静态路由就是指把静态路由的优先级数字改大,使路由协议的路由能够成为 Active 路由、而静态路由成为 |nactive 的备份路由。这样高速链路就会成为主链路、当主链路故障、静态路由就会被立即切换为 Active 路由,形成路由备份的效果

路由聚合的意义以及路由聚合的注意事项

  • 路由聚合是指把多条明细路由合并为一条,来缩小路由表规模,加快路由查表速度,以及提高路由表稳定性的技术,通常也将路由聚合称为路由汇总

  • 要把多条路由聚合为一条,需要满足如下条件:

    • 被聚合的路由必须是连续的子网

    • 对 IGP路由进行聚合时,聚合路由中所包含的所有子网必须是同一下一跳或出接口,对手BGP路由进行聚合时,只要在 BGP表中存在的明细路由都可以进行聚合

  • 路由聚合在某些情况下会产生环路

    image-20250226205836777

    • 当两台路由器互相对路由进行聚合,聚合的范围过大,聚合路由中包含了网络中不存在的子网时,一旦有数据包访问不存在的子网,就会导致该数据包在两台路由器之间形成路由环路。解决方法是配置精准的聚合,尽量不要使聚合的路由中包含不存在的子网

    • image-20250226210214725

      • 如图,当 RTA 对本机上的子网路由在 RIP 中进行聚合后传递给 RTB,同时RTA 配置了缺省路由指向RTB。网络正常时没有环路。但当 RTA 的某个子网故障后,该子网的明细路由在路由表中消失。如果有数据包访问该故障就会导致RTA 按照缺省路由把数据包发往 RTB,RTB 收到后会按照合路由发送给RTA,形成环路。解决方法是在 RTA上配置黑洞路由(即出接口指向 null0 的路由),目的网段与聚合路由一致。当子网故障后,再有访问故障子网的数据包,基于最长掩码匹配规则,RIA 会按照黑洞路由丢弃数据包,而不是匹配缺省路由发往RTB

路由表的来源,以及路由表路由优选规则

  • 路由表的来源可分为直连路由、静态路由、路由协议

    • 直连路由:根据路由器的直连接口所在网段自动产生的路由。只要接口 UP并配置了 IP地址,就会产生直连路由

    • 静态路由:手动配置的到达每个目的网段的路由,大规模网络中配置维护复杂,但没有协议开销

    • 路由协议:配置维护简单,路由器会自动传递并学习路由,但是会消耗系统资源

  • 路由优选规则:

    • 不同来源的路由优先级数字小的优先。如果手动把不同协议的优先级改成一致,按照默认优先级进行优选

    • 同一来源的路由,对比度量值,小的优先

    • 同一来源,度量值相同,会自动形成等价路由

  • 常见协议的优先级/管理距离

    image-20250226210858233

路由协议的优先级

  • 路由器分别定义了外部优先级和内部优先级。外部优先级是指用户可以手工为各路由协议配置的优先级,路由协议的内部优先级则不能被用户手工修改。

  • 同一个设备对于自身不同路由协议都设置相同的路由优先级时,则根据不同协议的内部优先级比较,所以内部优先级不能被修改;

  • ~设备通过OSPF5类和7类学到路由,优先选谁?内部优先级一样,不具备可比性;①类型1>类型2;②比开销③负载

  • 默认的外部优先级和默认的内部优先级

    image-20250226211459986

什么是最长掩码匹配规则

  • 当数据包在路由器中同时匹配多条掩码长度不同的路由时,会按照掩码最长的路由进行转发。因为掩码越长,意味着网络越精确。所以当同时存在明细路由聚合路由,缺省路由时,优选顺序是明细路由>聚合路由>缺省路由

什么是路由选代规则

  • 当路由表查询到下一跳地址是非直连地址后,路由器会将下一跳的地址再次询路由表,直到查询到下一跳地址是直连地址为止

  • 路由迭代也称为路由的递归查询,可能需要查找多次

路由协议有哪些?分别工作在第几层?各有什么特点

  • RIP>UDP(基于 UDP 端口 520)>应用层>距离矢量路由协议(跳数、水平分割、路由毒化、毒性反转、触发更新、定时器)

  • OSPF>IP(基于IP 排议号 89)>网络层>链路状态路由协议(分区域、SPF 算法、多种 LSA)

  • ISIS>Ethernet Pame>802.3>链路状态路由协议(分区域、SPF 算法)

  • BGP>TCP(基于 TCR 端口 179)>多应用层>承载大量的路由(丰富的路由策略工具)

路由协议的分类

  • 根据作用的范围,路由协议可分为:

    • 内部网关协议(简称IGP):在一个自治系统内部运行,常见的IGP 协议包括 RIP、OSPF 和IS-IS。

    • 外部网关协议(简称EGP)运行于不同自治系统之间,BGP 是目前最常用的 EGP 协议。

  • 根据使用的算法,路由协议可分为

    • 距离矢量协议:包括 RIP和 BGP。其中,BGP 也被称为路径矢量协议。

    • 链路状态协议:包括 OSPF 和 IS-IS。

  • 根据目的地址的类型,路由协议可分成:

    • 单播路由协议:包括 RIP、OSPF、BGP 和 IS-IS 等。

    • 组播路由协议:包括PIM-SM、PIM-DM、PIM-SSM 等。

距离矢量协议的特征

  • 周期性、广播发送路由更新

  • 路由更新中携带全部路由表,接收方据此更新自己的路由

  • 超过一定时间接收不到路由更新报文,则认为此路由失效

  • 以到目的网段的距离(跳数)作为度量值

  • 拓扑变化以逐跳的方式扩散

  • 路由收敛速度慢

  • 采用距离矢量算法,可能导致路由环路

链路状态协议的特征

  • 通过 Hello 报文来发现邻居

  • 建立邻接关系后,只发送链路状态公告(LSA)

  • 根据自己的链路状态数据库(LSDB)来计算路由

  • 链路状态变化时,马上发送LSA 到区域内所有路由器

  • 路由收敛速度快

  • 采用 SPF算法无路由自环

路径矢量协议的特征

  • 仅在邻居刚建立时发送全部路由表、邻居建立后只发送增量路由更新

  • 如果邻居失效,则认为路由失效

  • 丰富的路由属性作为度量值

  • 拓扑变化以逐跳方式扩散

  • 采用机制防止路由环路

  • (BGP)

实现 VLAN 间路由的方式以及各自的优缺点

  • 路由器使用不同接口连接不同 VLAN,VLAN 内的 PC 把网关指向为路由器在本VLAN 的接口地址,VLAN 之间通过路由器进行三层通讯。该方式对路由器接口数量要求很高,路由器一般没有这么多接口

  • 单臂路由技术:路由器单线连接到交换机的Trunk口,路由器在接口上划分子接口,不同子接口绑定不同 VLAN,并作为不同 VLAN 的网关地址。该方式不再受路由器接口数量限制,但是单线连接所有 VLAN,会导致性能负担太重,也容易造成单点故障,同时可能存在次优路径

  • 使用三层交换技术:在三层交换机上配置 IP地址,对不同VLAN 的 PC 进行三层转发。该方式不受接口数量限制,也不用通过其他设备来完成三层转发。并且在三层交换机中,三层转发和二层转发时一次完成转发效率高

  • 如何使用纯二层交换机实现不同 VLAN 的通信??

    • 使用 hybrid 接口来实现

  • 怎么实现两个 vlan 之间无法通信??

    • 可以使用 ACL 进行流量过滤

配置黑洞路由的作用

  • 黑洞路由是指出接口指向 Null0 接口的路由,NULL0 接口从不转发任何报文对于所有发到该接口的报文都直接丢弃,由于它的这个特征,NULL0 接口主要被用在以下两方面:

    • 防止路由环路,在聚合一组路由时,总是创建一条到 NULL0 接口的路由

    • 用于过滤流量,可以通过将不想要的报文发送到 NULL0 接口,避免使用访问控制列表。

  • 黑洞路由是如何产生的

    • 路由协议进行路由聚合时会针对聚合路由自动产生一条指向null0接口的黑洞路由

    • 可以手工添加

  • 黑洞路由vs路由黑洞(是一种现象,查表没有然后丢失)

相关文章:

8.路由原理专题

路由器数据转发原理,路由表、FIB、快速转发表的关系 路由的控制平面与转发平面 控制平面:负责路由计算,维护;路由协议运行在控制平面 转发平面:进行数据包的封装,报文转发,路由表,FIB表,快速转发表等 控制平面与转发平面相互独立又协同工作 路由器检查数据包的目…...

jQuery UI 简介

jQuery UI 简介 引言 随着互联网技术的飞速发展,前端开发已经成为网站和应用程序建设的重要组成部分。jQuery UI 是一个基于 jQuery 的用户界面库,它为开发者提供了丰富的交互组件和视觉效果,使得创建具有吸引力和互动性的网页变得更加简单。本文将为您详细介绍 jQuery UI…...

Web服务器配置

配置虚拟主机 通过虚拟主机,可以实现用自定义的域名来访问,并且可以为不同的域名指定不同的站点目录。 配置IP地址和域名的映射关系 申请真实的域名需要一定的费用,为了方便开发,可以通过修改hosts文件来实现将任意域名解析到本…...

LINUX网络基础 [一] - 初识网络,理解网络协议

目录 前言 一. 计算机网络背景 1.1 发展历程 1.1.1 独立模式 1.1.2 网络互联 1.1.3 局域网LAN 1.1.4 广域网WAN 1.2 总结 二. "协议" 2.1 什么是协议 2.2 网络协议的理解 2.3 网络协议的分层结构 三. OSI七层模型(理论标准) …...

定制化开发的WooCommerce独立站商城更安全

定制化开发的WooCommerce独立站商城在安全性、交易风险控制以及整体用户体验方面有显著优势。以下是定制化开发在这些方面的具体表现: 1. 安全性更高 定制化开发允许开发者从底层架构开始设计和优化,确保网站的安全性。以下是具体表现: (1…...

Xcode 运行真机失败

错误提示: iPhone xxx is not available because it is unpaired. Pair with the device in the Xcode Devices Window, and respond to any pairing prompts on the device. 处理方法: 把Xcode关闭,手机断开数据线,打开终端&…...

【FFmpeg之如何新增一个硬件解码器】

FFmpeg之如何新增一个硬件解码器 前言一、config配置二、解码器定义1.目录结构2.数据结构 三、解码流程1、初始化mediacodec_decode_init2、帧接收mediacodec_receive_frame2.1 解码上下文MediaCodecH264DecContext2.2 发包AVPacket到解码器 -- ff_mediacodec_dec_send2.3 接收…...

P3385 【模板】负环

P3385 【模板】负环 - 洛谷 题目描述 给定一个 n 个点的有向图,请求出图中是否存在从顶点 1 出发能到达的负环。 负环的定义是:一条边权之和为负数的回路。 输入格式 本题单测试点有多组测试数据。 输入的第一行是一个整数 T,表示测试数…...

破解透明物体抓取难题,地瓜机器人CASIA 推出几何和语义融合的单目抓取方案|ICRA 2025

概述 近日,全球机器人领域顶会ICRA 2025(IEEE机器人与自动化国际会议)公布论文录用结果,地瓜机器人主导研发的DOSOD开放词汇目标检测算法与MODEST单目透明物体抓取算法成功入选。前者通过动态语义理解框架提升复杂场景识别准确率…...

深度学习编译器(整理某survey)

一、深度学习框架 TensorFlow PyTorch MXNet ONNX:定义了一个统一的表示,DL models的格式方便不同框架之间的转换模型 二、深度学习硬件 通用硬件(CPU、GPU):通过硬件和软件优化支持深度学习工作负载 GPU:通过多核架构实现高…...

【计算机网络入门】应用层

目录 1.网络应用模型 1.1 C/S模型(客户端服务器模型) 1.2 P2P模型(对等模型) 2. DNS系统 2.1 域名 2.2 域名解析流程 3. FTP文件传输协议 4. 电子邮件系统 4.1 SMTP协议 4.2 pop3协议 4.3 IMAP协议 4.4 基于万维网的电…...

@PostConstruct注解的作用

PostConstruct 注解功能是在一个类的所有依赖被注入完成后,才会被执行的方法。这种方法通常用于类的初始化,初始化过程中可以进行一些资源加载、连接建立、或其他必要的配置工作。PostConstruct 方法仅被调用一次,通常修饰符是public或者prot…...

HTML + CSS 题目

1.说说你对盒子模型的理解? 一、是什么 对一个文档进行布局的时候,浏览器渲染引擎会根据标准之一的css基础盒模型,将所有元素表示为一个个矩形的盒子。 一个盒子由四个部分组成: content,padding,border,margin 下…...

通过多线程获取RV1126的AAC码流

目录 一RV1126多线程获取音频编码AAC码流的流程 1.1AI模块的初始化并使能 1.2AENC模块的初始化 ​​​​​​​1.3绑定AI模块和AENC模块 ​​​​​​​1.4多线程获取每一帧AAC码流 ​​​​​​​1.5每个AAC码流添加ADTSHeader头部 ​​​​​​​1.6写入具体每一帧AAC的…...

sql sqlserver的进程资源查看,杀掉多余进程

主要是由三个表组成 sys.sysprocesses、sys.dm_exec_sessions、sys.dm_exec_requests 后面两个在2008版本后使用,主要使用sys.dm_exec_sessions SELECT spid AS 会话ID, -- 进程(会话)的ID blocked AS 被阻塞的会话…...

自然语言处理:朴素贝叶斯

介绍 大家好,博主又来和大家分享自然语言处理领域的知识了。按照博主的分享规划,本次分享的核心主题本应是自然语言处理中的文本分类。然而,在对分享内容进行细致梳理时,我察觉到其中包含几个至关重要的知识点,即朴素…...

Pytorch实现之LSRGAN,轻量化SRGAN超分辨率SAR

简介 简介:在SRGAN的基础上设计了一个轻量化的SRGAN模型结构,通过DSConv+CA与残差结构的设计来减少参数量,同时利用SeLU激活函数构造。与多类SRGAN改进不同的是,很少使用BN层。 论文题目:Lightweight Super-Resolution Generative Adversarial Network for SAR Images(…...

学习记录-缺陷

目录 一、缺陷的判定标准 二、缺陷产生的原因 三、缺陷的生存周期 四、软件缺陷描述及提交要素 1.缺陷的核心内容 2.缺陷的提交要素 五、软件缺陷类型 一、缺陷的判定标准 二、缺陷产生的原因 三、缺陷的生存周期 注入bug > 发现bug > 清除bug 四、软件缺陷描述及提…...

文件压缩与解压工具7-Zip的安装和使用(免费)

一.介绍 7-Zip 是一款开源的文件压缩与解压缩工具,支持多种压缩格式,如 7z、ZIP、RAR、TAR 等。它具有高压缩比,尤其是其独有的 7z 格式,并集成了文件管理器。7-Zip 适用于 Windows 系统,提供命令行版本,…...

如何实现对用户密码的加密

摘要算法: 同样的明文,经过同样的摘要算法,得到的结果是一样的 验证方法:验证经过摘要算法处理后的结果,如果密文一样那么就认为明文是一样的 //数据库存储的一定是密文,用户输入的是明文;把…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

<6>-MySQL表的增删查改

目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表&#xf…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

今日科技热点速览

🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...