1、hybrid 在端口为 tag 和 untag 两种不同情况hybrid 端口配置了:port hybrid tagged vlan 2 4port hybrid untagged vlan 3 5一、当交换机接收到一个来自其他设备的以太网帧时,首先查看该帧是否带了标签(即VLAN 信息) ,1. 如果不带标签(如来自 PC,或者其他设备发送时剥离了标签)那么允许该标签进入交换机,同时打上该端口的 PVID 的 VLAN 号。该帧从不带标签到带标签。2. 如果带标签,那么首先查看该帧所带 VLAN 号是否在我上边两行命令行里出现了,比如3 就出现了,6 没有出现;那么对于带 3 的帧,会让该帧
2、通过,不会对帧做任何更改。而对于带 6 的帧,就不会让它通过而直接丢弃。二、当交换机要发送一个以太帧出去时, (不会检查是否带标签,因为所有帧都是从 CPU过来的,肯定带了标签)对于 tagged 定义的帧,端口会直接发送,不会做任何更改,例如帧 4。而对于 untagged 定义的帧,会剥离掉该帧的标签,该帧从带标签到不带标签,如帧 5 。总结一句,对于 tagged 和 untagged 定义的帧,只有在发送时才会有剥离或不剥离的区别,而对于接收到帧的时候,只会起一个判断是否允许该帧通过的作用(定义了则允许通过,未定义则丢弃) 。VLAN 之 access,trunk,hybrid 三种模
3、式区别1. tag 报文结构是在源 mac 地址和目的 mac 地址之后,加上了 4bytes 的 vlan信息,普通的 PC 网卡是不能识别 的。2. Access 端口只属于 1 个 VLAN,一般用于连接计算机端口。3. Trunk 类型的端口可用于多 VLAN 通信。4. Hybrid 类型的端口允许多 VLAN 通过,可以接收发送多 VLAN 报文,可用于交换机与交换机的连接,也可用于交换机和计算机的连接。 5. Hybrid 类型的端口和 trunk 端口在处理数据包时,方法是一样的。唯一不同之处在于发送数据包时,hybrid 端口可以允许多个 VLAN 的数据包发送时不打标签,而
4、 truck 端口只允许缺省 vlan(native vlan 或者 default vlan)的数据包发送时不打标签。6. Access 端口只属于一个 vlan, 所以它的缺省 VLAN 就是它所在的 VLAN, 不用设置。hybrid 端口 和 trunk 端口属于多个 VLAN, 所以需要设置缺省VLAN, 默认情况下,它们的缺省 VLAN 是 VLAN 1.7. 如果设置了端口的缺省 VLAN ID, 当端口接收到不带 VLAN tag 的数据包之后,则将数据包转发到缺省 VLAN 所在的交换机端口;当端口发送带有VLAN tag 的数据包时,如果该数据包的 VLAN ID 与端口缺
5、省 VLAN 相同,则交换机将去掉数据包携带的 VLAN tag, 然后转发到该端口。8. 华为交换机的缺省 VLAN 被称为 PVID, 思科交换机则称为 Native VLAN.9. 交换机端口处理进出数据包过程如下: Access 端口接收数据包:收到一个数据包,判断是否有 VLAN 信息,如果没有则打上端口的 Native VLAN ID, 并进行交换转发。有人问了:如果有 VLAN 信息呢?一般情况下不应该将 access 端口与带有vlan 的另一端口相连,因为 access 本来就是为接入普通计算机而设计的,而普通计算机的网卡发送数据包是不带 vlan 的。如果由于配置错误将其连
6、到了对端 trunk 端口,或者现在有些计算机的网卡已经可以收发带有 VLAN tag 数据包,在这两种情况下,我的理解是,如果 trunk 端口发来的数据的VLAN ID 与 Access 端口的 native vlan 相同,则交换机转发该数据包。如果 trunk 端口发来的数据包的 VLAN ID 与 access 端口的 native vlan 不同,则交换机丢弃该数据包。 Access 端口发送数据包:将数据包的 VLAN 信息剥离,直接发送出去。 Trunk 端口接收数据包:收到一个数据包,判断是否有 VLAN 信息,如果没有则打上端口的 Native VLAN ID,并进行交换转
7、发。如果有 VLAN 信息,则判断该 trunk 端口是否允许该 VLAN 的数据包进入,如果允许则转发,否则丢弃。 Trunk 端口发送数据包:比较端口的 Native VLAN 和发送数据包的 VLAN 信息,如果两者相等则剥离VLAN 信息,然后发送。如果不相等,则直接发送。 Hybrid 端口接收数据包:收到一个数据包,判断是否有 VLAN 信息, 如果没有则打上端口的 Native VLAN ID, 并进行交换转发。如果有 VLAN 信息,则判断该 hybrid 端口是否允许该 VLAN 的数据包进入,如果允许则转发,否则丢弃。 Hybrid 端口发送数据包:判断该 VLAN 在本端口配置的属性,如果属性是 untag, 则剥离 VLAN tag 再进行转发。如果属性是 tag, 则直接发送。有一点必须清楚,就是交换机内部在处理数据包时,所有的数据包一定是打上VLAN tag 的,知道了这一点,那么交换机处理 VLAN 的具体过程就很容易理解了。举例 1:两台交换机,一台端口配置 trunk, native vlan 为 100, 另一台端口配置access, native vlan 为默认的 1.问: 连接到两台交换机的 PC, 能互通吗?