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

【网络协议】静态路由详解

网络中的路由器通过以下两种方式之一发现远程网络:

  • 静态配置路由
  • 动态路由协议

在本文,我们将学习关于静态路由的各种概念,例如如何配置静态路由、路由表如何进行决策、路由接口等相关知识。

文章目录

    • 引言
    • 直连网络
    • 静态路由
    • 路由表原则
      • 原则1
      • 原则2
      • 原则3
      • 应用这些原则
        • 原则 1
        • 原则 2
        • 原则 3
      • 在路由器 R2 上的配置
      • 在路由器 R3 上的配置
    • 解决下一跳IP地址的问题
    • 汇总路由和默认路由

引言

路由器的工作是将数据包从源设备转发到目标设备。在两者之间可能有多个路由器。路由器使用一种被称为路由表的数据库来转发这些数据包。

参考下图所示的拓扑结构。

在这里插入图片描述
上图展示了一个由3台路由器和2台主机组成的小型网络。如前所述,每个路由器的连接都应有其独立的网络段,这在图中有所体现。

网络管理员还将R1和R3的串行接口配置为DCE,且所有其他配置均正确。

在此场景中:

  • R1 可以 ping 通主机 A,也可以 ping 通 R2 的 s0/0/0 接口,但无法 ping 通 s0/0/1 接口。
  • R3 可以 ping 通主机 B,也只能 ping 通 R2 的 s0/0/1 接口。
  • 主机 A 和主机 B 无法通信。

如下图所示。

在这里插入图片描述

在本章中,我们将解释为什么这两台计算机无法通信的原因,并解决此问题。

请牢记该拓扑图,因为它将在本章中持续使用。

直连网络

在这里插入图片描述
路由表是一个数据库,包含有关各种网络的信息。我们已经提到,这些远程网络可以通过路由协议学习,也可以通过手动配置的路由获得。

在路由器上执行 show ip route 命令的输出会显示特定路由器可以到达的路由。默认情况下,路由器只能了解直接连接的路由。

在我们的场景中,从 R1 的角度来看,直接连接的网络是连接到 HOST A 的网络以及 R1 和 R2 之间的网络。

由于这些路由器(R2 和 R3)尚未进行其他配置,因此它们应该只具有直接连接的路由。

直接连接的网络是特定路由器可以到达的唯一网络。在我们的场景中,这意味着:

  • HOST A 可以 ping 通 R1。
  • R1 可以 ping 通 R2 的 s0/0/0 接口,但无法 ping 通 s0/0/1 接口。
  • R2 可以 ping 通 R1 的 s0/0/0 接口,但无法 ping 通 fa0/0 接口或 HOST A。
  • R2 可以 ping 通 R3 的 s0/0/0 接口,但无法 ping 通 fa0/0 接口或 HOST B。
  • R3 可以 ping 通 R2 的 s0/0/1 接口,但无法 ping 通 s0/0/0 接口。
  • HOST B 可以 ping 通 R3。
  • 两台主机(HOST A 和 HOST B)无法互相 ping 通。
  • R1 和 R3 无法互相 ping 通。

下图展示了所有直接连接的网络。

在这里插入图片描述

静态路由

静态路由是实现远程网络通信的一种方式。在生产网络中,静态路由主要用于从特定网络到桩网络的路由配置。

桩网络是指只能通过一个点或一个接口访问的网络。

在上述场景中,192.168.1.0/24192.168.4.0/24 网络是桩网络。这意味着,这些网络段中的主机与其他主机通信只有一条路径:对于 192.168.1.0/24 网络是通过 R1,而对于 192.168.4.0/24 网络是通过 R3

理解桩网络对于理解静态路由至关重要。

配置静态路由所需的命令如下:

Router(config)# ip route (网络地址) (子网掩码) (下一跳IP地址/出口接口)

下表解释了 ip route 命令中每个参数的含义,并提供了一个示例,说明如何在 R1 上配置到 R3 的局域网网络(192.168.4.0/24)的静态路由。

