3、交换机IP路由功能

每个用例前自己最好先画个图,不然容易绕晕,这篇文章写好久了,自己都觉得有点绕
一、直连路由
如果一个交换机与另一个交换机时直连着的并且他们用来连接的端口属于同网段,那么这种情况下他们就属于直连路由。不需要做任何配置便可以通信
但是如果用来连接的两个端口不属于同一网段,那么在 IP 层上这两个设备是不能直接通信的,但它们仍然可以在数据链路层(Layer 2)进行通讯。这是因为数据链路层的通信机制与网络层的 IP 地址无关(前面讲过)

二、静态路由
场景:交换机A(swA)端口1的ip 10.1.1.1/24,交换机B(swB)的端口2的ip 11.1.1.1/24。交换机C(swC)的端口1的ip是 10.1.1.2/24 交换机C端口2的ip是 11.1.1.2/24
swA的port1和sw2的port2是属于不同网段的两个端口,他们如果想实现通信,就需要通过路由实现

具体如何实现:
让swA的port1和swC的port相连,swB的port2和swC的port2相连
这里swA与swC之间的两个port1是可以直接通信的,他们属于同网段10.1.1.0,这里swB与swC之间的两个port2也是可以直接通信的,他们属于同网段11.1.1.0,然后swC的port1和port2是可以直接通信的(同一个交换机上的端口是可以直接通信的)
备注:这里大部分人都认为路由swA已经可以和swB直接通信了,实际不行,还需要配置一个路由(这里你可以在swA的后台去ping 10.1.1.2是能ping通的,然后ping 11.1.1.2无法ping通,会提示网关不可达,也就是要配置路由)
这里我们配置静态路由:
1、在swA上配置静态路由的页面配置一条静态路由,包括目的网络(这里是11.1.1.0的网段),下一跳(这里下一跳10.1.1.2),这条路由的作用也就是发送到11.1.1.0网段的报文,会转发到ip是10.1.1.2的端口,
前提是这个下一跳是可达的,这里swA的port1 10.1.1.1与swC的port2 10.1.1.2直连,所以是可达的
2、这时swA可以ping通swC交换机上的11.1.1.2这个端口了,但我们的目的是ping通swB上的11.1.1.1这个port2这个端口,这里你ping一下发现还是无法ping通(原因是因为想要ping通这个过程是双向的,swA后台ping swB上的port2,原理是发送一个报文,
然后swB上port2接受到报文后会返回一个报文,这才是ping通整个流程,现在这个报文能通过路由到swB的11.1.1.1port2这个端口,但是swB返回的这个报文无法回到swA的10.1.1.1port1这个端口,因为swB这个交换机上没有到达10.1.1.0这个网段的路由)
3、所以配置静态路由不能只在swA上配置,还要在swB上配置一个目的网络10.1.1.0,下一跳11.1.1.2的静态路由
这时你再swA ping 11.1.1.2,能ping通

三、策略路由
场景:pc1的ip是 10.1.1.1 交换机A(swA)的端口port1的ip是10.1.1.2 端口2的ip是11.1.1.2 端口3的ip是12.1.1.2,交换机B(swB)的端口port2的ip是11.1.1.3 端口3的ip是12.1.1.3,端口4的ip是13.1.1.3,pc2的ip,13.1.1.4
连线状态:pc1与swA的port1相连,swA和swb之间port2互连,port3互连,pc2与swB的port4相连

这里pc1和pc2属于不同网段的ip,他们如果想实现通信,就需要实现路由
这里pc1想ping通pc2如果想通过静态路由就采用上面的方法,在swA上配置目的网络13.1.1.0,下一跳11.1.1.3的静态路由,在swB上配置目的网络10.1.1.0,下一跳11.1.1.2的静态路由,这样便可以pc1 ping 通pc2了(这里我选择的路由路线是通过swA和swB之间port2端口互连的那一条线)
注意(这里pc1和pc2配置ip时的配置的默认网关需要和对应连接交换机端口的ip一样,也就是说这里pc1的网关是10.1.1.2,这里pc2的网关是13.1.1.3),如果不这样配置那么你会发现pc1甚至连直连交换机A上的11.1.1.2都无法ping通,pc2甚至连直连交换机B上的11.1.1.3都无法ping通)
这里的默认网关的作用是比如当pc1想ping pc2时,pc1没有和pc2的13.1.1.4直连,所以不能直达,像这种不能直达的报文就会转发给默认网关

