我一直遵循这个指南:
https://homenetworkguy.com/how-to/set-up-a-fully-functioning-home-network-using-opnsense/
一切都很好,直到我对 VLAN 的交换机配置感到困惑,无法分辨标记端口和未标记端口。
我的潜在 VLAN 配置如下:
虚拟局域网 | 知识产权 | NIC 端口 | 交换机端口 | 标签 | 未标记 | 笔记 |
---|---|---|---|---|---|---|
局域网 | 192.168.1.1 | 0 | 1 | 否 | 是 | 专用 LAN 管理端口 |
用户 | 192.168.10.1 | 1 | 2 | 是 | 否 | 可以访问所有其他 VLAN |
客人 | 192.168.20.1 | 3 | 3 | 是 | 否 | 任何未知设备都应路由到这里。无权访问其他 VLAN |
物联网 | 192.168.30.1 | 3 | 3 | 是 | 否 | 无法访问其他 VLAN |
网络摄像机 | 192.168.40.1 | 3 | 3 | 是 | 否 | 无法访问互联网。可以访问 NAS 的用户 |
工作 | 192.168.50.1 | 2 | 4 | 是 | 否 | 无法访问其他 VLAN |
我是否应该将 WAP(我的旧路由器)添加到交换机上的端口 5,该端口将被标记并且它会预期 VLAN 流量?
当任何未知设备插入交换机时,它会默认使用 LAN 吗?如果知道 MAC 地址,它会被路由到其对应的 VLAN 吗?
答案1
当任何未知设备插入交换机时它会默认为 LAN 吗?
它将默认为分配为“未标记”的 VLAN在那个端口上。
(如果您的交换机有单独的“PVID”设置,那么数据包发送设备发送并由交换机接收的数据将默认为设置为该端口 PVID 的 VLAN - 但为了正常运行,每个端口的 PVID 应该总是匹配该端口的未标记 VLAN。
如果知道 MAC 地址,它会被路由到其伴随 VLAN 吗?
不,根本不是这样。您的 VLAN 分配是不是基于 MAC 地址,也不基于设备是否“已知” 1。通常,802.1Q VLAN 静态分配给交换机端口,任何连接到给定交换机端口的设备始终进入相同的 VLAN。
OpnSense 无法影响 VLAN 分配——它所能做的就是完全拒绝向“此 VLAN 中的未知”设备发放 IP 地址,例如,如果您的 Wi-Fi 接入点将您的烤面包机放在“USER”VLAN 而不是“IOT”VLAN,您可以让 OpnSense 拒绝发放 DHCP 租约,但不能让它将设备移动到“IOT”VLAN。
1尽管基于 MAC 的 VLAN 分配技术上很有可能,这是您只能在更偏向“企业”端的交换机和 AP 中找到的功能,例如 TP-Link JetStream/Omada 系列 - 通常作为 802.1X(又称 Wi-Fi 的“WPA-Enterprise”)的一部分。当然不是在 TL-SG108E 中,它最多只能执行基于静态 802.1Q 标签的 VLAN。
我对标记和未标记的端口感到困惑。
“标记”和“未标记”首先不适用于端口。相反,它适用于每个 VLAN在每个端口上 – 你不会像示例中那样只有一个列;你会有一个矩阵描述哪些端口标记了哪些 VLAN。同一个 VLAN 可以(并且通常将要) 在 OpnSense 端口上被“标记”,但在另一个端口上被“未标记”。
(请记住,“标记”的全部目的是允许单个端口(例如进入 OpnSense 系统的端口)同时承载多个 VLAN。但是,设备需要理解标记,因此交换机的工作通常是从 OpnSense 接收标记的 VLAN 并将其公开为未标记在其他端口上。
因此,表格中有一半有意义,但另一半没有意义。您需要两个单独的表格:一个用于描述仅有的VLAN ID 分配给 IP 子网(也可能分配给 OpnSense 接口),第二个表描述了 VLAN 分配给交换机端口。例如:
界面 | VLAN 编号 | 知识产权 | 笔记 |
---|---|---|---|
局域网 | 1 | 192.168.1.1/24 | 专用 LAN 管理端口 |
用户 | 2 | 192.168.10.1/24 | 可以访问所有其他 VLAN |
客人 | 3 | 192.168.20.1/24 | 无法访问其他 VLAN |
物联网 | 4 | 192.168.30.1/24 | 无法访问其他 VLAN |
网络摄像机 | 5 | 192.168.40.1/24 | 无法访问互联网。可以访问 NAS 的用户 |
工作 | 6 | 192.168.50.1/24 | 无法访问其他 VLAN |
和:
交换机端口 | VLAN 1 (局域网) |
VLAN 2 (用户) |
VLAN 3 (访客) |
VLAN 4 (物联网) |
VLAN 5 (网络摄像机) |
VLAN 6 (工作) |
---|---|---|---|---|---|---|
1(OpnSense) | 未标记 | 标签 | 标签 | 标签 | 标签 | 标签 |
2(Windows 电脑) | - | 未标记 | – | – | – | - |
4 (网络摄像头) | - | - | - | - | 未标记 | - |
5(廉价通用 AP) | - | - | 未标记 | - | - | - |
6(多 SSID AP) | 未标记 | 标签 | 标签 | 标签 | - | - |
在此示例中,只有通向以下设备的端口才具有“标记”VLAN:理解标记的 VLAN(并且可以信任它们)。其他所有内容都只获得一个未标记的 VLAN(也称为“访问端口”)。
例如,OpnSense 可以理解 802.1Q VLAN 标签——每个“VLAN”接口对应一个标签;任何 Linux 设备也是如此。另一方面,Windows PC 通常无法很好地处理带标签的 VLAN(除非它们运行 Hyper-V或者拥有“服务器级”NIC 及其精美的驱动程序)。
如果您的交换机具有“PVID”设置,则每个端口的 PVID 必须与该端口上未标记的 VLAN 的 ID 匹配,以确保发送和接收的数据包之间的对称性。(当交换机收到没有 VLAN 标记的数据包时,它会假定它们属于“PVID”VLAN - 与从“未标记”VLAN 发送数据包完全相反。)