交换机三种端口模式
Access
、
Hybrid
和
Trunk
的理解
以太网端口有三种链路类型:
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 信息剥离,直接发送出去
(所以,
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
下的主机的通信。)
以下案例可以帮助大家深入理解华为交换机的 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]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
[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。