交换机三种端口模式 Access Hybrid Trunk 的理解
 
 
以太网端口有三种链路类型: AccessHybridTrunk
Access类型的端口 只能属于 1 VLAN ,一般用于连接计算机的端口;
Trunk类型的端口 可以允许多个 VLAN 通过,可以接收和发送多个 VLAN 的报文,一般用于交换机之间连接的端口;
Hybrid类型的端口 可以允许多个 VLAN 通过,可以接收和发送多个 VLAN 的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。
Hybrid端口和Trunk端口 接收数据时,处理方法是一样的,唯一不同之处在于发送数据时: Hybrid 端口可以允许多个 VLAN 的报文发送时不打标签,而 Trunk 端口只允许缺省 VLAN 的报文发送时不打标签。
在这里先要向大家阐明端口的缺省 VLAN 这个概念
Access端口 只属于 1 VLAN ,所以它的缺省 VLAN 就是它所在的 VLAN ,不用设置;
Hybrid端口和Trunk端口 属于多个 VLAN ,所以需要设置缺省 VLAN ID 。缺省情况下, Hybrid 端口和 Trunk 端口的缺省 VLAN VLAN 1
 
当端口接收到不带 VLAN Tag 的报文后,则将报文转发到属于缺省 VLAN 的端口(如果设置了端口的缺省 VLAN ID )。当端口发送带有 VLAN Tag 的报文时,如果该报文的 VLAN ID 与端口缺省的 VLAN ID 相同,则系统将去掉报文的 VLAN Tag ,然后再发送该报文。
注:对于华为交换机缺省 VLAN 被称为“ Pvid Vlan ”, 对于思科交换机缺省 VLAN 被称为“ Native Vlan” 交换机接口出入数据处理过程如下:

Acess端口收报文:
收到一个报文 , 判断是否有 VLAN 信息:如果没有则打上端口的 PVID ,并进行交换转发 , 如果有则直接丢弃(缺省)

Acess端口发报文:
将报文的 VLAN 信息剥离,直接发送出去     
(所以, Access 端口可以实现同一交换机上相同 VLAN 下的主机通信;也可以实现交换机级连时的缺省 VLAN1 报文交换,但不能实现 VLAN 透传。)

trunk端口收报文:
收到一个报文,判断是否有 VLAN 信息:如果有,判断该 trunk 端口是否允许该 VLAN 的数据进入:如果可以则转发,否则丢弃;如果没有 VLAN 信息则打上端口的 PVID ,并进行交换转发。

trunk端口发报文:
比较将要发送报文的 VLAN 信息和端口的 PVID ,如果不相等则直接发送。如果两者相等则剥离 VLAN 信息,再发送。
(所以,将交换机级连口统统设置为 Trunk 并允许所有 VLAN 通过后, VLAN2 VLAN4000 直接透传,而 VLAN1 则因为和 Trunk 缺省 PVID 相同,需要通过剥离 VLAN 信息又添加 VLAN 信息实现了透传。而如果更改 Trunk 的缺省 PVID ,则可以实现某一交换机下的 VLAN-X 和另一交换机下的 VLAN-Y 通信。)

hybrid端口收报文:
收到一个报文 , 判断是否有 VLAN 信息:如果有,则判断该 hybrid 端口是否允许该 VLAN 的数据进入:如果可以则转发,否则丢弃 ( 此时端口上的 untag 配置是不用考虑的, untag 配置只对发送报文时起作用 )
如果没有则打上端口的 PVID ,并进行交换转发。

hybrid
端口发报文:
1 、判断该 VLAN 在本端口的属性( disp interface 即可看到该端口对哪些 VLAN untag 哪些 VLAN tag
2
、如果是 untag 则剥离 VLAN 信息,再发送,如果是 tag 则直接发送
(所以, Hybrid 实现了不同 VLAN 下的主机的通信。)


以下案例可以帮助大家深入理解华为交换机的 hybrid 端口模式
[Switch-Ethernet0/1]int e0/1
[Switch-Ethernet0/1]port link-type hybrid
[Switch-Ethernet0/1]port hybrid pvid vlan 10
[Switch-Ethernet0/1]port hybrid vlan 10 20 untagged
 
[Switch-Ethernet0/1] int e0/2
[Switch-Ethernet0/2]port link-type hybrid
[Switch-Ethernet0/2]port hybrid pvid vlan 20
[Switch-Ethernet0/2]port hybrid vlan 10 20 untagged
此时 inter e0/1 inter e0/2 下的所接的 PC 是可以互通的,但互通时数据所走的往返 vlan 是不同的。
以下以 inter e0/1 下的所接的 pc1 访问 inter e0/2 下的所接的 pc2 为例进行说明
 
pc1 所发出的数据,由 inter0/1 所在的 pvid vlan10 封装 vlan10 的标记后送入交换机,交换机发现 inter e0/2 允许 vlan 10 的数据通过,于是数据被转发到 inter e0/2 上,由于 inter e0/2 vlan 10 untagged 的,于是交换机此时去除数据包上 vlan10 的标记,以普通包的形式发给 pc2 ,此时 pc1->p2 走的是 vlan10
 
再来分析 pc2 pc1 回包的过程, pc2 所发出的数据,由 inter0/2 所在的 pvid vlan20 封装 vlan20 的标记后送入交换机,交换机发现 inter e0/1 允许 vlan 20 的数据通过,于是数据被转发到 inter e0/1 上,由于 inter e0/1 vlan 20 untagged于是交换机此时去除数据包上vlan20的标记,以普通包的形式发给pc1,此时pc2->pc1走的是vlan20。