PVID和VID的理解

VID解释

  VID(VLAN ID)是VLAN的标识,在交换机里面用来划分端口。比如一个交换机有8个端口,现在将port1,port2,port5三个端口的VID设置成1111,那么这三个端口就能接收vlantag=1111的数据包。
  拥有和数据帧TAG标记一致的VID的物理端口,不论是否在这个VID上是Untagged Port或者tagged Port,都可以接受来自交换机内部的标记了这个TAG标记的tagged 数据帧。
  拥有和数据帧TAG标记一致的VID的物理端口,只有在这个VID上是tagged Port,才可以接受来自交换机外部的标记了这个TAG标记的tagged 数据帧。(注:这句话来源于网上,和我的测试结果不一样,我在rtl8304/rtl8363上面测试的结果是,untag port可以原样接收带有vlantag的数据帧)。

PVID解释

  PVID英文解释为Port-base VLAN ID,是基于端口的VLAN ID,一个端口可以属于多个vlan,但是只能有一个PVID,收到一个不带tag头的数据包时,会打上PVID所表示的vlan号,视同该vlan的数据包处理。
  一个物理端口只能拥有一个PVID,当一个物理端口拥有了一个PVID的时候,必定会拥有和PVID相等的VID,而且在这个VID上,这个物理端口必定是Untagged Port。
  PVID的作用只是在交换机从外部接受到可以接受Untagged 数据帧的时候给数据帧添加TAG标记用的,在交换机内部转发数据的时候PVID不起任何作用。

untag port与tag port

  所谓的untagged Port和tagged Port不是讲述物理端口的状态,而是将是物理端口所拥有的某一个VID的状态,所以一个物理端口可以在某一个VID上是untagged Port,在另一个VID上是tagged Port。
  untag port和tag port是针对VID来说的,和PVID没有什么关系。比如有一个交换机的端口设置成untag port,但是从这个端口进入交换机的网络包如果没有vlan tag的话,就会被打上该端口的PVID,不要以为它是untag port就不会被打上vlan tag。

收发规则总结

  下图是定义的各种端口类型对各种数据帧的处理方法(此图来源于网络)。红色部分是我在rtl8363/rtl8304上测试后所做的修改。
  PVID和VID的理解_第1张图片
  Rtl8304的结构框图如下图所示。MAC0、MAC1、MAC2、MAC3分别对应port1,port2,port3,port4。将port4和cpu相连,port1做成外部端口,然后将port4和port1划为一个vlan,并且该vlanid在port4和port1上都设置成untag port,这时候将port1和电脑相连,交换机上可以ping通电脑。因此反驳上图中,untag端口丢弃tag数据帧的结论。
  至于untag端口发出untag数据帧应该是不可能的,因为交换机内不存在untag数据帧。
  PVID和VID的理解_第2张图片

你可能感兴趣的:(网络编程,vlan,pvid,vid,tag,交换机)