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

super_vlan

Super VLAN产生的背景

就经典的酒店例子来说,若是将101房和102房的网络划分在同一个vlan下面,那么101房出现了一个懂得某些安全技术的大佬,就会使得102房的隐私得到严重的隐患

所以这时我们就需要将二层给隔离开,但又要去保证101房和102房之间的基本通信,所以我们就需要使得101房和102房之间二层隔离,而三层互通

方法1:将101房划分一个vlan并分配一个IP地址段,在102房划分另一个vlan并分配另一个IP地址段,这样也能使得两房之间的网络互通,但是一旦酒店规模增大,vlan的id还好说,但就会显得非常地浪费IP地址

方法2:为了解决方法1中浪费IP地址的问题,我们可以使用super vlan技术来解决,如给101房在物理层面上分配一个sub vlan 10,给102房在物理层面上分配一个sub vlan 20 ,而对于sub vlan 10/20,逻辑层面上,它们都属于super vlan 2。即可达到这些sub vlan都属于同一个子网和网关,而又二层隔离,节约IP地址段的目的

image-20250101120213433

super vlan概述

通过上面对super vlan的基本应用介绍,我们大致了解了super vlan和sub vlan的用途是怎么样的,但还是对super vlan怎么建,用什么建等理论问题有所欠缺

super vlan:用于创建SVI接口,但不包含物理接口

sub vlan:只包含物理接口,没有SVI接口

只是将sub vlan创建出来是没有办法让sub vlan之间的主机通信的,要想是sub vlan之间通信,则需要通过super vlan上开启ARP代理

相同sub vlan的通信

相同sub vlan通信的时候,由于PC3发出的ARP报文中携带vlan 10 的标签,这个vlan 10的标签被交换机看到之后,会将ARP报文泛洪到所有被绑定为vlan 10的端口

当PC4收到ARP报文后,会进行一个应答包的发送,以同样的方式发送给PC3

image-20250101235711913

不同sub vlan的通信

这里super vlan已经开启了ARP代理功能,而在整个转发的过程中,PC是并没有跨二层的概念的,虽然说两者通信的方式都是通过交换机SW1的MAC地址,但是对于PC3和PC4而言,它们两个一直是在一个广播域内的

image-20250102000120547

为什么要开启ARP代理

对于PC而言,根本没有VLAN的概念,PC3和PC4会认为自己和对方都处在同一个广播域,所以当发生PC3访问PC4的时候,PC3会直接发ARP包给SW,让SW去给PC4

但在没有开启ARP代理之前,SW去不会去给ARP包给PC4的,因为只是PC上没有VLAN的概念,一旦到了交换机上,就有VLAN的概念,交换机发现没有和PC3处于同一个VLAN物理接口,就不会在进行ARP包的转发

开启ARP代理之后,super vlan就会向所有的sub vlan发送ARP包,即一个为广播形式的ARP包,但前提是super vlan需要到达目的网段,才能进行数据的发送

交换机发送完广播形式的ARP包后,就可以寻找到PC4,PC4收到这个ARP包后,将会发送一个应答包

交换机收到应答之后,在交换机SW上会产生一个MAC地址汇总表,存储了所有PC的MAC地址的汇总表,如果下次有访问的请求,就可以直接根据该表进行转发

随后由交换机在发送PC3自己的MAC地址,而PC3和PC4学到的MAC地址实际上都是交换机的,只不过在PC的眼中没有VLAN的概念

所以PC3和PC4都会认为这是对方的MAC地址,再次由PC3访问PC4的情况,就会将数据交给交换机SW,由交换机SW来根据MAC地址表处理后面的转发

image-20250102002250671

sub vlan与其它普通vlan的二层通信

由于super vlan是不存在任何的成员接口的,即super vlan没有任何的物理接口,所以但SW1给SW2发送报文的时候,是不包含任何super vlan的信息的

换一句话说,对于除了sub vlan 来说,将没有任何人知道super vlan的任何信息

所以当数据sub vlan 10要去访问SW2下的vlan10时,由于SW2不知道super vlan 的存在,就只会将sub vlan 10看作普通的vlan 10

