我正在尝试使用 2 个不同的 VLAN 隔离家庭网络中的设备:HOME 和 IOT。我有以下网络设备:
- 1 个电缆调制解调器
- 1 个带有 WAN、LAN 和 OPT1 端口的 OPNsense 路由器
- 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。
- 家庭:访问互联网和 IOT VLAN。
- 物联网:仅访问互联网。
在交换机中,我使用高级 802.1Q VLAN 配置了 VLAN 和端口,如下所示:
- VLAN ID 1(默认):所有端口均未标记。
- VLAN ID 2(家庭):端口 1 和 2 已标记。其他所有端口均已排除。
- VLAN ID 3 (IOT):端口 1 和 2 已标记。端口 5 未标记。其他所有端口均已排除。
在交换机的 PVID 表中,除端口 5 的 ID 为 3 外,所有端口的 ID 均为 1。
在接入点中,我创建了 3 个 SSID:
SSID1:
- 姓名:admin
- VLAN ID:1
SSID2:
- 名称:家
- VLAN ID:2
SSID3:
- 名称:iot
- VLAN ID:3
在 SSID2 上,我连接了一台 Windows 笔记本电脑。在 SSID3 上,我连接了一台 Wi-Fi IP 摄像头。
所有这些似乎大部分都运行良好。所有设备都分配到各自的 VLAN,并具有正确的 DHCP 分配,并且它们都可以访问互联网。此外,有线和 Wi-Fi 设备之间的任何 VLAN 间通信(防火墙规则允许的情况下)都可以正常工作。例如,我能够从 HOME 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(HOME VLAN)Windows 笔记本电脑访问 Linux 笔记本电脑中托管的主页时,页面始终无法加载。tcpstat 显示来自 Windows 笔记本电脑的传入连接,但它停留在 SYN_RECV 状态,始终无法达到 ESTABLISHED 状态。从有线 Windows PC 访问页面完全没问题。
此时,我不明白为什么当两个设备都是 Wi-Fi 时会出现这种看似 VLAN 间路由问题,但当至少有一个设备是有线时它们可以正常工作。非常感谢任何提示或见解。
PS:AP 和交换机均运行 Netgear 的最新固件版本。
答案1
原来问题出在 WAX630E AP 上。我联系了 Netgear 支持,他们承认在使用单个 AP 时,此 AP 不支持 VLAN 间通信。他们也不打算发布修复程序,这让我有点困惑,但我能做什么呢。所以这个被退回了。