Я раніше цього не робив особисто, але ось деякі відомості, щоб направити вас у правильному напрямку.
З точки зору протоколу, однозначне радіо може працювати як AP, так і клієнтський STA. Найкраще це виходить (або, можливо, є майже обов'язковим), якщо додаток, який ви створюєте, і той, до якого ви приєднуєтесь як клієнт, перебуваєте на одному каналі. Наявність радіокарти має продовжувати перемикати канали на сервісні запити - це рецепт втрачених кадрів та жахливої продуктивності.
Програмне забезпечення - це стає можливим. Кілька драйверів карт 802.11 в Linux підтримують концепцію VAP (віртуальних AP), яка дозволяє одній картці одночасно діяти як кілька AP (декілька SSID, навіть BSSID). Протирічливо, термін VAP означає будь-який вид віртуальних інтерфейсів на одній і тій же карті 802.11, незалежно від того, перебуває віртуальний інтерфейс у режимі AP чи ні. Таким чином, на цих комбо-картах / драйверах ви можете створити два VAP-програми - VAP-режим VA
Драйвер MadWifi для карт на базі Atheros - це підтримка VAP. Якщо на вашій карті 802.11 використовується чіпсет Atheros, і ви встановлюєте правильну версію драйвера MadWifi, можливо, ви зможете налаштувати свою карту для одночасного режиму STA + AP приблизно так:
wlanconfig ath0 create wlandev wifi0 wlanmode sta
wlanconfig ath1 create wlandev wifi0 wlanmode ap
Зауважте, що це не повна інструкція щодо налаштування всього, а лише спроба розпочати роботу.
Ви можете скористатися Google для отримання додаткової інформації як " wifi vap ". Я скопіював вищезгадані команди звідси .
Ну, і про міф, який розрушується: картки Atheros не рідкість у споживчих машинах. Вони є головним гравцем 802.11 чіпсетів, поряд з Broadcom, Marvell, Intel та Ralink. І тільки тому, що я використав приклад MadWifi / Atheros, це не означає, що для інших основних чіпів гравців Linux не існує драйверів Linux, які можуть зробити подібне. Також 802.11s для цього не потрібно. Скажіть, що для цього потрібно виконати 802.11s - це як сказати, що вам потрібно підтримувати протокол Spanning Tree просто для пересилання кадрів з одного інтерфейсу в інший.