首先,我对 VLAN 还比较陌生。我有一台 ZyXEL GS-1524 交换机和两个我想分开的网络,但它们需要使用同一个路由器。路由器在端口 22 上,端口 17 和 18 属于第一个网络,其他所有端口都属于第二个网络。
问题是我的交换机要求所有端口都在 VLAN 1 上。仅为第一个网络创建 VLAN 2 似乎不够,因为相同的端口属于 VLAN 1,并且连接到属于 VLAN 1 的端口的任何东西都可以访问它。
因此我创建了两个新的 VLAN:VLAN 2 用于第一个网络,VLAN 3 用于第二个网络。我还更改了 PVID,这样 17 或 18 上未标记的输入将被标记为 VLAN 2,其余的将被标记为 VLAN 3。这样,未标记的输入被强制保留在通过 PVID 分配的 VLAN 内。
现在,如果连接的设备标记了其数据包会发生什么情况?标记的数据包不会被重新标记。如果应该位于 VLAN 2 上的设备将其数据包标记为 VLAN 3,我想不会出错,因为它的端口不在 VLAN 3 中。但是,所有端口都在 VLAN 1 中 - 交换机没有给我任何选择。这是否意味着只要一方或双方(不确定)将其数据包标记为 VLAN 1,所有设备都可以相互访问?那将是一种安全漏洞!
答案1
根据第 8.2 条手动的如果将端口设置为静态 VLAN,则该端口上接收的数据包无论是否带有标记都将被发送到配置的 VLAN。
答案2
我最近刚买了一台二手 GS-1548,它运行与 GS-1524 相同的固件并出现同样的问题。
简而言之,基于 Web 的管理 UI 不允许从 VLAN 1(固定管理 VLAN)中删除端口。所有端口始终是 VLAN 1 的一部分,无论是标记模式还是未标记模式。您可以自由地从其他 VLAN 中删除端口,但“非成员”模式在 VLAN 1 中不可切换。
通过 Google 搜索,我们发现此限制仅在客户端实现 — 在浏览器中运行的 JavaScript 代码中。一位 Blogger 用户贝里120已发布如何手动绕过此检查的说明使用浏览器内置的 Web 开发人员工具。
我又进一步编写了一个用户脚本,可以透明地绕过检查,并允许您以与其他 VLAN 完全相同的方式管理 VLAN 1。你可以找到它这里。
(同样的问题和修复也适用于ZyXEL 交换机 1500 系列:ES-1528 和 ES-1552。)