浅谈vlan中pvid的作用

2023-11-06

vlan中的pvid其实就是处理标签的一种方式,在端口为access模式的时候pvid=access端口本身的vlan,也无法单独配置

在端口为trunk的时候pvid是可以根据需求配置的,默认的pvid=vlan1,而在trunk端口模式中,pvid影响的是trunk端口双向的数据帧。在接收方向上trunk端口是对于没有标签的数据帧打上配置的pvid号(vlan号),至于有vlan标签的数据帧不归pvid管,归port trunk-allow vlan x管。在发送方向上trunk端口是对于vlan号和配置的pvid号相同的数据帧进行untag去掉vlan标签的操作(将之变为vlan1的数据帧,也就是没有vlan标签的普通的以太网数据帧)。

在理解了以上的基础上,进行一个pvid功能的验证试验,topology如下:

 

基础配置如下:

sysname SW1
#
vlan batch 10

interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 10
#
interface GigabitEthernet0/0/2
 port link-type access
#
interface GigabitEthernet0/0/3
 port link-type access
 port default vlan 10
#

===============================

sysname SW2
#
vlan batch 10

interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 10
#
interface GigabitEthernet0/0/2
 port link-type access
 port default vlan 10
#

在PC1上分别ping PC2 PC3

PC1>ipconfig
IPv4 address......................: 192.168.1.1
Subnet mask.......................: 255.255.255.0
Gateway...........................: 0.0.0.0

PC1>ping 192.168.1.2

Ping 192.168.1.2: 32 data bytes, Press Ctrl_C to break
From 192.168.1.1: Destination host unreachable
From 192.168.1.1: Destination host unreachable

PC1>ping 192.168.1.3

Ping 192.168.1.3: 32 data bytes, Press Ctrl_C to break
From 192.168.1.1: Destination host unreachable
From 192.168.1.1: Destination host unreachable

此时PC1无法与PC2 PC3通信,但是PC2和PC3在同一个vlan是可以通信

PC2>ipconfig
IPv4 address......................: 192.168.1.2
Subnet mask.......................: 255.255.255.0
Gateway...........................: 0.0.0.0

PC2>ping 192.168.1.1

Ping 192.168.1.1: 32 data bytes, Press Ctrl_C to break
From 192.168.1.2: Destination host unreachable
From 192.168.1.2: Destination host unreachable

PC2>ping 192.168.1.3

Ping 192.168.1.3: 32 data bytes, Press Ctrl_C to break
From 192.168.1.3: bytes=32 seq=1 ttl=128 time=62 ms

下面我们以PC3通信为参照,分别修改sw1的pvid=10,sw2的pvid=1不变

[SW1-GigabitEthernet0/0/1]display this
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk pvid vlan 10
 port trunk allow-pass vlan 10
#

PC3分别pingPC1和PC2

PC3>ping 192.168.1.1

Ping 192.168.1.2: 32 data bytes, Press Ctrl_C to break
From 192.168.1.3: Destination host unreachable

PC3>ping 192.168.1.2

Ping 192.168.1.1: 32 data bytes, Press Ctrl_C to break
From 192.168.1.3: Destination host unreachable

这时候发现都不通了,可以分析一下PC3数据帧转发的过程,首先PC3发送arp给pc1、pc2,arp报文到了sw1后,sw1发现pc3过来的帧是携带vlan10的arp广播,于是只向vlan10内的所有端口发送(包括允许vlan10的trunk口),此时pc1的端口是vlan1,自然无法收到vlan10的arp广播因此不通,而vlan10的arp在经过sw1的trunk时在出去的方向被pvid=10的trunk端口untag掉了vlan10变成vlan1的普通以太网数据帧传到了sw2,sw2发现是vlan1的帧,就只向vlan1内的所有端口发送,而pc3是属于vlan10的自然无法收到vlan1的数据帧。

而后我们保持sw1的pvid=10,将sw2修改pvid=10,再看PC3的通信状况

[SW2-GigabitEthernet0/0/1]disp th
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk pvid vlan 10
 port trunk allow-pass vlan 10
#

PC3>ping 192.168.1.1

Ping 192.168.1.1: 32 data bytes, Press Ctrl_C to break
From 192.168.1.3: Destination host unreachable

PC3>ping 192.168.1.2

Ping 192.168.1.2: 32 data bytes, Press Ctrl_C to break
From 192.168.1.2: bytes=32 seq=1 ttl=128 time=62 ms

可以看到pc3能够ping通pc2,分析如下,pc3的vlan10的arp经过sw1的pvid10的untag变成vlan1转发给sw2后,sw2发现入向的arp是个vlan1的普通帧,而自己trunk的pvid=10,于是给这个没有tag的帧打上vlan10的标签,在广播到所有vlan10的端口中,这时身在vlan10中的pc2就可以收到了,pc2回包也是将自己的vlan10的arp应答消息发给sw2,sw2在出方向(由于pvid=10)将pc2发来的vlan10的帧untag变成vlan1的帧发给sw1,sw1发现入向的帧没有tag(自己的pvid又=10)于是给没有tag的帧打上vlan10的tag,并在vlan10内的所有端口下查找pc3的mac地址,发现pc3的mac地址在G0/0/3端口下,于是将帧通过G0/0/3口发给pc3,这样pc3就完成了一次和pc2的双向通信

