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

MUX VLAN

目录

原理概述

实验目的 

实验内容

实验拓扑

1.基本配置

2.使用Hybrid端口实现网络需求

3.使用Mux VLAN实现网络需求 


原理概述

        在实际的企业网络环境中,往往需要所有的终端用户都能够访问某些特定的服务器,而用户之间的访问控制规则则比较复杂。在这样的场景下,使用普通VLAN划分的方法往往是很难满足需求的,通常的解决方法是使用Mux VLAN。

        Mux VLAN拥有一个Principal VLAN,即主VLAN,同时拥有多个与主VLAN关联的Subordinate VLAN,即从VLAN。从VLAN又有两种类型,一种是Separate VLAN,即隔离型从VLAN,另一种是Group VLAN,即互通型从VLAN。任何从VLAN中的设备都能够与主VLAN中的设备进行通信。除此之外,互通型从VLAN中的设备只能与本互通型从VLAN中的设备进行通信,不能与其它互通型从VLAN中的设备进行通信,也不能与隔离型从VLAN中的设备进行通信;隔离型从VLAN中的设备不能与互通型从VLAN中的设备进行通信,也不能与其它隔离型从VLAN中以及本隔离型从VLAN中的设备进行通信。

Mux VLANVLAN类型所属端口通信规则

Principal VLAN

主VLAN

principal port

主端口

可以和所有VLAN通信

Subordinate VLAN

    从VLAN

Group VLAN

互通型从VLAN

Group port

互通型从端口

可以和Principal VLAN和本VLAN通信

Separate VLAN

隔离型从VLAN

Separate port

隔离型从端口

只能和Principal VLAN通信

        另外需要说明的是,交换机上加入Mux VLAN的端口只能允许一个VLAN的帧通过,允许多个VLAN的帧通过的端口是不能被加入到Mux VLAN中的。

实验目的 

理解Mux VLAN的应用场景

掌握Mux VLAN的配置方法

实验内容

实验拓扑如图所示。本实验模拟了一个公司网络,PC-1和PC-2为部门A的终端电脑,PC-3和PC-4为访客的终端电脑,Server-1为公司服务器。网络需求是:访客只能与服务器进行通信,不能与其它访客以及部门A的终端进行通信。部门A的终端可以与服务器进行通信,也可以与部门A的其它终端进行通信。网络管理员需要分别使用Hybrid端口的方法和Mux VLAN的方法来实现上述需求。

实验拓扑

 1.基本配置

根据拓扑图进行相应的基本配置,PC-1的配置过程如下所示。

在PC-1上使用ping命令测试与PC-2的连通性,如下图所示。

 

其它设备的连通性测试过程在此省略。

2.使用Hybrid端口实现网络需求

基于网络需求,可以将Server-1划分至VLAN 10,部门A划分至VLAN 20,访客A划分至VLAN 30,访客B划分至VLAN 40。

在SW1上创建相应的VLAN。 

[sw1]vlan batch 10 20 30 40

对于SW1的G0/0/1端口和G0/0/2端口,配置端口类型为Hybrid,并要求端口对于收到的Untagged帧添加VLAN 20的标签后进行转发,且在发送VLAN 10和VLAN 20的帧之前进行去标签处理。

[sw1]int g0/0/1
[sw1-GigabitEthernet0/0/1]port link-type hybrid
[sw1-GigabitEthernet0/0/1]port hybrid untagged vlan 10 20
[sw1-GigabitEthernet0/0/1]port hybrid pvid vlan 20
[sw1-GigabitEthernet0/0/1]int g0/0/2
[sw1-GigabitEthernet0/0/2]port link-type hybrid
[sw1-GigabitEthernet0/0/2]port hybrid untagged vlan 10 20
[sw1-GigabitEthernet0/0/2]port hybrid pvid vlan 20

对于SW1的G0/0/5端口,配置端口类型为Hybrid,并要求端口对于收到的Untagged帧添加VLAN 10的标签后进行转发,且在发送属于VLAN 10、VLAN 20、VLAN 30和VLAN 40的帧之前进行去标签处理。