从而,我们得出结论,sub vlan 与普通vlan的通信方式与普通vlan 和普通vlan 的通信方式是一致的

image-20250102003245353

image-20250102003254625

sub vlan与其它的三层网络通信

刚刚已经说过了,除了sub vlan,在整个网络体系中,就没有其它人知道super vlan这个概念了

所以若是sub vlan与其它的三层网络进行通信,也是走普通的IP网络转发

image-20250102141558125

super vlan的配置

image-20250102181107722

既然是高级的vlan,那么基础也是从vlan开始,所以第一步,我们要做的应该是创建vlan

SW(config)#vlan range 10,20,30,2

告诉vlan2,它是super vlan,并关联它的sub vlan为10,20,30

SW(config)#vlan 2
SW(config-vlan)#SW(config)#vlan 2
SW(config-vlan)#subvlan 10,20,30

创建SVI接口,这一步也是为sub vlan们配置网关

SW(config)#int vlan 2
SW(config-if-VLAN 2)#ip add 192.168.1.2 24

给sub vlan定义地址范围,这一步是可选的,当存在DHCP服务器的时候,这一步就是非必要的

重点:因为如果dhcp分配的给vlan 10中其中一台主机的地址为192.168.1.120,而我们却定义vlan 10 的地址段为192.168.1.10~192.168.1.40

这样会造成DHCP分配地址成功,但是该主机不能与外界通信的后果

SW(config)#vlan 10
SW(config-vlan)#subvlan-address-range 192.168.1.10 192.168.1.50
SW(config-vlan)#ex
SW(config)#vlan 20
SW(config-vlan)#subvlan-address-range 192.168.1.60 192.168.1.100
SW(config-vlan)#ex
SW(config)#vlan 30
SW(config-vlan)#subvlan-address-range 192.168.1.110 192.168.1.160
SW(config-vlan)#ex

将vlan划入到对应的接口

SW(config)#int g0/0 
SW(config-if-GigabitEthernet 0/0)#switchport mode access 
SW(config-if-GigabitEthernet 0/0)#switchport access vlan 10
SW(config-if-GigabitEthernet 0/0)#int g0/1
SW(config-if-GigabitEthernet 0/1)#switchport mode access 
SW(config-if-GigabitEthernet 0/1)#switchport access vlan 20
SW(config-if-GigabitEthernet 0/1)#int g0/2
SW(config-if-GigabitEthernet 0/2)#switchport mode access 
SW(config-if-GigabitEthernet 0/2)#switchport access vlan 30
SW(config-if-GigabitEthernet 0/2)#ex

super vlan 的限制

super vlan虽然解决了IP地址浪费的问题,但是还是存在着不少的缺陷的

1、super vlan往下后,没有成员接口,只有sub vlan,换句话说super vlan不属于任何一个物理接口,只有sub vlan才有物理接口,如果super vlan绑定到接口下,将会出现如下的报错

image-20250102201119899

2、super vlan不能作为其它super vlan的sub vlan,即在super vlan中是没有层级概念的

3、vlan1不能属于super vlan,因为在默认情况下,每个物理接口下都打上了vlan 1的标签,又因为super vlan不可能被绑定到物理接口下,所以vlan 1就更不可能成为super vlan了

4、在sub vlan上不能配置IP地址,sub vlan 没有路由口,即无SVI接口

5、一个sub vlan只能属于一个super vlan,我们可以将super vlan看作sub vlan下联成员的网关,而一个设备不能存在两个网关,自然不能存在属于两个super vlan

6、sub vlan的删除不能直接使用no vlan命令来删除,需要先将sub vlan转换成普通的vlan才能正常地删除

image-20250102204759204

7、基于super vlan所在设备的接口ACL和QOS,对于sub vlan来说是无效的

super vlan实验

image-20250102215257245

目的1:PC3和PC4都为一个sub vlan,PC5为另一个sub vlan,PC6不为sub vlan,但是处于vlan 10下

基础IP配置

