端口镜像SPAN与RSPAN

端口镜像概述

端口镜像的作用主要在于一些难度较大的网络技术的学习中,我们通过抓包对报文的分析,可以更好地理解

还有的就是在网络排障的过程中,我们可以通过抓包分析数据报文的收发等状态,来判断在哪个设备节点上出现了问题

端口镜像最主要使用的技术是SPAN,所以端口镜像也被称为是SPAN或端口监听

端口镜像最重要的概念是,将一个端口的入/出/双向流量复制一份到另一个端口上,注意,这里指的是复制,而并不是直接转发。端口镜像最多只是起到分析流量的作用,并没有能力去控制流量

如下图,通过端口镜像我们可以将③的出/入/双向流量复制一份给①,从而使得网络监测系统对③端口以及下联两台PC的流量进行分析

image-20250104165300699

端口镜像原理

端口镜像定义了独自属于端口镜像的会话,SPAN会话,在这个SPAN会话中有两种的端口角色,1、目的端口,2、源端口

刚刚我们说到,将一个端口的入/出/双向流量复制一份到另一个端口上,在这其中,存在着两种端口类型的概念,被复制流量的那个端口称为被监控端口,而负责分析流量的那个端口被称为监控端口

与目的端口和源端口相互结合,我们得到了一个新的概念,目的端口就是那个被监控的端口,而源端口就是那个去监控的端口,如下图所示

即源端口会复制一份流量称为镜像报文然后转发给目的端口

image-20250104170609235

源端口的特性

源端口也称端口镜像中的被监控口

在SPAN会话中,无论是源端口的出/入/双向的数据,都会被监控到

通过上图我们发现,在一个SPAN会话中,有许多个源端口,也暗示着我们源端口的数量是不受限制的,但在物理层面上还是要收到设备性能的限制

1、源端口的角色有很多种,源端口可以作为二层口、三层口(no switchport)或者是AP口

2、一个端口不能同时作为源端口和目的端口

3、源端口和目的端口之间可以是跨网段通信,如源端口和目的端口所在的vlan可以相同也可以不同

目的端口的特性

目的端口也称为端口镜像中的监控口

在SPAN会话中,负责接收并分析源端口发送来的镜像报文

1、同样的,目的端口的角色也可以是二层口、三层口(no switchport)、AP口

2、与之前说的一样,目的端口也不能同时作为源端口

3、默认情况下,目的端口是不能即用来发送数据,又用来做端口镜像,这里说了默认情况,那么就说明,我们可以通过配置命令来进行改变,就是在配置时加上switch参数

端口镜像SPAN的配置

如下拓扑图,通过在交换机SW1上配置端口镜像,g0/1作为源端口,g0/2作为目的端口,实现在PC0上可以监控PC1和PC2访问外部流量的效果

image-20250104174046298

基础配置:SW1和SW2之间的链路为trunk链路

SW1上

SW1(config)#int g0/1
SW1(config-if)#switchport mode trunk

SW2上

SW2(config)#int g0/1
SW2(config-if)#switchport mode trunk

因为源端口和目的端口都在SW1上,所以这里的端口镜像实验,我们都是在SW1进行配置即可

创建SPAN会话为会话1,为会话创建端口镜像的源端口g0/1,抓包方向为双向

SW1(config)#monitor session 1 source int g0/1 both
//这条命令同时做了两件事情,1、创建SPAN会话1,创建端口镜像的源端口g0/1,both表示抓包方向为双向

创建SPAN session 1的目的端口为g0/2,并配置switch参数

SW1(config)#monitor session 1 destination int g0/2 switch

端口镜像SPAN会话的配置,只需要上述的简单两步即可完成

同时也要注意在配置源端口被监控双向抓包的时候,除了both,我们还要知道只抓出流量和入流量

在原本both的位置,如果配置rx,则表示只抓包抓取入流量的数据包;如果配置为tx,则表示只抓包抓出流量的数据包

image-20250104180825419

我们还可以show一下,来验证我们的配置

查看SPAN的配置

SW1(config)#show monitor session 1

image-20250104190953094

远程端口镜像RSPAN

上面我们的实验配置都是在一台设备上进行端口镜像的,但是某些场景下,我们需要将其它的端口的报文镜像一份到本设备上来

这个时候就需要另外一种SPAN,就是RSPAN,RSPAN可以做到监控其它设备上的端口,即源端口和目的端口不再一台设备上

image-20250104194949703

RSPAN原理

RSPAN会定义了一个专门用于传输镜像报文的vlan,叫做Remote vlan

由于Remote vlan 的存在,RSPAN中又产生三种设备的角色和功能

