我试图将家庭网络中的设备与 2 个不同的 VLAN 隔离:家庭和物联网。我有以下网络设备:
- 1 个电缆调制解调器
- 1 个 OPNsense 路由器,带 WAN、LAN 和 OPT1 端口
- 1 台 Netgear MS108EUP 网管交换机,带 8 个端口
- 1 个 Netgear WAX630E 支持 VLAN 的接入点
这是有线连接的布局方式:
- OPNsense 的 WAN 端口连接到电缆调制解调器。
- 交换机的端口 1 连接到 Netgear AP。
- 交换机的端口 2 连接到 OPNsense OPT1 端口。
- 交换机的端口 3 连接到 OPNsense LAN 端口。
- 交换机的端口 4 连接到 Windows PC。
- 交换机的端口 5 连接到有线 IP 摄像机。
在 OPNsense 中,我创建了以下 VLAN:
- vlan02[HOME],标签 2,分配给 OPT1 端口。
- vlan03[IOT],标签 3,分配给 OPT1 端口。
在 LAN 和两个 VLAN 中启用 DHCP,如下:
局域网:
- 子网:192.168.1.0
- 网关:192.168.1.1
- 范围:192.168.1.100 - 192.168.1.254
家:
- 子网:192.168.2.0
- 网关:192.168.2.1
- 范围:192.168.2.100 - 192.168.2.254
物联网:
- 子网:192.168.3.0
- 网关:192.168.3.1
- 范围:192.168.3.100 - 192.168.3.254
在 OPNsense 中,我创建了防火墙规则以允许:
- LAN:访问互联网和所有 VLAN。
- HOME:访问互联网和IOT VLAN。
- 物联网:仅访问互联网。
在交换机中,我使用高级 802.1Q VLAN 配置了 VLAN 和端口,如下所示:
- VLAN ID 1(默认):所有端口均未标记。
- VLAN ID 2 (HOME):端口 1 和 2 已标记。所有其他人均排除在外。
- VLAN ID 3 (IOT):端口 1 和 2 已标记。端口 5 未标记。所有其他人均被排除在外。
在交换机的PVID表中,除了端口5的ID为3之外,所有端口的ID都是1。
在接入点中,我创建了 3 个 SSID:
SSID1:
- 姓名: 管理员
- VLAN ID:1
SSID2:
- 名称: 家
- VLAN ID:2
SSID3:
- 名称:物联网
- VLAN ID:3
我连接了一台 Windows 笔记本电脑到 SSID2。我在 SSID3 上连接了一个 Wi-Fi IP 摄像机。
所有这些似乎在大多数情况下都运行良好。所有设备都被分配到各自的 VLAN,并具有正确的 DHCP 分配,并且它们都可以访问互联网。此外,有线和 Wi-Fi 设备(在防火墙规则允许的情况下)之间的任何 VLAN 间通信都可以正常工作。例如,我可以从家用 Wi-fi 笔记本电脑连接到 IOT 有线 IP 摄像头,同样我也可以从 LAN 有线 PC 桌面连接到 IOT Wi-Fi 摄像头。VLAN 间有线到有线通信也可以正常工作(同样,在防火墙规则允许的情况下)。
仅当我尝试在不同 VLAN 中的 Wi-Fi 设备之间进行连接时,才会出现此问题。如果我尝试从 Wi-Fi HOME 笔记本电脑访问 Wi-fi IOT 摄像头,则无法建立连接。
为了解决该问题,我将运行 Nginx Web 服务器的 Linux 笔记本电脑连接到 Wi-Fi SSID3(IOT VLAN)。在这台笔记本电脑中,我运行 tcpstat 来显示传入和传出连接。当我尝试从 SSID2(家庭 VLAN)Windows 笔记本电脑访问 Linux 笔记本电脑中托管的主页时,该页面永远不会加载。tcpstat 显示来自 Windows 笔记本电脑的传入连接,但它停留在 SYN_RECV 状态并且永远不会达到 ESTABLISHED。从有线 Windows PC 访问该页面效果很好。
在这一点上,我很困惑为什么当两台设备都是 Wi-Fi 时会出现这种看似 VLAN 间路由的问题,但当至少一台设备是有线的时它们却可以正常工作。非常感谢这里的任何提示或见解。
PS:AP 和交换机都运行 Netgear 的最新固件版本。