=======================================================================

现在,我们将sw1的pvid=1,sw2的pvid=10看看,用pc3都无法ping通pc1和pc2,与之前的pc无法通信原理是一样的,但是不在同一个vlan的pc1却能和pc2通信,这里我们来看一下pc1和pc3的通信过程

[SW1-GigabitEthernet0/0/1]display this 
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 10
#

[SW2-GigabitEthernet0/0/1]disp th
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk pvid vlan 10
 port trunk allow-pass vlan 10
#

PC1>ping 192.168.1.3

Ping 192.168.1.3: 32 data bytes, Press Ctrl_C to break
From 192.168.1.1: Destination host unreachable

PC1>ping 192.168.1.2

Ping 192.168.1.2: 32 data bytes, Press Ctrl_C to break
From 192.168.1.2: bytes=32 seq=1 ttl=128 time=62 ms

pc1发送vlan1的arp到sw1,sw1广播所有允许vlan1的端口中(包括允许vlan1的trunk中),于是arp到sw2,sw2发现是个没有tag的数据帧(自己的pvid=10)于是打上vlan10的标签,广播到vlan10的所有端口中被pc2收到,pc2回帧携带vlan10的帧给sw2,sw2在帧出方向的时候(由于pvid=10)untag掉vlan10的标签,变成vlan1的普通帧转发到sw1,sw1发现是vlan1的普通帧(自己的pvid=1)于是在vlan1的所有端口中查找pc1的mac,发现pc1的mac在g/0/0/2端口下,于是将帧转发给了pc1完成了一次双向的数据帧转发,所以pc1与pc3虽然不在一个vlan但是依然可以通信。

到这里都能理解的话,对于pvid就已经完全掌握了。总结一句话,pvid只在trunk中有用,并且在入向只管没有tag的帧,在出向只管与pvid相同vlan-id的帧。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浅谈vlan中pvid的作用 的相关文章

  • 在 Java 中连接和使用 Cassandra

    我已经阅读了一些关于 Cassandra 是什么以及它可以做什么的教程 但我的问题是如何在 Java 中与 Cassandra 交互 教程会很好 如果可能的话 有人可以告诉我是否应该使用 Thrift 还是 Hector 哪一个更好以及为什
  • Java Swing:从 JOptionPane 获取文本值

    我想创建一个用于 POS 系统的新窗口 用户输入的是客户拥有的金额 并且窗口必须显示兑换金额 我是新来的JOptionPane功能 我一直在使用JAVAFX并且它是不同的 这是我的代码 public static void main Str
  • 如何使用 Java 和 Selenium WebDriver 在 C 目录中创建文件夹并需要将屏幕截图保存在该目录中?

    目前正在与硒网络驱动程序和代码Java 我有一种情况 我需要在 C 目录中创建一个文件夹 并在该文件夹中创建我通过 selenium Web 驱动程序代码拍摄的屏幕截图 它需要存储在带有时间戳的文件夹中 如果我每天按计划运行脚本 所有屏幕截
  • 如何默认将 Maven 插件附加到阶段?

    我有一个 Maven 插件应该在编译阶段运行 所以在项目中consumes我的插件 我必须做这样的事情
  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 在 Maven 依赖项中指定 jar 和 test-jar 类型

    我有一个名为 commons 的项目 其中包含运行时和测试的常见内容 在主项目中 我添加了公共资源的依赖项
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j