参数含义示例
Ip route表明正在配置的是静态路由ip route
Network-address目标网络的网络地址,即希望到达的网络地址192.168.4.0
Subnet-mask希望到达的目标网络的子网掩码255.255.255.0
Next hop ip address连接到目标网络的下一跳路由器的IP地址192.168.2.4
Exit interface路由器上连接到将带我到目标网络的路由器的出口接口s0/0/0

请参考示例。
因此,要在 R1 上为网络 192.168.4.0/24 配置静态路由,需在 R1 上输入以下命令:

R1(config)# ip route 192.168.3.0 255.255.255.0 192.168.2.4  
R1(config)# ip route 192.168.4.0 255.255.255.0 192.168.2.4  

或者:

R1(config)# ip route 192.168.3.0 255.255.255.0 s0/0/0  
R1(config)# ip route 192.168.4.0 255.255.255.0 s0/0/0  

注意: 配置静态路由时,
只能使用出口接口下一跳IP地址,而不能同时使用两者。这一点将在后面详细说明。

查看R1上的路由表:

在这里插入图片描述
R1show ip route 输出的底部用红色突出显示的部分,是我们刚刚添加的静态路由。开头的 “S” 表示该路由是通过静态路由配置加入路由表的。

括号中的 “1” 是静态路由的管理距离,“0” 是度量值。

由此我们可以假设从 HOST AHOST B 的 ping 应该可以成功,对吧?

让我们尝试从 HOST A ping HOST B,看看会发生什么。

在这里插入图片描述

正如上图所示,所有从 HOST AHOST B 的四次 ping 都显示请求超时。此外,底部用红色突出显示的部分表明,HOST B 没有接收到任何数据包,这意味着它们无法通信。

在下一部分,我们将探讨为什么两个主机无法通信,尽管 R1 已正确配置了静态路由。

路由表原则

以下是决定路由器如何通信的三条路由表原则。

原则1

“路由器仅根据其路由表中的信息转发数据包。”

R1 有两条路由:192.168.3.0/24(R2R3 之间的连接)和 192.168.4.0/24(HOST B 所在的网络)。因此,根据第一条原则,R1 仅基于这些信息做出转发决策。它不会咨询 R2R3,也不知道这些路由器是否有其他网络的路由信息。作为网络管理员,我们的职责是确保网络中的所有路由器了解远程网络的信息。

原则2

“一个路由器上的路由信息并不意味着域中的其他路由器也有相同的信息。”

R1 并不了解 R2 路由表中的信息,R2R3 也一样。因此,尽管 R1 有通往 R2R3 的网络的路径,但并不意味着 R2R3 也有相同的路由信息。

例如,R1 可以通过 R2 到达网络 192.168.4.0/24,但 R1 并不知道 R2 是否可以到达连接 R3 的网络。因此,我们需要在 R2 上配置到 R3 局域网的路由。

根据原则 2,我们仍需在其他路由器(R2R3)上正确配置路由,以确保它们知道这三个网络的路由。

原则3

“路由器到远程网络的路由并不意味着远程路由器有返回路径。”

此原则意味着,当在一个路由器上配置路由时,必须在远程路由器上配置返回路由。在我们的网络中,大多数通信是双向的,这意味着每次发送消息时都需要收到回复。

以邮局为类比,这就像发送一封没有回信地址的信。收信人无法回复这封信,邮递员也不知道该将信寄往何处。

在我们的场景中,这意味着当我们在 R1 上配置到网络 192.168.4.0/24 的路由时,我们需要在远程路由器上配置通向 R1 的局域网的路由。

根据原则 3 的指导,我们将在其他路由器上正确配置静态路由,以确保它们有返回到网络 192.168.1.0/24 的路由。

应用这些原则

在此场景中,我们需要在所有路由器上应用这三条原则,以使静态路由正常工作。

原则 1

R1 知道如何到达网络 192.168.3.0/24 和 192.168.4.0/24,但 R2R3 并不知道。因此,我们需要在 R2 上配置静态路由,以使其知道如何到达 192.168.4.0/24。

