我想设置多个 VLAN,以便能够将不同类型的设备相互隔离。更具体地说,我想限制 Wi-Fi 设备在探索网络时可以看到的内容:例如,它们可以通过 HTTP 访问反向代理,但它们不应该能够访问 syslog 服务器或嗅探 SNMP v1/v2 流量,他们也不应该首先知道有 syslog 服务器或 SNMP 流量。
我正在使用 Netgear ProSafe 智能交换机来设置 VLAN。我有:
- 为测试目的创建了 VLAN 6。
- 将对应的交换机端口设置为PVID 6。
- 将此端口的 VLAN 成员身份标记为未标记。
- 确保现在为所有设备设置了“承认所有”可接受的帧类型。根据文档,这意味着“接受在端口上接收的未标记和优先标记的帧,并为其分配端口 VLAN ID 的值。”
- 设置 VLAN 6 路由 IP 地址和掩码为 192.168.252.1/24。
- 确保交换机设置为在路由模式下运行。
- 重新配置
/etc/network/interfaces
测试机器。
这是网络的简化视图:
我期待能够在 and 之间进行通信test2
,test1
但事实并非如此。目前:
test2:~ ping 192.168.252.1
作品。test2:~ ping 8.8.8.8
没有,也没有ping 192.168.1.5
orping 192.168.1.1
orping 192.168.1.3
。test1:~ ping 192.168.252.2
不起作用。test2:~ nc -u 192.168.1.5 53
有效(如果 192.168.1.5 处于监听模式,使用nc -ul 53
)。test1:~ nc -u 192.168.252.2
不起作用。nc
在 TCP 模式下在任何一个方向上都不起作用。
交换机显示的路由表在学习路由列表中列出了这两个 VLAN,指示每条路由的正确 VLAN。同一开关显示 ARP 缓存,其中包含所有四台机器的正确 MAC 地址。
我应该为 VLAN 间通信做哪些额外的事情?
似乎问题不在于配置,而在于 VLAN 1(这是保留的 VLAN,默认使用)的一些特殊之处。
事实上,我添加了第三台机器
test3
并做了一些测试。看来,当我将这第三台机器放在第三个 VLAN 上时,我可以在它和(位于 VLAN 6 上)之间交换 UDP 数据包,但是我在和test2
之间遇到了完全相同的问题,这与我之前在和之间遇到的问题完全相同。test3
test1
test2
test3
因此,解决方案是简单地将所有机器从 VLAN 1 移动到某个其他 VLAN。