WIFI - 单个无线电同时充当 AP 和 AP 客户端

WIFI - 单个无线电同时充当 AP 和 AP 客户端

单个 (802.11 b、g、n、ac) WIFI 无线电是否可以同时充当接入点和接入点客户端 - 如果可以,如何操作,是否有软件示例允许这样做(我对 Linux 特别感兴趣,但任何可以做到这一点的操作系统都证明这是可以做到的,因此对我来说很有价值)。如果不可以,为什么不可以?

为了清楚起见,我并不是在谈论一个无线电充当其中一种角色并在不同时间切换角色,也不是在谈论两个不同频率的无线电执行不同的工作。我对临时模式也不感兴趣,除非可以利用它分别作为 AP 和 AP 客户端显示给其他 AP 和 AP 客户端。

答案1

操作模式

提供 WiFi 的接入点通常称为美联社,而客户端被称为星空卫士

可以将你的设备配置为中继器或者我将其称为无线-无线路由器,因为我找不到一个大家都同意的名字。

  • 中继器将要(在 STA 和 AP 端之间传输所有以太网数据包),使用现有的网络基础设施DHCP、路由、...
  • 无线-无线路由器 将要路线STA 和 AP 端之间选定的数据包,提供 DHCP 和NAT

无线-无线路由器将需要更多配置,但只会根据需要传输数据包。

硬件兼容性

有些无线网卡不能同时使用STA和AP模式(有些网卡甚至不能作为AP)。

如果您手头有适配器,iw list可以用它来确定它是否能够同时充当客户端和接入点。正如本文所述问题,您必须查找valid interface combinations该命令的部分iw list

关于单个 802.11 a/b/g/ac 无线电

由于 802.11 b/g/n 使用 2.4 GHz 而 802.11 a/ac 使用 5 GHz,从 Linux 的角度来看,适配器至少需要 2 个 phy,并且可能需要配置为 2 个独立的接入点。

关于软件

有很多专门针对小型计算机和 WiFi 路由器的 Linux 发行版,以下是一些示例:

所有前面列出的发行版都有自己的超级用户标志。

关于 WRT 名称

有趣的是,许多针对路由器的 Linux 发行版都包含 WRT单词因为它们最初是作为古老固件的替代固件LinkSys WRT54G

答案2

是的,可以做到(取决于 Wi-Fi 设备的功能)。我相信“Wi-Fi Direct”会将其变成一项官方功能(例如,电视同时充当家庭网络上的站点和直接视频传输的接入点),但也可以只使用普通 AP。

毫无头绪的解释

据我所知,无论是 AP 还是站点,物理无线电的行为都相同 - 至少在 802.11b/g/n 等“更简单”的模式下(也许在 802.11ac 中更复杂)。也就是说,它不需要转变不兼容的“AP”和“STA”行为之间。

相反,它只是发送不同类型的帧。如果固件允许,那么它可以自由地同时发送“类似 AP”和“类似 STA”的帧。对于“SoftMAC”设备尤其如此,它(与“FullMAC”设备不同)将大部分控制权交给操作系统和驱动程序。

在实践中配置它

我不太清楚它是如何工作的;我写这篇文章只是因为我已经在自己的硬件上测试过了。

  • 例如,以下是iw phy关于 Atheros ath9k 系列适配器的说明。(它已有数年历史,仅 2.4 GHz,但它是“SoftMAC”设备 - 这意味着驱动程序可以处理所有事情,并且可以自由地执行很多奇怪的东西。)

    valid interface combinations:
             * #{ managed } <= 2048, #{ AP, mesh point } <= 8, #{ P2P-client, P2P-GO } <= 1,
               total <= 2048, #channels <= 1, STA/AP BI must match
             * #{ WDS } <= 2048,
               total <= 2048, #channels <= 1, STA/AP BI must match
    

    *行都是一个组合列表。所以我可以将 2000 个网络关联为一个站点作为 AP 托管 8 个网络;当然,它们必须全部保持在单个信道上(#channels <= 1)。[1]

  • 同样,这是英特尔“无线 3160”适配器。由于它支持 802.11ac,因此它在固件中执行了更多工作(即“FullMAC”设备),因此受到固件功能的限制。[2]

    valid interface combinations:
             * #{ managed } <= 1, #{ AP, P2P-client, P2P-GO } <= 1, #{ P2P-device } <= 1,
               total <= 3, #channels <= 2
    

    因此,由于模式现在是基于固件而不是基于驱动程序的,您只能拥有其中一种 - 但您仍然可以成为一个站AP。

    它还说#channels <= 2——不仅仅是因为它是双频的,还因为它甚至可以在两个同一乐队频道。我相信他们之所以能做到这一点,是因为 Wi-Fi Direct 需要它——在我 2.4 GHz 频段的测试中,如果我使用不同的频道,我的手机会在笔记本电脑的 SSID 旁边显示“[P2P]”标记。如果我使用相同的频道,手机只会显示常规 AP。

至于如何配置:

  1. 首先,使用iw在同一个“phy”(物理适配器)上添加一个新的虚拟设备。默认情况下,您的适配器是phy0,并且有一个网络接口wlan0。因此添加第二个:

    iw phy phy0 interface add wlan1 type __ap                 # [sic]
    

    如果你想托管一个网络,通常情况下您可能type managed希望hostapd将接口切换到 AP 模式,但由于某种原因,当存在多个接口时,这种情况不会发生。因此,您可能必须直接在 AP 模式下预先创建它。

  2. 其次,只需hostapd按通常方式配置使用该接口即可。


1(“BI 必须匹配”限制解释如下2(仍然比一些根本不支持 AP 模式的 Realtek 或 Broadcom 设备更好!)

答案3

相关内容