原则 2

尽管我们在 R1 上配置了静态路由,但这并不意味着 R2 知道通往 192.168.4.0/24 的路径。因此,R2 需要知道该网络。

原则 3

即使 R1R2 有到网络 192.168.4.0 的路由,ping 仍然会失败,因为 R2R3 不知道如何返回 R1。因此,我们需要在 R1 上配置到网络 192.168.1.0/24 的返回路由。在本例中,我们在 R2R3 上使用下一跳 IP 地址。

通过以上分析,我们可以在所有路由器上进行必要的配置,以实现 HOST AHOST B 之间的通信。

在路由器 R2 上的配置

R2(config)# ip route 192.168.1.0 255.255.255.0 192.168.2.3
R2(config)# ip route 192.168.4.0 255.255.255.0 192.168.3.3

在路由器 R3 上的配置

R3(config)# ip route 192.168.1.0 255.255.255.0 192.168.3.4
R3(config)# ip route 192.168.4.0 255.255.255.0 192.168.3.4

完成对三台路由器的所有配置后,HOST AHOST B 之间的通信应该是可行的。下图显示了所有三台路由器的路由表,其中静态路由用红色标出。

R1
在这里插入图片描述

R2
在这里插入图片描述

R3
在这里插入图片描述

由于以下输出,我们应该能够从主机A ping到主机B。以下输出显示了从主机A到主机B的ping结果。

在这里插入图片描述
输出显示来自主机B的回复,其IP地址为192.168.4.2,红色高亮部分显示4个数据包已发送,所有4个数据包都已被主机B接收,丢包率为0%。

因此,我们已成功在路由器上配置了静态路由。

解决下一跳IP地址的问题

假设我们在R2上配置了下一跳IP地址,而不是出口接口,路由器如何知道通过哪个接口发送数据包?

下图显示了R2上show ip route命令的输出。

在这里插入图片描述

当路由器想要将数据包发送到192.168.1.0网络时,它将查看路由表。

路由表中有一条通往该网络的路由,下一跳是192.168.2.3。然后,路由器检查是否有与192.168.2.3网络连接的接口。在这种情况下,连接到该网络的接口是蓝色高亮部分所示的网络。出口接口是serial 0/0/0。

只有下一跳IP地址而没有出口接口的路由,必须通过路由表中的路由来解析下一跳IP地址,该路由连接到远程网络。

在大多数情况下,下一跳解析到的路由通常是直接连接的网络。

因此,这通常是一个问题,因为路由器必须处理数据包两次才能确定将其转发到哪里。这被称为递归查找。

建议静态路由使用出口接口,而不是下一跳IP地址。

汇总路由和默认路由

假设一台路由器连接了多个LAN,使用一个覆盖所有LAN的地址并配置一条静态路由会更为实用。以这个场景为例,R1连接了5个LAN:

  • 192.168.1.0/24
  • 192.168.2.0/24
  • 192.168.3.0/24
  • 192.168.4.0/24
  • 192.168.5.0/24

这些路由的汇总如下表所示。

在这里插入图片描述
前两个八位字节和第三个八位字节从左侧开始的前五个位相同。

因此,针对这5个网络的新的汇总网络地址和子网掩码为:192.168.0.0/21,子网掩码为255.255.248.0。

在R2上配置到汇总网络的静态路由,命令如下:

R2(config)# ip route 192.168.0.0 255.255.248.0 s0/0/0

参考下面所示的图示。假设主机A想要发送电子邮件给朋友或查看互联网网站,路由器如何知道将数据包发送到哪里?

在这里插入图片描述
互联网有很多IP地址,配置一条静态路由到特定网络是行不通的。因此,需要配置默认路由。

默认静态路由是一条将匹配所有数据包的路由。默认静态路由的使用场景包括:

  • 当路由表中没有其他路由匹配数据包的目标IP地址时。换句话说,当没有更具体的匹配存在时。一个常见的用途是在将公司的边缘路由器连接到ISP网络时。

  • 当路由器只有一个连接的其他路由器时。这种情况称为“存根路由器”(Stub Router)。

