VLAN中的pvid
p.s. pvid不容易理解,trunk端口都有pvid,默认为1,当trunk接受到没有标记过vlan id的帧,trunk就把帧的vlan id标为当前trunk口设置的pvid
trunk口默认允许vlan1通过是有风险的,有些情况会造成vlan1环路导致广播风暴。
无论什么时候交换机trunk端口都必须有pvid,因为trunk链路可以发送和接收被802.1q标记过的帧和未标记的帧。如果trunk端口接到了标记过的帧则会读出标记里的vlan id并发送到相应的vlan 端口;如果收到了没有标记过的帧,trunk端口认为此帧的vlan id就是该trunk端口配置的pvid,因此该帧被发送到与此trunk端口pvid号码一致的vlan端口。举个例子,如果trunk的pvid是vlan 10,trunk接受到没有标记过的帧就将此帧转发到vlan 10的端口。
另外如果一个帧进入交换机准备发送到下个交换机时,交换机trunk端口检查此帧是从该交换机哪个vlan接收的,如果和trunk端口的pvid不匹配则打上802.1q标记发送,如果就是从该pvid所属的vlan接受的,则不打标记发送。举个例子,过一台交换机从vlan 5接受到一个数据帧并要发送到下个交换机,而此交换机的trunk端口的pvid为vlan 10,于是该交换机的trunk端口给此帧打上vlan id为5的802.1q标记并发送,而从该交换机vlan 10接受的帧则在发送时不会打标记。
首先有一点要说明,所有的以太网帧在交换机内部的时候都是带有tag标记的。pvid主要在下面几个情况下起作用。
当交换机受到一个空白的以太网帧的时候,交换机会给这个以太网帧加上该端口的pvid,如果这个以太网帧有802.1q的tag标记,这个tag又和接收端口的pvid不同那么交换机不会做任何动作。
当一个带有tag标记的以太网帧从一个端口发出的时候,如果tag和该端口的pvid不同的时候交换机依旧不做任何动作直接放行,如果相同则会脱掉tag标记。
那么什么时候pvid会改变呢?就是在把端口设置为access端口的时候pvid会发生改变。
pvid英文解析为port-base vlan id(一些资料解析为port vlan id 我认为不准),是基于端口的vlan id.
1.pvid 不是加在帧头的标记,而是端口的属性。
怎么理解呢,加在帧头的标记叫VLAN identifier(802.1q术语),只是常常加在帧头的标识值和pvid 值一样而已。所以pvid只是端口的属性,就象端口的speed一样。
2。pvid 是 用来标识端口接收到的未标记的帧。
也就是说,当端口收到一个未标记的帧时,就把该帧打上vlan id,这个id值等于pvid的值,然后转发到VID和PVID相等的VLAN 中。
3.帧从端口出去时,如果帧头中的VID和端口的PVID值相同,就把这个标识去掉,再送出去。
4.如果端口为access类型,并加入了一个vlan ,那么这端口的PVID属性值变成和VID值一样,如果不一样就会把帧送到错误的vlan中,导致通行中断。但在trunk型的端口里,pvid的值是默认的1,注意交换机默认的vid也是1,所以交换机vlan id 为1的端口向trunk端口转发数据包时,trunk端口的把帧头的标识去掉再发出去,到了对方交换机trunk口时,由于帧没有带标识,所以会加上个vid,其值为1(因为trunk端口默认的pvid为1),这样数据包就 会被正确的送到vlan id为1的端口中。
所以没有划分vlan的端口发出的数据包也能通过trunk端口发出去,可以正常通行。而不是不能通过trunk口。