PC3上,192.168.1.30

VPCS> ip 192.168.1.30 255.255.255.0 192.168.1.2

PC4上,192.168.1.40

VPCS> ip 192.168.1.40 255.255.255.0 192.168.1.2

PC5上,192.168.1.50

VPCS> ip 192.168.1.50 255.255.255.0 192.168.1.2

PC6上,192.168.1.60

VPCS> ip 192.168.1.60  255.255.255.0 192.168.1.2

配置SW1和SW2上的接口类型为trunk,并且允许所有vlan通过

SW1上

SW1(config)#int g0/3
SW1(config-if-GigabitEthernet 0/3)#switchport mode trunk 
SW1(config-if-GigabitEthernet 0/3)#switchport trunk allowed vlan all

SW2上

SW2(config)#int g0/1
SW2(config-if-GigabitEthernet 0/1)#switchport mode trunk 
SW2(config-if-GigabitEthernet 0/1)#switchport trunk allowed vlan all

配置super vlan

在SW1上创建所需要的vlan

SW1(config)#vlan range 10,20,2 
SW1(config-vlan-range)#ex

在SW1上配置super vlan,并划分sub vlan

SW1(config)#vlan 2
SW1(config-vlan)#supervlan
SW1(config-vlan)#subvlan 10,20
SW1(config-vlan)#ex

为sub vlan划分物理接口

SW1(config)#int g0/0 
SW1(config-if-GigabitEthernet 0/0)#switchport mode access 
SW1(config-if-GigabitEthernet 0/0)#switchport access vlan 10
SW1(config-if-GigabitEthernet 0/0)#int g0/1
SW1(config-if-GigabitEthernet 0/1)#switchport mode access 
SW1(config-if-GigabitEthernet 0/1)#switchport access vlan 10
SW1(config-if-GigabitEthernet 0/1)#int g0/2
SW1(config-if-GigabitEthernet 0/2)#switchport mode access 
SW1(config-if-GigabitEthernet 0/2)#switchport access vlan 20
SW1(config-if-GigabitEthernet 0/2)#ex

在我们没有配置SVI,即没有开启ARP代理之前,由于PC3和PC4都是处于sub vlan10,所以PC3与PC4是互通的,而PC5却是处于sub vlan 20下,所以此时PC3/PC4去pingPC5是ping不通的

image-20250102220339015

现在在SW1上将SVI配上,会默认自动开启ARP代理,此时PC3/PC4应该是能ping通PC5的

SW1(config)#int vlan 2
SW1(config-if-VLAN 2)#ip add 192.168.1.2 24
SW1(config-if-VLAN 2)#ex

PC3ping通PC5图片

image-20250102220425179

此时若是手动将ARP代理给关掉,则会返回刚刚PC3/PC4去pingPC5是ping不通的现象

SW1(config)#vlan 2
SW1(config-vlan)#no proxy-arp 

PC3再次ping不通PC5图片,如果出现ping的现象,那说明刚刚SW1发个PC3的MAC地址缓存还存在

image-20250102220806429

目标2:验证sub vlan 10与普通vlan 10之间的通信是三层还是二层

现在我们已经将ARP代理手动关闭了,如果由处于sub vlan 10的PC3去ping处于普通vlan 10 的PC6能ping通的话,那么就说明sub vlan 10与普通vlan 10之间的通信走的是二层,因为开启ARP代理才能代表走三层

在SW2上创建vlan 10并为vlan 10划分物理接口

SW2(config)#vlan 10
SW2(config-vlan)#ex

sub vlan 10的PC3去ping处于普通vlan 10 的PC6能ping通图片如下,说明sub vlan 10与普通vlan 10之间的通信是走三层的

image-20250102221328334

相关文章:

super_vlan

Super VLAN产生的背景 就经典的酒店例子来说,若是将101房和102房的网络划分在同一个vlan下面,那么101房出现了一个懂得某些安全技术的大佬,就会使得102房的隐私得到严重的隐患 所以这时我们就需要将二层给隔离开,但又要去保证10…...

前端CSS3学习

