以太网端口有三种链路类型:
Access
、
Hybrid
和
Trunk
。
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 信息剥离,直接发送出去
将报文的 VLAN 信息剥离,直接发送出去
(所以,Access端口可以实现同一交换机上相同VLAN下的主机通信;也可以实现交换机级连时的缺省VLAN1报文交换,但不能实现VLAN透传。)
trunk 端口收报文:
收到一个报文,判断是否有 VLAN 信息:如果有,判断该 trunk 端口是否允许该 VLAN 的数据进入:如果可以则转发,否则丢弃;如果没有 VLAN 信息则打上端口的 PVID ,并进行交换转发。
trunk
端口发报文:
比较将要发送报文的 VLAN 信息和端口的 PVID ,如果不相等则直接发送。如果两者相等则剥离 VLAN 信息,再发送。
比较将要发送报文的 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 端口发报文:
1 、判断该 VLAN 在本端口的属性( disp interface 即可看到该端口对哪些 VLAN 是 untag , 哪些 VLAN 是 tag )
2 、如果是 untag 则剥离 VLAN 信息,再发送,如果是 tag 则直接发送
(所以,Hybrid实现了不同VLAN下的主机的通信。)