1、源设备,源端口所在的交换机,负责将源端口的数据复制一份,接着通过Remote vlan传递到目的设备或者是中间设备上

2、中间设备,源设备与目的设备之间并且在remote vlan上的交换机,负责将镜像报文传递到下一个中间设备或则是目的设备上

3、目的设备,目的端口所在的交换机,负责接收并分析镜像报文

RSPAN配置流程

image-20250104203736195

RSPN配置大致思路,既然是交换机互联,我们就必须先将交换机与交换机之间的trunk的链路配置完成

随后需要源设备、中间设备和目的设备上定义remote vlan

接着就开始对源设备、中间设备和目的设备不同角色进行不同的配置即可

1、源设备、中间设备和目的设备上定义remote vlan,并配置交换机与交换机之间的trunk链路

SW1上

SW1(config)#int g0/2 
SW1(config-if)#switchport mode trunk 
SW1(config-if)#switchport trunk allowed vlan all
SW1(config-if)#ex
SW1(config)#vlan 7	
SW1(config-vlan)#remote-span 		//使vlan7称为remote-vlan
SW1(config-vlan)#ex

SW2上

SW2(config)#int range g0/1-2
SW2(config-if-range)#switchport mode trunk 
SW2(config-if-range)#switchport trunk allowed vlan all
SW2(config-if-range)#ex
SW2(config)#vlan 7
SW2(config-vlan)#remote-span 
SW2(config-vlan)#ex

SW3上

SW3(config)#int g0/1
SW3(config-if)#switchport trunk encapsulation dot1q 
SW3(config-if)#switchport mode trunk 
SW3(config-if)#switchport trunk allowed vlan all
SW2(config-if-range)#ex
SW3(config)#vlan 7
SW3(config-vlan)#remote-span 
SW3(config-vlan)#ex

2、实际上,在RSPAN中,中间设备只需要允许配置trunk链路和允许全部vlan通过即可

配置源设备

SW1上

创建RSPAN会话1,并指定其为源设备

SW1(config)#monitor session 1 remote-source		//指定SW1为源设备

配置g0/1为源端口,并且抓包方向为双向

SW1(config)#monitor session 1 source int g0/1 both

配置源设备复制的镜像报文应该从那个vlan出(即那个是remote vlan)和从哪个接口出,并配置输出端口可交换功能

SW1(config)#monitor session 1 destination remote vlan 7 int g0/2 switch

配置目的设备

SW3上

创建RSPAN会话1,并指定其为目的设备

SW3(config)#monitor session 1 remote-destination

配置g0/2为目的端口,并配置从哪个remote vlan接收镜像报文

SW3(config)#monitor session 1 desination remote vlan 7 int g0/2 switch

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

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

相关文章

基于Web的足球青训俱乐部管理后台系统的设计与开发源码(springboot+mysql+vue)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的基于Web的足球青训俱乐部管理后台系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基…

IDEA 撤销 merge 操作(详解)

作为一个开发者,我们都知道Git是一个非常重要的版本控制工具,尤其是在协作开发的过程中。然而,在使用Git的过程中难免会踩一些坑,今天我来给大家分享一个我曾经遇到的问题:在使用IDEA中进行merge操作后如何撤销错误的合…

用matlab调用realterm一次性发送16进制数

realterm采用PutString接口进行发送,需要注意的是发送的16进制数前面要加入0x标志。只有这样,realterm才能将输入的字符串识别为16进制数的形式。 另外,PutString函数支持两个参数输入,第一个参数为字符串,第二个参数为发送形式&…

C++基础概念复习

前言 本篇文章作基础复习用,主要是在C学习中遇到的概念总结,后续会继续补充。如有不足,请前辈指出,万分感谢。 1、什么是封装,有何优点,在C中如何体现封装这一特性? 封装是面向对象编程&…

【C++】矩阵转置问题详解与优化

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目解析💯第一种实现方式:我的初始做法实现思路优缺点分析 💯第二种实现方式:我的优化做法实现思路优缺点分析 &#x1f4a…

在线二维码生成器-GO在线工具-文本工具

一款高效、便捷的在线二维码生成工具,支持生成文本、链接、名片等多种类型的二维码。无需安装软件,快速在线生成高清二维码,适用于个人使用和商业推广。免费使用,让二维码生成变得更简单。 gotool

【微服务】2、网关

Spring Cloud微服务网关技术介绍 单体项目拆分微服务后的问题 服务地址问题:单体项目端口固定(如黑马商城为8080),拆分微服务后端口各异(如购物车808、商品8081、支付8086等)且可能变化,前端难…

SpringBoot3-深入理解自动配置类的原理(尚硅谷SpringBoot3-雷神)