学习菜鸟教程 火狐-moz- 谷歌 Safari -webkit- 前面都加这个,可能才生效 边框 border: 1px solid #ddd 粗细 样式 样色 经常和border-radius 一块用 border-radius: 50px 20px 第一个左右 第二个右左 border-top-left-radius … box-shadow: 10px 5px 10px 0 #88…...

HTML——58.value和placeholder

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>value和placeholder属性</title></head><body><!--input元素的type属性&#xff1a;(必须要有)1.指定输入内容的类型2.默认为text,单行文本框-->&l…...

STM32单片机芯片与内部57 SPI 数据手册 寄存器

目录 一、SPI寄存器 1、SPI控制寄存器 1(SPI_CR1)(I2S模式下不使用) 2、SPI控制寄存器 2(SPI_CR2) 3、SPI 状态寄存器(SPI_SR) 4、SPI 数据寄存器(SPI_DR) 5、SPI CRC多项式寄存器(SPI_CRCPR)(I2S模式下不使用&#xff09; 6、SPI Rx CRC寄存器(SPI_RXCRCR)(I2S模式下不…...

前端异常处理合集

文章目录 前言&#xff1a;思考&#xff1a;一、为什么要处理异常&#xff1f;二、需要处理哪些异常&#xff1f; js 代码处理基本的try...catch语句 Promise 异常Promise 错误处理async/await 全局处理错误捕获window.onerrorwindow.onunhandledrejectionwindow.addEventListe…...

求职:求职者在现场面试中应该注意哪些问题?

求职者在现场面试中需要注意诸多方面的问题 面试前的准备 了解公司信息&#xff1a; 提前通过公司官网、社交媒体账号、新闻报道等渠道&#xff0c;熟悉公司的发展历程、业务范围、企业文化、主要产品或服务等内容。例如&#xff0c;如果是应聘一家互联网科技公司&#xff0c…...

第2章波动光学引论—抓本质,本质必定简单

1波动光学的电磁理论 1.1波动方程 1&#xff09;波动方程是通过描述波函数随时间和空间的变化来表达波动的传播和演化。 2&#xff09;一维波动方程&#xff1a; a.一维波动方程描述了沿着一条直线传播的波动。它的一般形式为&#xff1a; ∂u/∂t v ∂u/∂x 其中&#xff…...

分类模型评估利器-混淆矩阵

相关文章 地理时空动态模拟工具介绍&#xff08;上&#xff09; 地理时空动态模拟工具介绍&#xff08;下&#xff09;地理时空动态模拟工具的使用方法 前言 混淆矩阵&#xff08;Confusion Matrix&#xff09;是机器学习领域中用于评估分类模型性能的一种工具。它通过矩阵的…...

算法题(23):只出现一次的数字

初级&#xff1a; 审题&#xff1a; 需要输出只出现了一次的数据&#xff0c;其他数据均出现了两次 思路&#xff1a; 若不限制空间复杂度&#xff1a; 方法一&#xff1a;哈希表 用哈希映射循环一次&#xff0c;把对应数字出现的次数记录到数组里面&#xff0c;然后再遍历一次…...

@RestController与@Controller区别

区别1&#xff1a; RestController是Controller的升级版 区别2&#xff1a; RestController用于标识一个类作为控制器&#xff0c;并且可以处理HTTP请求。控制器类通常用于接收用户输入并决定返回响应的内容。 RestController通常用于返回JSON或XML数据 区别3&#xff1a;…...

使用ExecutorService和@Async来使用多线程

文章目录 使用ExecutorService和Async来使用多线程采用ExecutorService来使用多线程多线程过程的详细解释注意事项优点 使用Async来使用多线程对比Async和ExecutorService的多线程使用方式使用 ExecutorService 的服务类使用 Async 的服务类异步任务类自定义线程池主应用类解释…...

计算机网络 (19)扩展的以太网

前言 以太网&#xff08;Ethernet&#xff09;是一种局域网&#xff08;LAN&#xff09;技术&#xff0c;它规定了包括物理层的连线、电子信号和介质访问层协议的内容。以太网技术不断演进&#xff0c;从最初的10Mbps到如今的10Gbps、25Gbps、40Gbps、100Gbps等&#xff0c;已成…...

构造器/构造方法

1. 构造器 1.1 概述 先浏览下面简单代码&#xff1b; class Cons{ // 属性int age;String name; // 方法public void show(){System.out.println("age"age);} } class ConsTest{public static void main(String[] args) {Cons c new Cons();// Cons() 就是…...

异常

目录 1. 异常的概念及使用 1.1 异常的概念 1.2 异常的抛出和捕获 1.3 栈展开 1.4 查找匹配的处理代码 1.5 异常的重新抛出 1.6 异常安全问题 1.7 异常规范 2. 标准库的异常 1. 异常的概念及使用 1.1 异常的概念 异常处理机制允许程序中独⽴开发的部分能够在运⾏时就…...

MySQL中distinct和group by去重的区别

MySQL中distinct和group by去重的区别 在MySQL中&#xff0c;我们经常需要对查询结果进行去重&#xff0c;而DISTINCT和GROUP BY是实现这一功能的两种常见方法。虽然它们在很多情况下可以互换使用&#xff0c;但它们之间还是存在一些差异的。接下来&#xff0c;我们将通过创建测…...

Qt判别不同平台操作系统调用相应动态库读取RFID

本示例使用的读卡器&#xff1a;https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1b8jdyXi&ftt&id562957272162 #include <QDebug> #include "mainwindow.h" #include "./ui_mainwindow.h" #include "QLibrary"…...

vue2+echarts实现水球+外层动效

实现效果 安装echarts-liquidfill 需要安装echarts-liquidfill&#xff01;&#xff01;&#xff01;需要安装echarts-liquidfill&#xff01;&#xff01;&#xff01;需要安装echarts-liquidfill&#xff01;&#xff01;&#xff01; 安装命令 npm install echarts-liqui…...

C++ 基础思维导图(一)

目录 1、C基础 IO流 namespace 引用、const inline、函数参数 重载 2、类和对象 类举例 3、 内存管理 new/delete 对象内存分布 内存泄漏 4、继承 继承权限 继承中的构造与析构 菱形继承 1、C基础 IO流 #include <iostream> #include <iomanip> //…...

【gopher的java学习笔记】依赖管理方式对比(go mod maven)

什么是go mod go mod是Go语言官方引入的模块管理工具&#xff0c;旨在简化项目依赖管理&#xff0c;提高构建的可重复性和稳定性。以下是关于go mod的详细介绍&#xff1a; 在go mod之前&#xff0c;Go语言主要依赖GOPATH和vendor目录来管理项目依赖。然而&#xff0c;这种方式…...

CTFshow—远程命令执行

29-35 Web29 代码利用正则匹配过滤了flag&#xff0c;后面加了/i所以不区分大小写。 可以利用通配符绕过 匹配任何字符串&#xff0f;文本&#xff0c;包括空字符串&#xff1b;*代表任意字符&#xff08;0个或多个&#xff09; ls file * ? 匹配任何一个字符&#xff08;不…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

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

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

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

Mysql故障排插与环境优化

前置知识点 最上层是一些客户端和连接服务&#xff0c;包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念&#xff0c;为通过安全认证接入的客户端提供线程。同样在该层上可…...

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践&#xff0c;很多人以为AI已经强大到不需要程序员了&#xff0c;其实不是&#xff0c;AI更加需要程序员&#xff0c;普通人…...

麒麟系统使用-进行.NET开发

文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的&#xff0c;如果需要进行.NET开发&#xff0c;则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET&#xff0c;所以要进…...

RabbitMQ 各类交换机

为什么要用交换机&#xff1f; 交换机用来路由消息。如果直发队列&#xff0c;这个消息就被处理消失了&#xff0c;那别的队列也需要这个消息怎么办&#xff1f;那就要用到交换机 交换机类型 1&#xff0c;fanout&#xff1a;广播 特点 广播所有消息​​&#xff1a;将消息…...