如果想通过策略路由实现通信:1、在上面配置了静态路由的基础上在swA上配置策略路由的页面新增一条策略路由首先选择端口,这个端口是入端口,也就是报文传入的端口,这里是指和pc1相连的swA上的port1,意思就是接下来的规则只针对这个端口
2、在增加一条规则:这里源IP填入10.1.1.1,目的ip不填、协议不限、动作选路由,然后确定。然后下一跳填12.1.1.3。这里意思就是只要是目的ip是10.1.1.1的报文都能直接路由到12.1.1.3。(前提是12.1.1.3可达)
3、选择高于其它类型路由或者低于其它类型路由。如果这里选高于其它类型路由,那么你pc1 ping pc2时便不会走上面swA和swB之间port2端口互连的那一条线,而是swA和swB之间port3的那一条线

现在这里的场景就是swA和swB之间有两条路由线路,一条是静态路由pc1 10.1.1.1-》swA的port1 10.1.1.2-》swA的port2 11.1.1.2-》swB的port2 11.1.1.3-》swB的port4 13.1.1.3-》pc2 13.1.1.4
一条是策略路由pc1 10.1.1.1-》swA的port1 10.1.1.2-》swA的port3 12.1.1.2-》swB的port3 12.1.1.3-》swB的port4 13.1.1.3-》pc2 13.1.1.4
选择那一条就看谁的优先级更高,策略路由要么高于其它,要低于其它。(可能不同公司对优先级的先后顺序设定不一样)

上面两种路由都是属于静态的,都是属于手动配置的,接下来讲两种常用的动态路由,RIP路由和OSPF路由
四、RIP路由
给大家看一段复制过来的话:RIP路由是距离矢量路由协议,路由是以矢量(距离,方向)的方式被通告出去的,这里的距离是根据度量来 决定的。每个路由器都不了解整个网络拓扑,它们只知道与自己直接相连的网络情况,
并根据从邻居得 到的路由信息更新自己的路由。通俗点就是往某个方向上的距离。
看看就行了,具体怎么样看实操

RIP路由形成的过程:(这段也是复制过来的,比较清楚)
RIP协议启动之后,SwitchA会向相邻的交换机广播一个Request报文。
SwitchB从接口接收到SwitchA发送的Request报文后,把自己的RIP路由表封装在Response报文内,然后向该接口对应的网络广播。
SwitchA根据SwitchB发送的Response报文,形成自己的路由表。

场景:交换机A(swA)的port1的ip 10.1.1.1/24 交换机B(swB)的port1的ip 10.1.1.2/24、port2的ip 20.1.1.2/24,交换机C(swC)的port2的ip 20.1.1.1/24
连线状态:swA的port1连swB的port1,swB的port2连swC的port2

如果想要用静态路由那么直接在swA上配一个目的网络20.1.1.0,下一跳10.1.1.2的静态路由,和swC上配一个目的网络10.1.1.0,下一跳20.1.1.2的静态路由即可(这样swA能ping通swC的port2,也就是20.1.1.1或者swC能ping通swA的port1,也就是10.1.1.1)
上面是手动在页面配置的静态路由,静态路由是必须手动配置的,在网络复杂的情况下,手动配置就比较费时,所以就有了动态路由
如果用RIP路由会轻松很多,如果想通过RIP路由实现通信:
    在需要开启RIP路由的交换机的配置RIP路由页面勾选开启RIP路由的选项,选择对应接口即可。
    在这里就是在swA的配置RIP路由页面开启RIP路由,选择port1,在swB的配置RIP路由页面开启RIP路由,选择port1和port2.在swC的配置RIP的路由页面开启RIP路由,选择port2.
(这样swA能ping通swC的port2,也就是20.1.1.1或者swC能ping通swA的port1,也就是10.1.1.1)