文章目录 目录了解自动配置 一、导入对应场景的Mean依赖:1、引入依赖**找到自动配置类的所有配置都存放在哪里** 二、编写主程序:SpringBootApplication观察源码时所需要知道的几个核心注解:1、观察SpringBootApplication源码都做了什么 三、…

图像分割基础:使用Python和scikit-image库

大家好,今天我们将一起探讨图像分割的基础知识,并使用Python编程语言以及scikit-image库来实现一个简单的图像分割示例。图像分割是图像处理中的一项重要技术,它允许我们将图像划分为多个部分或对象,这对于图像分析和计算机视觉任…

SpringBoot中实现拦截器和过滤器

【SpringBoot中实现过滤器和拦截器】 1.过滤器和拦截器简述 过滤器Filter和拦截器Interceptor,在功能方面很类似,但在具体实现方面差距还是比较大的。 2.过滤器的配置 2.1 自定义过滤器,实现Filter接口(SpringBoot 3.0 开始,jak…

基于LightGBM的集成学习算法

目录 一、LightGBM基本原理1.1 基于直方图的决策树算法1.1.1 连续变量分箱 1.2 互斥特征捆绑1.2.1 互斥特征捆绑计算流程1.2.2 互斥特征捆绑算法基本原理1.2.2.1 冲突比例(conflict_rate)1.2.2.2 图着色1.2.2.3 特征捆绑 1.3 基于梯度的单边采样&#xf…

trendFinder - 利用 AI 掌握社交媒体上的热门话题

1600 Stars 177 Forks 7 Issues 2 贡献者 MIT License Javascript 语言 代码: https://github.com/ericciarla/trendFinder 更多AI开源软件:AI开源 - 小众AI Trend Finder 收集并分析来自关键影响者的帖子,然后在检测到新趋势或产品发布时发送 Slack 通知…

Level DB --- BloomFilterPolicy

BloomFilterPolicy是Level DB中重要的数据过滤模块,它主要用来先过滤在Block中不存在的key,减少Block的搜索计算量。 Bloom Filter 从原理上来讲Bloom FIlter相对来说原理还是比较简单的,将一个key经过一次(组合)ha…

ELK 使用教程采集系统日志 Elasticsearch、Logstash、Kibana

前言 你知道对于一个系统的上线考察,必备的几样东西是什么吗?其实这也是面试中考察求职者,是否真的做过系统开发和上线的必备问题。包括:服务治理(熔断/限流) (opens new window)、监控 (opens new window)和日志,如果…

【MySQL】九、表的内外连接

文章目录 前言Ⅰ. 内连接案例:显示SMITH的名字和部门名称 Ⅱ. 外连接1、左外连接案例:查询所有学生的成绩,如果这个学生没有成绩,也要将学生的个人信息显示出来 2、右外连接案例:对stu表和exam表联合查询,把…

机器学习周报-ModernTCN文献阅读

文章目录 摘要Abstract 0 提升有效感受野(ERF)1 相关知识1.1 标准卷积1.2 深度分离卷积(Depthwise Convolution,DWConv)1.3 逐点卷积(Pointwise Convolution,PWConv)1.4 组卷积(Grou…

计算机的错误计算(二百零二)

摘要 利用三个大模型化简计算 前面分式的分子为零,因此正确值是后面的数值300.09...321 . 让三个大模型计算,它们均没有看出分式的分子中被减数与减数是相等的。因此,均得出了错误结果。 例1. 化简计算摘要中算式的值。 下面是一个大模型的…

2025-01-04 Unity插件 YodaSheet1 —— 插件介绍

文章目录 1 介绍2 工作原理2.1 ScriptableObject -> YadeSheetData2.2 YadeDatabase 存储多个 YadeSheetData 3 用途4 缺点5 推荐 1 介绍 ​ Yade 提供类似于 Excel 或者 Google Sheets 的表格编辑器,可以轻松地在 Unity 编辑器中 编辑,搜索&#xf…

connect to host github.com port 22: Connection timed out 的解决方法

原因是 Github 被 GFW 屏蔽了。 Windows 系统,打开 C:\Windows\System32\drivers\etc,复制其中的 hosts 文件至桌面,用文本编辑器或者其他工具打开。 复制以下内容进去: 140.82.114.4 github.com 151.101.1.6 github.global.ss…

memcached的基本使用

memcached是一种基于键值对的内存数据库,一般应用于缓存数据,提高数据访问速度,减轻后端数据库压力。 安装 这里以Ubuntu为例,其他系统安装方法请看官方文档。 sudo apt-get update sudo apt-get install memcached启动 memca…