[sw1]int g0/0/5
[sw1-GigabitEthernet0/0/5]port link-type hybrid
[sw1-GigabitEthernet0/0/5]port hybrid untagged vlan 10 20 30 40
[sw1-GigabitEthernet0/0/5]port hybrid pvid vlan 10

对于SW1的G0/0/3端口,配置端口类型为Hybrid,并要求端口对于收到的Untagged帧添加VLAN 30的标签后进行转发,且在发送属于VLAN 10和VLAN 30的帧之前进行去标签处理。 

[sw1]int g0/0/3
[sw1-GigabitEthernet0/0/3]port link-type hybrid
[sw1-GigabitEthernet0/0/3]port hybrid untagged vlan 10 30
[sw1-GigabitEthernet0/0/3]port hybrid pvid vlan 30

对于SW1的G0/0/4端口,配置端口类型为Hybrid,并要求端口对于收到的Untagged帧添加VLAN 40的标签后进行转发,且在发送属于VLAN 10和VLAN 40的帧之前进行去标签处理。  

[sw1]int g0/0/4
[sw1-GigabitEthernet0/0/4]port link-type hybrid
[sw1-GigabitEthernet0/0/4]port hybrid untagged vlan 10 40
[sw1-GigabitEthernet0/0/4]port hybrid pvid vlan 40 

 配置完成后,在PC-3上使用ping命令测试与PC-1、PC-4、Server-1的连通行性,如下图所示。

从上图中可以看到,PC-3只能够与Server-1进行通信。

在PC-1上使用ping命令测试与PC-2、Server-1、PC-3之间的连通性,如下图所示。

从上图中可以看到,PC-1能够与同属部门A的PC-2进行通信,也能够与Server-1进行通信。至此,网络的需求完全得到了满足。

3.使用Mux VLAN实现网络需求 

使用Hybrid端口的方法虽然能够实现网络需求,但是,为了隔离不同访客间的互相访问,就需要为每一个访客规划一个VLAN,同时SW1上连接Server-1的端口的配置也要进行相应的修改。显然,当访客数量快速增长时,这种方法会变得非常笨拙。下面使用Mux VLAN方法来解决这个问题。

将VLAN 10作为Mux VLAN中的主VLAN,将部门A所属的VLAN 20作为互通型从VLAN,将所有访客均划分至VLAN 30,并将VLAN 30作为隔离型从VLAN。由于SW1上加入Mux VLAN的端口仅能够允许一个VLAN的帧通过,所以需要将加入Mux VLAN的端口类型修改为Access。

[sw1]int g0/0/1
[sw1-GigabitEthernet0/0/1]port link-type access
[sw1-GigabitEthernet0/0/1]port default vlan 20
[sw1-GigabitEthernet0/0/1]int g0/0/2
[sw1-GigabitEthernet0/0/2]port link-type access
[sw1-GigabitEthernet0/0/2]port default vlan 20
[sw1-GigabitEthernet0/0/2]int g0/0/3
[sw1-GigabitEthernet0/0/3]port link-type access
[sw1-GigabitEthernet0/0/3]port default vlan 30
[sw1-GigabitEthernet0/0/3]int g0/0/4
[sw1-GigabitEthernet0/0/4]port link-type access
[sw1-GigabitEthernet0/0/4]port default vlan 30
[sw1-GigabitEthernet0/0/4]int g0/0/5
[sw1-GigabitEthernet0/0/5]port link-type access
[sw1-GigabitEthernet0/0/5]port default vlan 10

在VLAN 10的视图下设置VLAN10为主VLAN,设置VLAN 20为互通型从VLAN,设置VLAN 30为隔离型从VLAN。 

[sw1]vlan 10
[sw1-vlan10]mux-vlan
[sw1-vlan10]subordinate group 20
[sw1-vlan10]subordinate separate 30

然后,在所有加入了Mux VLAN的端口下使能MUX VLAN的功能。

