Linux下根据MAC地址分配VLAN

Linux下根据MAC地址分配VLAN

是否可以根据客户端的 MAC 地址在 Linux 上分配 VLAN?如果可以,该怎么做?vconfig 手册页似乎表明它仅在端口基础上运行。

我正在尝试实现一种无线设置,其中新客户端被分配到一个“未经批准”的 VLAN,他们将一直停留在该 VLAN 中,直到管理员批准他们(或者直到他们在本地强制门户上注册),此时我希望将他们重新分配给“已批准”的 VLAN。

如果存在 MAC:VLAN ID 映射,我该如何在 Linux 下配置它?

答案1

一般来说,大多数业务级接入点的运行模式如下“动态 VLAN 分配”(这是 Cisco 品牌的术语,其他人可能会用不同的名称来称呼它)。基本思想是,根据发送的身份验证凭据将 WLAN 客户端放入 VLAN。您的基础设施(包括 RADIUS 服务器)必须提供此功能。

“动态 VLAN”主要针对有线基础设施的功能(再次是思科品牌术语)也非常接近您所寻找的功能。

如果你没有思科设备,还有基于 MAC 的 VLAN对于不是由 802.1q 标签构建的 VLAN,而只是由客户端的 MAC 地址定义的 VLAN。由于 MAC 地址可以由客户端任意设置,因此这种技术显然是不安全的,但仍然可能有用。802.1q 之前的 VLAN 实现支持这种 VLAN(大约 12-15 年前),但如今已基本消失。

最近发布的针对主流 3.2.1 内核源的补丁为“macvlan”模块引入了新的“源”模式,作为旧时代基于 MAC 的 VLAN 功能的实现。该补丁尚未合并到内核源中,因为它仍需要一些工作,但如果有迫切需要,您显然可以自己应用它。或者只需等待官方合并发生 - 如果代码不错,则不会花很长时间。

答案2

我认为我们需要更多有关您的物理配置的详细信息。简而言之,除非您的 Linux“服务器”充当某种中继无线访问控制器或能够即时操控事物,否则我对此表示怀疑。我想您可以运行多个基于 MAC 的身份验证的 SSID,每个 SSID 位于不同的 VLAN 上。

答案3

您无法使用 VLAN 来实现这一点。VLAN 更像是交换机功能,而 Linux 更像是客户端。

您想要的是所谓的“强制门户”,有许多可用的解决方案,可以使用 iptables 防火墙来实现。

一些强制门户分布的例子是 pfSense、zeroshell。

以下是一篇关于在现有机器上安装更多独立 Linux 软件的文章:

相关内容