原理:每个开启RIP的交换机会定期发送其路由信息给邻近的设备。swB会将自己的路由(即它知道的网络信息)通过Port1发送给swA。swB会将自己的路由(即它知道的网络信息)通过Port2发送给swC。这样swA学习到了如何通往swC的路由,swC也知道了如何通往swA的路由


五、OSPF路由(主流)   ospf原理这里讲解不够详细(可以去b站搜一下)
给大家看一段复制过来的话:OSPF协议是一个链路状态内部网关路由协议,运行OSPF协议的路由器会将自己拥有的链路状态信息,通过启用OSPF协议的接口发送给其他OSPF协议设备,
同一个OSPF协议区域中的每台设备都会参与链路状态信息的创建、发送、接收与转发,直至这个区域中的所有OSPF协议设备都获得了相同的链路状态信息为止。
链路状态:OSPF协议是一种基于链路状态的路由协议,链路状态也指路由器的接口状态,其核心思想是,每台路由器都将自己的各个接口的接口状态(链路状态)共享给其他路由器。

一个OSPF协议网络可以被划分成多个区域(Area),至于为什么要划分区域,你想想要是当一个网络规模特别大的时候,如果不划分区域,所有的路由信息都会传递到每一个路由器,导致路由表十分庞大。所以通过划分区域,可以将路由信息限制在特定区域内,从而减少每个路由器的路由表大小。
如果一个OSPF协议网络只包含一个区域,则被称为单区域OSPF协议网络;
如果一个OSPF协议网络包含多个区域,则被称为多区域OSPF协议网络。
(1)一个OSPF协议网络中只有一个区域就是单区域,有多个区域就是多区域,每一个区域都有一个区域ID号标识,这个ID号是32位的二进制数表示;
(2)骨干区域:区域ID为0的区域,单区域OSPF网络的区域为骨干区域;
(3)普通区域:区域ID为非零的区域,在多区域中,除骨干区域外都为普通区域;
(4)普通区域之间的通信需要骨干区域的中转,当两者没直连时,需要虚链路技术实现。

原理:
1、通过交互Hello报文形成邻居关系
路由器运行OSPF协议后,会从所有启动OSPF协议的接口上发送Hello报文。如果两台路由器共享一条公共数据链路,并且能够成功协商各自Hello报文中所指定的某些参数,就能形成邻居关系。
2、通过泛洪LSA通告链路状态信息
形成邻居关系的路由器之间进一步交互LSA形成邻接关系,每台路由器根据自己周围的网络拓扑结构生成LSA,LSA描述了路由器所有的链路、接口、邻居及链路状态等信息,路由器通过交互这些链路信息来了解整个网络的拓扑信息。
3、通过组建LSDB形成带权有向图
通过LSA的泛洪,路由器会把收到的LSA汇总记录在LSDB中。最终,所有路由器都会形成同样的LSDB。
4、通过SPF算法计算并形成路由
当LSDB同步完成之后,每一台路由器都将以其自身为根,使用SPF算法来计算一个无环路的拓扑图来描述它所知道的到达每一个目的地的最短路径(最小的路径代价)。
5、维护和更新路由表
根据SPF算法得出最短路径树后,每台路由器将计算得出的最短路径加载到OSPF路由表形成指导数据转发的路由表项,并且实时更新。同时,邻居之间交互Hello报文进行保活,维持邻居关系或邻接关系,并且周期性地重传LSA。

下面举的例子是一个单区域的场景,避免太过复杂
场景:交换机A(swA)的port1的ip 10.1.1.1/24 交换机B(swB)的port1的ip 10.1.1.2/24、port2的ip 20.1.1.2/24,交换机C(swC)的port2的ip 20.1.1.1/24
连线状态:swA的port1连swB的port1,swB的port2连swC的port2