配置静态默认路由的语法为:

Router(config)# ip route 0.0.0.0 0.0.0.0 [下一跳IP地址/出口接口]

到这个网络的路由会告诉路由器转发任何没有路由匹配的包,指向指定的下一跳IP地址或出口接口。

在这种情况下,要配置默认静态路由,R1上的命令序列将是:

R1(config)# ip route 0.0.0.0 0.0.0.0 12.145.3.2

或者

R1(config)# ip route 0.0.0.0 0.0.0.0 s0/0/0

相关文章:

【网络协议】静态路由详解

网络中的路由器通过以下两种方式之一发现远程网络: 静态配置路由动态路由协议 在本文,我们将学习关于静态路由的各种概念,例如如何配置静态路由、路由表如何进行决策、路由接口等相关知识。 文章目录 引言直连网络静态路由路由表原则原则1原…...

朝天椒USB服务器在银泰证券虚拟化超融合场景的应用案例

在数字化浪潮席卷金融行业的今天,银泰证券作为业内知名的金融机构,始终致力于提升业务运营效率与数据安全性。面对虚拟化超融合场景下各种认证U盾的管理挑战,银泰证券选择了朝天椒USB服务器作为其解决方案,成功实现了U盾在虚拟机中…...

.NET framework、Core和Standard都是什么?

对于这些概念一直没有深入去理解,以至于经过.net这几年的发展进化,概念越来越多,越来越梳理不容易理解了。内心深处存在思想上的懒惰,以为自己专注于Unity开发就好,这些并不属于核心范畴,所以对这些概念总是…...

FairGuard游戏安全2024年度报告

导 读:2024年,国内游戏市场实际销售收入3257.83亿元,同比增长7.53%,游戏用户规模6.74亿人,同比增长0.94%,市场收入与用户规模双双实现突破,迎来了历史新高点。但游戏黑灰产规模也在迅速扩大&…...

JetBrains IDEs和Visual Studio Code的对比

JetBrains IDEs和Visual Studio Code的对比 JetBrains IDEs是捷克JetBrains公司开发的一系列集成开发环境(IDE)。以下是具体介绍:IntelliJ IDEA是JetBrains 公司的一款产品 主要产品 IntelliJ IDEA:一款功能强大且广泛应用的Java集成开发环境,有开源免费的社区版和商业收…...

文件剪切走:深度解析与高效恢复策略

一、文件剪切走现象解读 在计算机的日常使用中,“文件剪切走”这一术语形象地描述了文件在移动过程中意外丢失的现象。当用户尝试将文件从一个位置“剪切”并粘贴到另一个位置时,如果操作不当或系统出现异常,可能会导致文件在源位置消失&…...

Win32汇编学习笔记09.SEH和反调试

