VLAN
-
Access 类型端口:只能属于 1 个 VLAN,发出数据时只能根据 PVID 剥离一个 VLAN Tag
- 入方向:针对没有 tag 的数据包打上 PVID 的 tag
- 出方向:将 tag 为本接口 PVID 的数据包去掉 tag,发出数据。(只有在与本接口的 PVID 相同的情况下才会去掉 tag 后向此接口转发数据帧,其他情况下则会拒绝此帧通过此接口)
-
Trunk 类型端口:可以允许多个 VLAN 通过,但是在发出数据时仍然只能根据 PVID 剥离一个 VLAN Tag
- 入方向:若收到的数据带 tag,直接转发;反之则打上本接口 PVID
- 出方向:发出的数据与本接口的 PVID 如果相同就去掉标记,如果不同就直接转发。
-
Hybrid 类型端口:可以允许多个 VLAN 通过,至于该端口在 vlan 中是否打 tag 由用户根据具体情况而定。可以自定义的剥离多个 VLAN Tag
什么是 PVID?
交换机在收到不带标签的数据帧时,根据 PVID 添加相应的 VLAN Tag
交换机在发出数据帧时,根据 PVID 剥离相应的 VLAN Tag
display port vlan active // 查看端口类型及所属 VLAN
port hybrid pvid vlan 10 // 设置 PVID,入方向打 Tag 10
port hybrid tagged vlan 10 // 出方向打 Tag 10
port hybrid untagger vlan 10 // 出方向剥离 Tag 10
access配置:
interface g0/0/1
port link-type access
port default vlan 10
等同于以下配置:
hybrid配置:
interface g0/0/1
port link-type hybrid
port hybrid pvid vlan 10 // 入方向打tag
port htbrid untagged vlan 10 // 出方向剥离tag
案例讲解
PC1 ping PC3 --- 不能通信
PC1 发出的数据包在 S1 的 0/0/1 口被打上 tag2 进行转发。
在 S1 的 0/0/3 口,数据包 tag 与 PVID 相同,删除 tag 进行转发
在 S2 的 0/0/3 口,收到没有 tag 的数据包,打上本接口的 PVID
在 S2,因为 PC3 的接口 0/0/1 属于 vlan2,而 PC1 发来的数据包数据 vlan3,所以数据包会在交换机内部丢弃,不会进行转发
PC1 ping PC4 --- 可以通信
PC1 发出的数据包在 S1 的 0/0/1 口被打上 tag2 进行转发。
在 S1 的 0/0/3 口,数据包 tag 与 PVID 相同,删除 tag 进行转发
在 S2 的 0/0/3 口,收到没有 tag 的数据包,打上本接口的 PVID
在 S2,PC4 的接口 0/0/2 的 vlan3 的与 PC1 数据包的 tag 一致,正常转发。
此时,PC1 和 PC4 可以正常通信
PC2 ping PC3 --- 不能通信
PC2 发出的数据包在 S1 的 0/0/2 口被打上 vlan3 的 tag
在 S1 的 0/0/3 口,数据包与 PVID 不同,直接进行转发。
在 S2 的 0/0/3 口,数据携带 tag,直接转发。
由于 PC3 的接口 0/0/1 属于 vlan2,所以 PC2 的数据包会在交换机内部被丢弃。
注意:PC2 ping PC4 --- 不能通信
PC2 发出的数据包在 S1 的 0/0/2 口被打上 vlan3 的 tag
在 S1 的 0/0/3 口,数据包与 PVID 不同,直接进行转发。
在 S2 的 0/0/3 口,数据携带 tag,直接转发。
PC4 的接口 0/0/2 属于 vlan3,此时 PC1 的数据包可以正常到达 PC4.
PC4 此时发出回应数据包,在 S2 的 0/0/2 口被打上 vlan3 的 tag
在 S2 的 0/0/3 口,由于数据包的 tag 与 PVID 一致,剥离 tag 进行转发。
在 S1 的 0/0/3 口,收到没有 tag 的数据包,打上本接口的 PVID 2。
而 PC2 的接口 0/0/2 属于 vlan3,所以
PC2 的数据包能到达 PC4,但 PC4 的数据包无法到达 PC2