Pvid 和 Vid 经常出现于二、三层交换机里,由于 PVID 和 VID 的设置不合理,造成 VLAN
划分变得混乱。本文就对 PVID 和 VID 进行了彻底研究。
pvid 是交换机上的概念,说的是进入该端口的报文如果没有打 vlan id 就按 pvid 的值打上,
vid 是报文上的 vlan tag 的意思.不是同个概念哦.
首先解释一下什么是 PVID,PVID 英文解释为 Port-base VLAN ID,是基于端口的 VLAN
ID,一个端口可以属于多个 vlan,但是只能有一个 PVID,收到一个不带 tag 头的数据包
时,会打上 PVID 所表示的 vlan 号,视同该 vlan 的数据包处理,所以也有人说 PVID 就是
某个端口默认的 vlan ID 号。
默认情况下,简单的理解为:
ACCESS 端口接 PC,VID=PVID
TRUNK 端口级联,VID=全部,PVID=1
简单的说,VID(VLAN ID)是 VLAN 的标识,定义其中的端口可以
接收发自这个 VLAN 的包;而 PVID(Port VLAN ID)定义这个
untag 端口可以转发哪个 VLAN 的包。比如,当端口 1 同时属于
VLAN1、VLAN2 和 VLAN3 时,而它的 PVID 为 1,那么端口 1 可以
接收到 VLAN1,2,3 的数据,但发出的包只能发到 VLAN1 中
在网上发现一个比较好的解释是:PVID 并不是加在帧头的标记,而是端口的属性,用来标
识端口接收到的未标记的帧。也就是说,当端口收到一个未标记的帧时,则把该帧转发到
VID 和本端口 PVID 相等的 VLAN 中去。为了验证这一说法,在 S3026 上做了以下实验:
在 S3026 上选两个端口,连接两台主机 A、B,按照下表给端口设置不同的 PVID 和
VID,用 A ping B,并在 B 上抓包,记录实验结果。
注:结果中“有”表示抓包有 ICMP 的包(但 ping 不同),“无”表示没有,“通”表示可以
ping 通。VID 为“无”表示该端口没有加到任何 VLAN 里。
所有结果为“无”的可以解释为:当端口 1 收到无标记的帧后,转发到 VID=PVID=1 的端
口去,由于端口 2 无 VID,故主机 B 收不到包。
所有结果为“有”的可以解释为:当端口 1 收到无标记的帧后,转发到 VID=PVID=1 的端
口去,由于端口 2 的 VID=1,故主机 B 收到 ICMP 的 ECHO 包,并发出 ECHO Reply,
由于此种情况下端口 1 的 VID 不等于 1,故 B 的 Reply 并不能到达 A。所以只有当两个端
口的 PVID 和 VID 一样时,才可以互通。
到此我和大家一样有个疑问,一个 VLAN 干吗要设置 PVID 和 VID 两种标识呀?方正只有
当 PVID=VID 时才能互通,只有一个不就够了吗?请往下看。
当所有 VLAN 都在一个交换机里时,确实只需要一个标识就够了,但跨设备的 VLAN 就需
要另一种标识,这就是 802.1Q 的 VLAN ID,即 VID。
我们知道 802.1Q 的 VLAN 是在二层帧里加进 VLAN 标识,俗称打 tag,而计算机不能解
评论0