[sw1]int g0/0/1
[sw1-GigabitEthernet0/0/1]port mux-vlan enable
[sw1-GigabitEthernet0/0/1]int g0/0/2
[sw1-GigabitEthernet0/0/2]port mux-vlan enable
[sw1-GigabitEthernet0/0/2]int g0/0/3
[sw1-GigabitEthernet0/0/3]port mux-vlan enable
[sw1-GigabitEthernet0/0/3]int g0/0/4
[sw1-GigabitEthernet0/0/4]port mux-vlan enable
[sw1-GigabitEthernet0/0/4]int g0/0/5
[sw1-GigabitEthernet0/0/5]port mux-vlan enable

 接下来,在PC-3上使用ping命令测试与PC-1、PC-4、Server-1的连通性,如下图所示。

 从上图可以看到,PC-3无法与部门A的PC-1进行通信,也无法与属于同一个VLAN的访客B(PC-4)进行通信,只能够与属于主VLAN的Server-1进行通信。

在PC-1上使用ping命令测试与PC-2、Server-1、PC-3的连通性,如下图所示。

从上图中可以看到,PC-1无法与访客A(PC-3)进行通信,但可以与属于同一部门A的PC-2进行通信,也可以与属于主VLAN的Server-1进行通信。至此,网络的需求完全得到了满足。

相关文章:

MUX VLAN

目录 原理概述 实验目的 实验内容 实验拓扑 1.基本配置 2.使用Hybrid端口实现网络需求 3.使用Mux VLAN实现网络需求 原理概述 在实际的企业网络环境中,往往需要所有的终端用户都能够访问某些特定的服务器,而用户之间的访问控制规则则比较复杂。在…...

漫谈:“标准”是一种幻觉 C++语言标准的意义

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 “标准”这个词很迷惑&#xf…...

【Wbpack原理】基础流程解析,实现 mini-webpack

【Wbpack原理】基础流程解析,实现 mini-webpack ⛄:webpack 对前端同学来说并不陌生,它是我们学习前端工程化的第一站,在最开始的 vue-cli 中我们就可以发现它的身影。我们的 vue/react 项目是如何打包成 js 文件并在浏览器中运行…...

Debian 安装 python 3.9.6

安装相关依赖 sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-dev 下载Python 源码 wget https://mirrors.aliyun.com/python-release/source/Py…...

搜索二维矩阵2 合并两个有序链表

240. 搜索二维矩阵 II - 力扣&#xff08;LeetCode&#xff09; class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int i matrix.size() - 1, j 0;while(i > 0 && j < matrix[0].size()){if(matrix[i][j…...

深入Tauri开发——从环境搭建到项目构建

深入Tauri开发——从环境搭建到项目构建 开启你的Tauri桌面应用开发之旅&#xff08;续&#xff09; 经过上一篇文章的基础介绍&#xff0c;现在让我们更进一步&#xff0c;详细阐述如何在Windows和macOS平台上顺利搭建Tauri应用所需的开发环境&#xff0c;并指导您从创建项目…...

Redis 和 Mysql 数据库数据如何保持一致性

Redis 和 Mysql 数据库数据如何保持一致性 保持Redis和MySQL数据库数据一致性是一个常见且重要的问题&#xff0c;特别是在使用Redis作为MySQL数据库的缓存层时。以下是几种常用的保证二者数据一致性的策略和方法&#xff1a; 双写一致性&#xff08;同步更新&#xff09;&…...

探索7个MAMP本地开发环境的高效替代软件

什么是本地开发环境 本地开发环境是Web开发环境中的一种类型&#xff0c;它是指开发者自己的计算机上配置的一套用于开发和测试网站或应用程序的软件集合。这套环境使得开发者可以在本地计算机上构建和测试网站&#xff0c;而无需实时部署到服务器。 创建本地开发环境有两种方…...

靡语IT:Bootstrap 简介

1.1 Bootstrap 简介&#xff1a;什么是 Bootstrap? Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架。Bootstrap是前端开发中比较受欢迎的框架&#xff0c;简洁且灵活。它基于HTML、CSS和JavaScript&#xff0c;HTML定义页面元素&#xff0c;CSS定义页面布局&…...