如果想通过ospf路由实现通信:
    在需要开启ospf路由的交换机的配置ospf路由页面勾选开启ospf路由的选项,配置路由标识符(唯一标识一台 OSPF 路由器,不同的路由器必须有不同的路由器 ID。)、然后再新增一个区域(配置区域ID,选择接口、选择区域类型)、配置基础带宽(每个链路都有一个成本值,该值与链路带宽的反比有关。带宽越高,成本值越低,反之亦然。)
    在这里就是在swA的配置OSPF路由页面开启OSPF路由,设置路由标识符(1.1.1.1)、设置基准带宽(100)、新增区域(区域ID:1、区域类型:普通区域、接口:port1)、其余默认
          在swB的配置OSPF路由页面开启OSPF路由,设置路由标识符(1.1.1.2)、设置基准带宽(100)、新增区域(区域ID:1、区域类型:普通区域、接口:port1、port2)、其余默认
          在swC的配置OSPF路由页面开启OSPF路由,设置路由标识符(1.1.1.3)、设置基准带宽(100)、新增区域(区域ID:1、区域类型:普通区域、接口:port2)、其余默认
    备注:想要正确建立邻居关系,则首先路由标识符不能一致,另外区域的区域ID和区域类型需要一样,只有区域ID和类型一致的区域才能建立邻居关系

配置完成后:swA则能与swC通信
    

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

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

相关文章

分层架构 IM 系统之多媒体功能设计与实现

现在 IM 系统已经不仅限于文本消息的通讯了,多媒体数据占据越来越多的比重,比如:文件传输、语音通话、视频通话等。 在前面的文章(《基于需求分析模型来结构化剖析 IM 系统》)中我们分析过,“多媒体消息”…

0.gitlab ubuntu20.04 部署问题解决

安装依赖: ① sudo apt-get update 出现: 解决方式: 去 /etc/apt/sources.list.d 这个目录删除或注释对应的list文件 第三方软件的源一般都以list文件的方式放在 /etc/apt/sources.list.d 这个目录 重新运行sudo apt-get update 安装…

Next.js v15 - 服务器操作以及调用原理

约定 服务器操作是在服务器上执行的异步函数。它们可以在服务器组件和客户端组件中调用,用于处理 Next.js 应用程序中的表单提交和数据修改。 服务器操作可以通过 React 的 “use server” 指令定义。你可以将该指令放在 async 函数的顶部以将该函数标记为服务器操…

什么是3DEXPERIENCE SOLIDWORKS,它有哪些角色和功能?

将业界领先的 SOLIDWORKS 3D CAD 解决方案连接到基于单一云端产品开发环境 3DEXPERIENCE 平台。您的团队、数据和流程全部连接到一个平台进行高效的协作工作,从而能快速的做出更好的决策。 目 录: ★ 1 什么是3DEXPERIENCE SOLIDWORKS ★ 2 3DEXPERIE…

【华为OD-E卷-开心消消乐 100分(python、java、c++、js、c)】

【华为OD-E卷-开心消消乐 100分(python、java、c、js、c)】 题目 给定一个 N 行 M 列的二维矩阵,矩阵中每个位置的数字取值为 0 或 1。矩阵示例如: 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 现需要将矩阵中所有的 1 进行反转为 0&#…

[Unity]【图形渲染】【游戏开发】Shader数学基础4-更多矢量运算

在计算机图形学和着色器编程中,矢量运算是核心的数学工具之一。矢量用于描述空间中的位置、方向、速度等各种物理量,并在图形变换、光照计算、纹理映射等方面起着至关重要的作用。本篇文章将详细讲解矢量和标量之间的乘法与除法、矢量的加法与减法、矢量的模与单位矢量、点积…

【漏洞复现】CVE-2023-37461 Arbitrary File Writing

漏洞信息 NVD - cve-2023-37461 Metersphere is an opensource testing framework. Files uploaded to Metersphere may define a belongType value with a relative path like ../../../../ which may cause metersphere to attempt to overwrite an existing file in the d…

Bcrypt在线密码加密生成器

具体前往:在线Bcrypt加密工具--使用bcrypt及生成salt的迭代次数强度参数计算生成哈希(摘要)

Django 模板分割及多语言支持案例【需求文档】-->【实现方案】

Django 模板分割及多语言支持案例 这个案例旨在提供一个清晰的示范,展示如何将复杂的页面分解为多个可复用的模板组件,使代码更加模块化和易于管理。希望这篇案例文章对你有所帮助。 概述 在 Django 项目开发中,使用模板分割和多语言支持能…

