交换机以太网端口三种链路类型:Access、Trunk、Hybrid。

# Access

# Access 用户模式

  • 只允许默认 vlan(Virtual Local Area Network,虚拟局域网)的以太网帧,也就是说只能属于一个 vlan。
  • Access 端口在收到以太网帧后打上 vlan 标签,转发时在剥离 vlan 标签。
  • 一般情况下一端连接的是终端设备。
接收发送
接收报文时,如果报文不带标签,则打上 vlan 标签(access defult)发送报文时,剥离 vlan 标签

# access 收发报文

PC1 向 PC2 发送报文,由 switch 转发,G0/0/1 接收,G0/0/2 发出,两个端口均为 access 类型

PC1 --> (G0/0/1) switch (G0/0/2) --> PC2
switch:access/vlan10

# 不携带 vlan 标签

PC 发送不携带 vlan 标签的报文

  • PC1 --> G0/0/1:接收报文时,由于 PC1 发送的报文默认不带 vlan 标签,G0/0/1 将为该报文打上 tag 标签(vlan 10)

  • G0/0/2 --> PC2:发送报文时,此时的报文携带 tag:vlan10 ,G0/0/2 将剥离报文标签后转发

PC 发送的报文默认不携带 tag 标签

# 携带 vlan 标签与 access 标签相同

假设此时 PC1 发出的报文携带 vlan10

  • PC1 --> G0/0/1:接收报文时,PC 携带 vlan 标签与 G0/0/1 标签一致,接收不做处理。

  • G0/0/2 --> PC2:发送报文时,此时的报文携带 tag:vlan10 ,G0/0/2 将剥离报文标签后转发

# 携带 vlan 标签与 access 标签不同

假设此时 PC1 发出的报文携带 vlan20

  • PC1 --> G0/0/1:接收报文时,PC 携带 vlan 标签与 G0/0/1 标签不一致,直接丢弃。

# Trunk

# Trunk 链路干道模式

可以允许多个 vlan 通过,可以接受并转发多个 vlan 的报文。
一般作用于交换机之间连接的端口。
在网络的分层结构方面,trunk 被解释为 "端口聚合",就是把多个物理端口捆绑在一起当做一个逻辑端口使用,作用可以扩展带宽和做链路的备份;

PVID(Port Default VLAN ID): 缺省 VLAN,华为华三叫 pvid,思科叫 native vlan (本征 vlan)

接收发送
接收报文时,判断是否有 vlan 信息:如果没有则打上端口的 PVID,如果有则判断 trunk 端口是否允许该 vlan 数据进入发送报文时,如果端口 PVID(缺省 vlan)与报文所携带 vlan 一致,则剥离标签后发送。如果报文 vlan 标签与端口 PVID 不一致,则直接转发,实现 VLAN 透传。

# Trunk 收发报文

PC1 向 PC2 发送报文,由 switch 转发,G0/0/1 接收,G0/0/2 发出,两个端口均为 trunk 类型。

switch_ACC1 --> (G0/0/1) switch (G0/0/2) --> switch_ACC2
switch:allow-pass vlan 10 20
pvid vlan 20

pvid 默认为 vlan 1

# 不携带 vlan 标签

假设此时 switch_ACC1 发出的报文不携带 vlan

  • switch_ACC1 --> G0/0/1:接收报文时,由于报文不携带 vlan,G0/0/1 为报文打上自身的 pvid(vlan20)

  • G0/0/2 --> switch_ACC2:发送报文时,此时的报文携带 tag:vlan20 ,与 G0/0/2 的 pvid 一致,G0/0/2 将 vlan 标签剥离后发送。

# 携带 vlan 标签与交换机配置相同

假设此时 switch_ACC1 发出的报文携带 vlan10

  • switch_ACC1 --> G0/0/1:接收报文时,由于报文携带 vlan 在 G0/0/1 的 allow-pass vlan 中,接收不做处理。

  • G0/0/2 --> switch_ACC2:发送报文时,由于报文携带 vlan 在 G0/0/2 的 allow-pass vlan 中,直接放行。

# 携带 vlan 标签与交换机 PVID 相同

假设此时 switch_ACC1 发出的报文携带 vlan20

  • switch_ACC1 --> G0/0/1:接收报文时,由于报文携带 vlan 在 G0/0/1 的 allow-pass vlan 中,接收不做处理。

  • G0/0/2 --> switch_ACC2:发送报文时,此时的报文携带 tag:vlan20 ,与 G0/0/2 的 pvid 一致,G0/0/2 将 vlan 标签剥离后发送。

# 携带 vlan 标签与交换机配置不同

假设此时 switch_ACC1 发出的报文携带 vlan20

  • switch_ACC1 --> G0/0/1:接收报文时,由于报文携带 vlan 不在 G0/0/1 的 allow-pass vlan 中,直接丢弃。

# Hybrid

# Hybrid 混合模式

Hybrid 类型的端口跟 trunk 类型的端口很相似,也是可以允许多个 vlan 通过,可以接受和发送多个 vlan 的报文。
可以作用于交换机之间,也可以作用于连接用户的计算机端口上。
跟 trunk 端口不同的是,Hybrid 端口可以允许多个 vlan 发送时不打标签,而 trunk 端口只允许缺省 vlan 的报文发送时不打标签;

接收发送
与 trunk 接收处理一致:接收报文时,判断是否有 vlan 信息:如果没有则打上端口的 PVID,如果有则判断端口是否允许该 vlan 数据进入发送报文时,判断 vlan 在端口的 tagged 中还是 untagged 中,如果是 tagged:直接发送,如果是 untagged:剥离 vlan 标签后发送

简单来说:hybrid 在收报文时的处理方式与 trunk 相同,在发报文时,trunk 只会剥离与自身 pvid 相同的一种 vlan 标签,而 hybrid 能够剥离多种 vlan 标签(untagged)

# Hybrid 收发报文

PC1 向 PC2 发送报文,由 switch 转发,G0/0/1 接收,G0/0/2 发出,两个端口均为 hybrid 类型。

switch_ACC1 --> (G0/0/1) switch (G0/0/2) --> switch_ACC2
switch:tagged vlan 10
untagged vlan 20

# 不携带 vlan 标签

假设此时 switch_ACC1 发出的报文不携带 vlan 标签

  • switch_ACC1 --> G0/0/1:接收报文时,由于报文不携带 vlan 标签,G0/0/1 将报文打上自身的 pvid vlan 1 (默认)。

  • G0/0/2 --> switch_ACC2:发送报文时,由于报文携带 vlan 1 不在 G0/0/2 的 tagges 和 untagged 中,直接丢弃。

# 携带 vlan 标签在 tagged 配置中

假设此时 switch_ACC1 发出的报文携带 vlan10

  • switch_ACC1 --> G0/0/1:接收报文时,由于报文携带 vlan 在 G0/0/1 的 tagged vlan 中,接收不做处理。

  • G0/0/2 --> switch_ACC2:发送报文时,由于报文携带 vlan 在 G0/0/2 的 tagges vlan 中,直接放行。

# 携带 vlan 标签在 untagged 配置中

假设此时 switch_ACC1 发出的报文携带 vlan20

  • switch_ACC1 --> G0/0/1:接收报文时,由于报文携带 vlan 在 G0/0/1 的 untagged vlan 中,接收不做处理。

  • G0/0/2 --> switch_ACC2:发送报文时,由于报文携带 vlan 在 G0/0/2 的 untagges vlan 中,剥离标签后放行。