亚马逊店铺引流:海外云手机的利用方法

在电商业务蓬勃发展的当下&#xff0c;亚马逊已经成为全球最大的电商平台之一&#xff0c;拥有庞大的用户群和交易量。在激烈的市场竞争中&#xff0c;如何有效地吸引流量成为亚马逊店铺经营者所关注的重点。海外云手机作为一项新兴技术工具&#xff0c;为亚马逊店铺的流量引导…...

10 Python进阶:MongoDB

MongoDb介绍 MongoDB是一个基于分布式架构的文档数据库&#xff0c;它使用JSON样式的数据存储&#xff0c;支持动态查询&#xff0c;完全索引。MongoDB是NoSQL数据库的一种&#xff0c;主要用于处理大型、半结构化或无结构化的数据。以下是MongoDB数据库的一些关键特点和优势&a…...

Leetcode 142. 环形链表 II和Leetcode 242. 有效的字母异位词

文章目录 Leetcode 142. 环形链表 II题目描述C语言题解解题思路 Leetcode 242. 有效的字母异位词题目描述C语言题解和思路解题思路 Leetcode 142. 环形链表 II 题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返…...

【嵌入式DIY实例】-MODBUS串行通信

MODBUS串行通信 文章目录 MODBUS串行通信1、什么是RS-4852、MAX485 TTL转RS485转换器3、硬件准备4、代码实现4.1 主机和从机之间简单通信4.2 主/从机之间LED控制在本文中,我们将介绍如何使用 MAX485 MODBUS 在Arduino之间进行串行通信。 我们将使用 Arduino nano 板和 MODBUS …...

入门用Hive构建数据仓库

在当今数据爆炸的时代&#xff0c;构建高效的数据仓库是企业实现数据驱动决策的关键。Apache Hive 是一个基于 Hadoop 的数据仓库工具&#xff0c;可以轻松地进行数据存储、查询和分析。本文将介绍什么是 Hive、为什么选择 Hive 构建数据仓库、如何搭建 Hive 环境以及如何在 Hi…...

【计算机网络】会话层

负责维护两个会话主机之间链接的建立、管理和终止&#xff0c;以及数据的交换。 会话控制&#xff1a;决策该由谁来传递数据 令牌管理&#xff1a;禁止双方同时执行一个关键动作 同步功能&#xff1a;在一个长的传输过程中设置一些断点&#xff0c;以便系统崩溃后能恢复至崩…...

springboot实现七牛云的文件上传下载

一&#xff1a;依赖包 <dependency><groupId>com.qiniu</groupId><artifactId>qiniu-java-sdk</artifactId><qiniu-java-sdk.version>7.7.0</qiniu-java-sdk.version></dependency>二:具体实现 RestController RequestMapping…...

【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(六)- 向量内存一致性模型

1. 引言 以下是《riscv-v-spec-1.0.pdf》文档的关键内容&#xff1a; 这是一份关于向量扩展的详细技术文档&#xff0c;内容覆盖了向量指令集的多个关键方面&#xff0c;如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量…...

Lvgl9 WindowsSimulator Visual Studio2017

因为在操作过程中遇到了一些错误&#xff0c;所以将操作及解决问题的过程记录下来。 一、下载lv_port_pc_visual_studio github链接:GitHub - lvgl/lv_port_pc_visual_studio: Visual Studio projects for LVGL embedded graphics library. Recommended on Windows. Linux su…...

【STL】链表(list)

链表是一种物理存储单元上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表由一系列结点&#xff08;链表中每一个元素称为结点&#xff09;组成&#xff0c;结点可以在运行时动态生成。每个结点包括两个部分&#xff1a;一个…...

node.js常用指令

1、node&#xff1a;启动 Node.js REPL&#xff08;交互式解释器&#xff09;。 node 2、node [文件名]&#xff1a;执行指定的 JavaScript 文件。 node app.js 3、npm init&#xff1a;初始化一个新的 Node.js 项目&#xff0c;生成 package.json 文件。 此命令会创建一个…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...