随机推荐

  • [网络安全自学篇] 四.实验吧CTF实战之WEB渗透和隐写术解密

    最近开始学习网络安全相关知识 接触了好多新术语 感觉自己要学习的东西太多 真是学无止境 也发现了好几个默默无闻写着博客 做着开源的大神 接下来系统分享一些网络安全的自学笔记 希望读者们喜欢 上一篇文章分享了解BurpSuite工具的安装配置
  • Klocwork部署的安全最佳实践

    Klocwork是一款静态代码分析和SAST工具 适用于 C C C Java JavaScript Python和Kotlin 可识别软件安全性 质量和可靠性问题 帮助强制遵守标准 阅读本文 您将了解Klocwork的设置步骤 助力您实现
  • 微信小程序使用.concat()等数组连接爆错原因

    微信小程序数组连接爆错 当我们在微信小程序中使用数组连接时有时候会出下以下的错误 js里面的写法如下 this setData goods this data goods concat res data 其原因的是因为在微信小程序的data
  • 【STM32F407电机控制学习笔记】TIM8输出PWM&触发ADC采集电流cubeMX配置

    时钟配置 高速时钟使用外部晶振 HCLK配置为160MHz 方便后续定时器分频 TIM8配置 TIM8的Channel1 Channel3用于输出两路互补的PWM Channel4 PWM不输出 用于触发ADC采样 中心对齐模式1 计数器在
  • 如果更好的做好MES系统运维

    因人因时因地制宜 治疗疾病要根据人体的体质 性别 年龄等不同 以及季节 地理环境以制定适宜的治疗方法 我觉得mes运维也应该采用相同的方式 下面先了解一下常见的三种运维方式 第一种方式 企业有自己的信息中心 不同的人负责不同的模块 员工职责
  • 使用ant-design-pro-vue时,将登录从mock换成后台出现问题(请求出现错误,请稍后再试)

    因为我不是专门的前端 所以搞这个时 困难重重 在使用这个模板时 我想要将登录换成从后台进行响应 在一开始我是通过项目中的mock文件下的auth js来找到对应的响应数据 看到如上图所示 我心想 稳了 结果我后台就按照这个来造了一个测试 结
  • 孔板流量计计算公式_差压式流量计常用计算公式及计算实例

    差压式流量计维修中计算工作是仪表人不可缺少的 在本文分享差压式流量计常用流量计算公式及计算实例 掌握这些干货技术 对用好差压式流量计有事半功倍效果 流量计算公式1 差压式流量计的差压与流量关系的换算差压式流量计的差压与流量的平方成正比 或者
  • 【Django快速开发实战】(30~51)使用Django创建一个基础应用:职位管理系统

    30 遗留系统集成 为已有系统数据库生成管理后台 流程说明 为已有数据库生成管理后台 创建项目和应用 创建新项目 django admin startproject empmanager 创建新应用 django admin startap
  • 基于idea-学生管理系统(list),包含五门课的成绩。

    学生的类 有学生的性别 籍贯 姓名和五门课程的成绩 用private进行封装 同时写出getter和setter方法 package com zheng people public class Student private String
  • Redis学习笔记9:主从复制

    一 主从复制是什么 主从复制 是指将一台Redis服务器的数据 复制到其他的Redis服务器 前者称为主节点 master leader 后者称为从节点 slave follower 数据的复制是单向的 只能由主节点到从节点 Master以
  • java和C#在嵌套类上的差异

    平时不太用java的inner class 也就知道里面inner class可以访问外部对象的实例成员 今天碰巧试了一下C 和java的嵌套类的区别 感觉java的嵌套类其实更像是嵌套对象的样子 而C 的嵌套类则就是类定义的嵌套的感觉只可
  • 使用supervisor使Laravel的queue保持后台常驻

    我的个人博客 逐步前行STEP 一 安装supervisor 1 yum install python setuptools 2 easy install supervisor 二 配置supervisor 1 echo superviso
  • 离10000小时的差距

    03年之前没有 看到程序就烦 03年 04年 ASP写网站 打下一点程序基础 对目前影响应该在100小时左右 05年下半年 06年上半年 学WIN32程序设计 DX等 折合每天3小时到4小时 大约1000小时 06年工作原因 基本可以忽略
  • windows10上传文件到vmware虚拟机

    网上看了很多的方案 有共享文件夹的 也有安装vmware tools的 都试过了不成功 后来使用的ftp工具上传 先使用 ip addr 看虚拟机的IP地址 第二条ens33下面的地址 我本机安装的filezilla 然后远程 默认端口22
  • ELI5:导数,偏导数

    导数 导数就是描述某个事物的变化速率 举个最常见的例子 当人从某地移动到另一地点的时候 速度就是这个移动的导数 因为它描述了移动的变化速率 再继续看 加速度就是速度的导数 因为加速度描述了速度的变化速率 当加速度恒定的时候 我们可以想到 速
  • href 属性 和 target属性

  • 悟空浏览器——青龙羊毛

    青龙羊毛之元宵特辑 六 今日中青看点又迎来了一波黑号 本菜鸡再次中奖 非酋体质 每次必中招 啥也不说了 发个新毛吧 悟空浏览器之前毛毛很多 有个群友和我说过 现在那位群友都褪裙了 毛毛才有脚本 猴哥 猴哥浏览器也是头条系的 不知道能坚持多久
  • 初等代数不等式2

    表示共有个参数的所有积之和 共有项 第个参数的指数是 第个参数的指数是 故 表示共有个参数的所有积之和 共有项 第个参数的指数是 第个参数的指数是 第个参数的指数是 故 即 表示共有个参数的所有积之和 共有项 第个参数的指数是 第个参数的指
  • 【JDK】二、环境变量从jdk17切换为jdk8后不生效的解决办法

    环境变量从jdk17切换为jdk8后不生效的解决办法 一 问题描述 二 环境变量为java17时的截图 三 修改为java8时的截图 四 解决办法 1 原因分析 2 删除jdk17和jdk8默认的配置或者把默认的下移 统一使用自己的 JAV
  • 浅谈vlan中pvid的作用

    vlan中的pvid其实就是处理标签的一种方式 在端口为access模式的时候pvid access端口本身的vlan 也无法单独配置 在端口为trunk的时候pvid是可以根据需求配置的 默认的pvid vlan1 而在trunk端口模式