pvid英文解析为port-base vlan 是基于端口的vlan id.
1.pvid
不是加在帧头的标记,而是端口的属性。
怎么理解呢,加在帧头的标记叫
VLAN identifier
(
802.1q
术语),只是常常加在帧头的标识值和
pvid
值一样而已。所以
pvid
只是端口的属性,就象端口的
speed
一样。
2
。
pvid
是
用来标识端口接收到的未标记的帧。
也就是说,当端口收到一个未标记的帧时,就把该帧打上
vlan id
,这个
id
值等于
pvid
的值,然后转发到
VID
和
PVID
相等的
VLAN
中。
3.
帧从端口出去时,如果帧头中的
VID
和端口的
PVID
值相同,就把这个标识去掉,再送出去。
下面是交换机接各种口收到和发送数据帧采取的动作
Access (
接收
) Tagged = PVID
不接收
注:部分高端产品可能接收。
Access (
接收
) Tagged =/ PVID
不接收
注:部分高端产品可能接收。
Access (
接收
) Untagged 接收 增加tag=PVID 从PC
Access (
发送
) Tagged = PVID
转发
删除
tag
Access (
发送
) Tagged =/ PVID
不转发
不处理
Access (
发送
) Untagged
无此情况
无此情况
无此情况
Trunk (
接收
) Tagged = PVID
接收
不修改
tag
Trunk (
接收
) Tagged =/ PVID
接收
不修改
tag
Trunk (
接收
) Untagged
接收
增加
tag
=
PVID
Trunk (
发送
) Tagged = PVID If Passing then
转发
删除
tag
Trunk (
发送
) Tagged =/ PVID If Passing then
转发
不修改
tag
Trunk (
发送
) Untagged
无此情况
无此情况
无此情况(注)
Hybrid (
接收
) Tagged = PVID
接收
不修改
tag
对端是
trunk
Hybrid (
接收
) Tagged =/ PVID
接收
不修改
tag
对端是
trunk
Hybrid (
接收
) Untagged
接收
增加
tag
=
PVID
类
Trunk
Hybrid (
发送
) Tagged = PVID Tag
和
untag
中列出的
vlan
可以
passing
看
Tag
项和
untag
项
Hybrid (
发送
) Tagged =/ PVID Tag
和
untag
中列出的
vlan
可以
passing
看
Tag
项和
untag
项
Hybrid (
发送
) Untagged
无此情况
无此情况
无此情况(注)
注:数据帧在交换机内部转发过程中不会改变数据中的tag也不会删除数据帧中的tag; 改变数据帧中的tag只发生在数据帧进入或离开端口时。
下面来解释上面的几种状态。
1,Access (
接收
) Tagged = PVID
不接收
注:部分高端产品可能接收。
2,Access (
接收
) Tagged =/ PVID
不接收
注:部分高端产品可能接收。
3,Access (
接收
) Untagged
接收
增加
tag
=
PVID
从
PC
(1),这种状态一般不会发生,在如下的情况会发生accsess端口收到带tag=pvid的情况。pc1-----access(switch)trunk----------access(switch2)access------pc2
所有taccess端口都处于同一个vlan中。
pc发送给switch1的数据帧将增加tag=pid然后转发到switch的trunk口参照“Trunk (发送) Tagged =/ PVID If Passing then 转发 不修改tag”数据帧将会原样转发到swi
tch2的access端口。在这里就出现了我们的第一种情况,Access (接收) Tagged = PVID 不接收.
第2个很容易明白access当然不会接收tagg 不等于pvid的数据帧,不然我们划分vlan就没有任何意义。(无法隔离广播域)
第三种情况是我们最常用的access端口收到pc发送的untag数据帧会增加tag=pvid
下面来看看access发送数据帧的三种情况。
Access (
发送
) Tagged = PVID
转发
删除
tag
Access (
发送
) Tagged =/ PVID
不转发
不处理
Access (
发送
) Untagged
无此情况
无此情况
无此情况
第一种情况比较常见在如下拓扑中
pc1-------access1(switch)access2-----pc2
过程大致如下,
pc1的untag包到达access1打上Pvid转发到access2发现发送过来的数据帧tag=pvid 会删除tag转发。
第二种情况一般不会发生(还真想不出来哪种情况下会发生)
第三种情况 无此情况无此情况
下面来看看trunk口的情况
Trunk (
接收
) Tagged = PVID
接收
不修改
tag
Trunk (
接收
) Tagged =/ PVID
接收
不修改
tag
Trunk (
接收
) Untagged
接收
增加
tag
=
PVID
Trunk (
发送
) Tagged = PVID If Passing then
转发
删除
tag
Trunk (
发送
) Tagged =/ PVID If Passing then
转发
不修改
tag
Trunk (
发送
) Untagged
无此情况
无此情况
无此情况(注)
Trunk口的情况比较容易比较容易理解就不一一解释了。
用几个例子来说明上面遇到的几种情况。
pc1-----fa0/1(switch1)fa0/2------fa0/3(switch2)fa0/4-------pc2
switch上每个端口都是access端口,switch1的端口都加入vlan 10 switch2的端口都加入vlan 20;pc1和pc二的IP地址在同一网段。经测试pc1可以正常访问
pc2下面我们来看看数据转发的过程。
fa0/1 :Access (接收) Untagged 接收 增加tag=10 然后转发到fa0/2
fa0/2 :Access (发送) Tagged = 10转发 删除tag
fa0/3 :Access (接收) Untagged 接收 增加tag=20 然后转发到fa0/4
fa0/4 : Access (发送) Tagged = 20 转发 删除tag
PC: 收到untagged包可以正常接收。
pc1-----fa0/1(switch1)fa0/2------fa0/3(switch2)fa0/4-------pc2
pfa0/1 fa0/2 加入vlan 10 fa0/3(trunk) fa0/4(vlan1)p
c1和pc二的IP地址在同一网段。经测试pc1可以正常访问pc2
过程如下:
fa0/1:Access (接收) Untagged 接收 增加tag=10 然后转发到fa0/2
fa0/2:Access (发送) Tagged = 10转发 删除tag
fa0/3:Trunk (接收) Untagged 接收 增加tag=PVID(默认PVID=1)
fa0/4:Access (发送) Tagged = 10转发 删除tag
pc: 正常接收到pc1的数据。