wxWidgets使用wxStyledTextCtrl(Scintilla编辑器)的正确姿势

开发CuteMySQL/CuteSqlite开源客户端的时候,需要使用Scintilla编辑器,来高亮显示SQL语句,作为C/C领域最成熟稳定又小巧的开源编辑器,Scintilla提供了强大的功能,wxWidgets对Scintilla进行包装后的是控件类:…

构建高性能异步任务引擎:FastAPI + Celery + Redis

在现代应用开发中,异步任务处理是一个常见的需求。无论是数据处理、图像生成,还是复杂的计算任务,异步执行都能显著提升系统的响应速度和吞吐量。今天,我们将通过一个实际项目,探索如何使用 FastAPI、Celery 和 Redis …

介绍 Html 和 Html 5 的关系与区别

HTML(HyperText Markup Language)是构建网页的标准标记语言,而 HTML5 是 HTML 的最新版本,包含了一些新的功能、元素、API 和属性。HTML5 相对于早期版本的 HTML(比如 HTML4)有许多重要的改进和变化。以下是…

【win10+RAGFlow+Ollama】搭建本地大模型助手(教程+源码)

一、RAGFlow简介 RAGFlow是一个基于对文档深入理解的开源RAG(Retrieval-augmented Generation,检索增强生成)引擎。 主要作用: 让用户创建自有知识库,根据设定的参数对知识库中的文件进行切块处理,用户向大…

qwt 之 QwtPlotPicker

QwtPlotMarker 和 QwtPlotPicker 是 Qwt 库中用于增强 QwtPlot 功能的两个重要类。它们分别用于在图中添加标记和实现交互式的选择或拖动功能。 QwtPlotPicker 提供了交互式的选择工具,它允许用户通过鼠标点击或拖动来选择图表中的数据点或区域。这对于实现缩放、平…

C/C++圣诞树

系列文章 序号直达链接1C/C爱心代码2C/C跳动的爱心3C/C李峋同款跳动的爱心代码4C/C满屏飘字表白代码5C/C大雪纷飞代码6C/C烟花代码7C/C黑客帝国同款字母雨8C/C樱花树代码9C/C奥特曼代码10C/C精美圣诞树11C/C俄罗斯方块12C/C贪吃蛇13C/C孤单又灿烂的神-鬼怪14C/C闪烁的爱心15C…

lua dofile 传参数

cat 1.lua arg[1] 111 arg[2] 222 dofile(./2.lua) cat 2.lua print("First argument is: " .. arg[1]) print("Second argument is: " .. arg[2]) 执行 lua 1.lua,结果为: First argument is: 111 Second argument is: 222 l…

电商数据流通的未来:API接口的智能化与自动化趋势

在数字化时代,电子商务行业正在以前所未有的速度发展,而API(应用程序编程接口)接口作为电商领域的重要组成部分,其应用和发展趋势也日益受到关注。API接口作为电商系统与外部服务或平台交互的桥梁,对电商数…

投标心态:如何在“标海战术”中保持清醒的头脑?

在竞争激烈的市场环境下,“标海战术”——即大规模参与投标——已经成为许多企业争取市场份额的重要策略。然而,盲目追求投标数量可能导致资源浪费、团队疲劳以及战略目标的模糊化。在这种高强度的竞争模式中,如何保持清醒的头脑,…

【苍穹外卖】学习心得体会-随笔

前言 写了很久,终于可以完整运行项目了,记录下这几天的心得体会回顾一下知识点 第一天、Git 分布式版本控制工具 一、Git概述 定义:是分布式版本控制工具,用于管理软件开发中的源代码文件,像Java类、xml文件、html…

windows C#-使用构造函数

实例化类或结构时,将会调用其构造函数。 构造函数与该类或结构具有相同名称,并且通常初始化新对象的数据成员。 在下面的示例中,通过使用简单构造函数定义了一个名为 Taxi 的类。 然后使用 new 运算符对该类进行实例化。 在为新对象分配内存…