Win32汇编学习笔记09.SEH和反调试-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net SEH - structed exception handler 结构化异常处理 跟筛选一样都是用来处理异常的,但不同的是 筛选器是整个进程最终处理异常的函数,但无法做到比较精细的去处理异常(例如处理…...

[人工智能]CSDN创作助手体验

一、什么是智能体 智能体是一种能够感知环境、学习、推理和行动的实体。它可以是一个计算机程序、机器人或其他类似的系统。智能体的目标是通过与环境的交互来实现特定的任务或目标。 智能体通常由以下几个组件组成: 感知器:感知器是智能体与环境之间的…...

vue3中el-table实现多表头并表格合并行或列

1、el-table中添加事件 :span-method"genderSpanCity" <el-table :span-method"genderSpanCity":data"data.tableData":fit"true" table-layout"fixed" header-align"center" stripestyle"width:100%;he…...

HTML+CSS+JS制作中国传统节日主题网站(内附源码,含5个页面)

一、作品介绍 HTMLCSSJS制作一个中国传统节日主题网站&#xff0c;包含首页、节日介绍页、民俗文化页、节日活动页、联系我们页等5个静态页面。其中每个页面都包含一个导航栏、一个主要区域和一个底部区域。 二、页面结构 1. 顶部横幅区 包含传统中国风格的网站标题中国传统…...

时空笔记:CBEngine(微观交通模拟引擎)

CBEngine 是一个微观交通模拟引擎&#xff0c;可以支持城市规模的道路网络交通模拟。CBEngine 能够快速模拟拥有数千个交叉路口和数十万辆车辆的道路网络交通。 以下内容基本翻译自CBEngine — CBLab 1.0.0 documentation 1 模拟演示 1.0 模拟演示结构 config.cfg 定义了 roa…...

【LeetCode】力扣刷题热题100道(26-30题)附源码 轮转数组 乘积 矩阵 螺旋矩阵 旋转图像(C++)

目录 1.轮转数组 2.除自身以外数组的乘积 3.矩阵置零 4.螺旋矩阵 5.旋转图像 1.轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 class Solution { public:void rotate(vector<int>& nums, int k) …...

【C++】字符串的 += 和 + 运算详解

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;1. 字符串的 和 基本用法1.1 的用法1.2 的用法 &#x1f4af;2. 示例代码的剖析与解释代码分析 &#x1f4af;3. 底层实现与性能分析3.1 的实现原理3.2 的实现原理3.…...

多模态大模型部署:结合dify

文章目录 前言minicpm-vDify测试一下总结部署过程回顾集成与测试实验结果分析展望未来 前言 上回说道&#xff0c;我们用ollama部署了一个多模态的大模型&#xff0c;也就是minicpm-v&#xff1a; 但这玩意儿感觉只能打字啊。 怎么给它发图片呢&#xff1f; minicpm-v Mini…...

Matlab Steger提取条纹中心(非极大值抑制)

文章目录 一、简介二、实现代码三、实现效果一、简介 由于在确定条纹的ROI区域之后,会计算出多个条纹中心坐标,因此这里就需要对其进行则优选择,毕竟条纹只有一条,这最简单的方式就是使用非极大值抑制,即选择每一行/列最好的条纹中心。 二、实现代码 Hessian2D.m function…...

springboot + vue+elementUI图片上传流程

1.实现背景 前端上传一张图片&#xff0c;存到后端数据库&#xff0c;并将图片回显到页面上。上传组件使用现成的elementUI的el-upload。、 2.前端页面 <el-uploadclass"upload-demo"action"http://xxxx.xxx.xxx:9090/file/upload" :show-file-list&q…...

LabVIEW 系统诊断

LabVIEW 系统诊断是指通过各种工具和方法检测、评估、分析和解决 LabVIEW 程序和硬件系统中可能存在的故障和性能问题。系统诊断不仅涵盖软件层面的调试与优化&#xff0c;还包括硬件交互、数据传输、实时性能等方面的检查和分析。一个成功的系统诊断能够显著提升LabVIEW应用程…...

韩国机场WebGIS可视化集合Google遥感影像分析

目录 前言 一、相关基础数据介绍 1、韩国的机场信息 2、空间数据准备 二、Leaflet叠加Google地图 1、叠加google地图 2、空间点的标记及展示 3、韩国机场空间分布 三、相关成果展示 1、务安国际机场 2、有同类问题的机场 四、总结 前言 12月29日8时57分左右务安国际机…...

springCloudGateWay使用总结

1、什么是网关 功能: ①身份认证、权限验证 ②服务器路由、负载均衡 ③请求限流 2、gateway搭建 2.1、创建一个空项目 2.2、引入依赖 2.3、加配置 3、断言工厂 4、过滤工厂 5、全局过滤器 6、跨域问题...

使用new Vue创建Vue 实例并使用$mount挂载到元素上(包括el选项和$mount区别)

new Vue({...}) 是创建一个新的 Vue 实例的方式。你可以通过传递一个选项对象来配置这个实例。常见的选项包括&#xff1a; •data&#xff1a;定义组件的数据属性。 •el&#xff1a;指定 Vue 实例应该挂载到哪个 DOM 元素上&#xff08;通常是一个选择器字符串&#xff0c;如…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...