交换机一个端口如何实现通过多个vlan?

一、VLAN 本质上是“逻辑隔离”

物理上,所有设备插在一台交换机上,理论上全都能通信。

但 VLAN 的出现,就相当于给这些口划了“小圈子”

每个 VLAN 是一个独立的二层广播域,数据只在这个“圈子”里转,不越界。

交换机一个端口如何实现通过多个vlan?

所以 VLAN 真正的隔离,是隔离“广播域”。

你建了 VLAN10 和 VLAN20,本质上就是告诉交换机:

  • VLAN10 的口不能把广播传到 VLAN20
  • VLAN20 的口不能响应 VLAN10 的 ARP 请求
  • 组播、DHCP 等也各自为政

但注意,这一切都建立在前提上:

你得让接口“知道自己属于哪个 VLAN”

这就引出了下一点——

二、VLAN 的“隔离”要靠端口模式来执行

很多人配置 VLAN 后发现不生效,

不是 VLAN 本身没问题,而是 端口模式没设对,导致“进出的数据包没打标签”。

Access 模式

port link-type access
port default vlan 10

适合接 PC、打印机、摄像头这类不懂 VLAN 的设备。

交换机会自动帮它打上 VLAN10 的标签。

你只要记住一句话:

★ Access 是“强制划分”:你进这个口,就只能属于一个 VLAN。

Trunk 模式

port link-type trunk
port trunk allow-pass vlan 10 20

适合交换机之间互联,传多个 VLAN 的数据。 不设置 allow-pass,你 VLAN 建了也传不过。

最常见的配置错在哪?

你建了 VLAN,但 Trunk 口没放行那个 VLAN → 数据包直接被丢弃,根本没进来。

所以:

  • VLAN 是否能隔离?得看接口模式认不认
  • Trunk 不放行,等于“明建实封”
  • Access 没设 VLAN,等于全混一起了

三、还有一种 VLAN 不隔离的情况:三层网关“帮你转发”

不同 VLAN 理论上不通,但一加网关,就又能互通了。

因为你配置了 VLAN 接口(VLANIF),或者用了路由器 / 防火墙做了三层互通:

interface Vlanif10
ip address 192.168.10.1

interface Vlanif20
ip address 192.168.20.1

这时候,交换机内部就可以直接实现“不同 VLAN 的互访”。

你觉得 VLAN 隔离了,实际上是:

VLAN 只做了二层隔离,但你又在三层把它们打通了。

四、补一个真场景问题

用户说:“我两个摄像头在不同 VLAN,居然还能互 ping。”

你去一查:

  • VLAN 确实分开了
  • 端口也设了 Access
  • 但交换机上开启了 inter-VLAN routing(配置了两个 VLANIF)
  • 而且没配 ACL 限制互通

所以就出现了“逻辑上隔离,业务上不隔”的假象。

总结一句话

★ VLAN 只是一个二层“隔离策略”,真正生不生效,要看你有没有设对端口模式,
有没有放开 Trunk,
有没有三层接口“偷偷兜底”。

你可以记住这个判断逻辑:

VLAN生效判断三连:

1. 接口加到 VLAN 里没?
2. Trunk 是否放行 VLAN?
3. 有没有三层接口在偷偷转发?

阅读剩余
THE END