我们目前正在使用 Bananpi R64 和 ArchLinux 作为操作系统来设置我们自己的路由器。我们希望使用 VLAN 将我们的网络在第 2 层划分为不同的子网(家庭、私人、客户……)。子网的分配应根据所连接终端设备的 Mac 地址自动完成。在 Bananpi 上,我们有几个物理网络接口(Wifi 和以太网)。子网的分配应该与物理接口无关。这意味着无论设备是通过 WLAN 还是以太网端口连接,它都应该始终位于同一子网中。您是否有想法是否以及如何最好地实现这一点?我们已经尝试通过 nftables 中的入口链将流量转发到适当的子网,只需更改数据包中的目标 MAC 即可。这似乎可以工作一半,但使用 DNSmasq 作为 DHCP 服务器的 IP 地址分配不再起作用……如果您有除 VLAN 之外的任何其他流量分割想法,我们也会很感激。
已经感谢您的建议。
答案1
由于基于 VLAN 的 L2 过滤是由以太网交换机完成的,因此此功能也需要您的以太网交换机支持。
大多数企业级以太网交换机和 Wi-Fi 接入点都支持使用 RADIUS 服务器获取 VLAN – 设备连接后,AP 会立即联系 RADIUS 服务器以确认其访问权限,并接收 VLAN ID 作为“接受”响应的一部分。(这通常是 WPA-Enterprise 或 802.1X 的一部分,但也可以使用 MAC 地址身份验证来完成。)一个常用术语是“动态 VLAN”。
(也存在支持静态“MAC VLAN”的以太网交换机,尽管通常限制很小;它们旨在分离特定制造商的 IP 电话等。)
通常路由器根本不涉及此内容,因为这不是首先进行 VLAN L2 分离的地方(除非路由器也是交换机和/或 AP)。但是,如果您在 BananaPi 本身上运行 hostapd,dynamic_vlan=
并且macaddr_acl=
将是相关设置。