3

Возможно ли, чтобы одно WIFI-радио (802.11 b, g, n, ac) одновременно выполняло функции и точки доступа, и клиента точки доступа - если да, то как, и есть ли примеры программного обеспечения, которые позволяют это (мне особенно интересно в Linux, но любая ОС, которая делает это, доказывает, что это может быть сделано, и, следовательно, ценным для меня). Если нет, то почему нет?

Для ясности, я не говорю о радио, действующем как одно или другое, и о смене ролей в разное время, а также о двух радио на разных частотах, выполняющих разные работы. Я также не заинтересован в режиме ad-hoc, если только он не может использоваться в качестве AP и AP-клиента для других AP и AP-клиентов соответственно.

3 ответа3

2

Да, это можно сделать (в зависимости от возможностей устройства Wi-Fi). Я считаю, что «Wi-Fi Direct» превращает его в официальную функцию (например, телевизор, одновременно выступающий в качестве станции в домашней сети и в качестве точки доступа для прямой передачи видео), но также возможно иметь обычную точку доступа.

Невежественная попытка объяснения

Насколько я знаю, физическое радио ведет себя одинаково, будь то точка доступа или станция - по крайней мере, в "более простых" режимах, таких как 802.11b/g/n (возможно, это более сложно в 802.11ac). То есть не нужно переключаться между несовместимыми режимами "AP" и "STA".

Вместо этого он просто отправляет различные виды кадров. Если это позволяет встроенное ПО, то он может свободно отправлять кадры типа «AP-like» и «STA-like» одновременно. Это особенно верно для устройств "SoftMAC", которые (в отличие от "FullMAC") откладывают большую часть контроля ОС и драйверов.

Конфигурирование на практике

Я действительно не знаю, как это работает; Я просто пишу пост, потому что я проверил его на своем оборудовании.

  • Например, вот что iw phy говорит о переходнике ath9k серии Atheros. (Ему несколько лет, только 2,4 ГГц, но это устройство "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 сетей в качестве станции и разместить 8 сетей в качестве точки доступа; конечно, все они должны оставаться на одном канале (#channels <= 1). [1]

  • Аналогично, вот адаптер Intel "Wireless 3160". Поскольку он поддерживает 802.11ac, он выполняет гораздо больше работы в микропрограмме (т. Е. Является устройством "FullMAC") и поэтому ограничен возможностями микропрограммы. [2]

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

    Итак, поскольку режимы теперь основаны на прошивке, а не на драйвере, у вас может быть только один из них, но вы все равно можете быть станцией и точкой доступа.

    В нем также говорится #channels <= 2 - не только потому, что он двухдиапазонный, но и потому, что он может работать даже на двух каналах с одной полосой . Я считаю, что они сделали это возможным, потому что Wi-Fi Direct требует этого - в моих тестах на частоте 2,4 ГГц, если я использую разные каналы, мой телефон показывает маркер «[P2P]» рядом с SSID ноутбука. Если я использую тот же канал, телефон просто показывает обычную точку доступа.

Что касается того, как его настроить:

  1. Во-первых, используйте iw чтобы добавить новое виртуальное устройство поверх того же "phy" (физического адаптера). По умолчанию ваш адаптер phy0 и имеет один сетевой интерфейс wlan0 . Итак, добавьте второй:

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

    Если вы хотите разместить сеть, обычно вы используете type managed и ожидаете, что hostapd переключит интерфейс в режим AP, но по какой-то причине этого не происходит при наличии нескольких интерфейсов. Так что вместо этого вам, возможно, придется предварительно создать его в режиме AP напрямую.

  2. Во-вторых, просто настройте hostapd для использования этого интерфейса, как обычно.


1 (Ограничение "BI должен совпадать" объясняется здесь.) 2 (Все еще лучше, чем некоторые устройства Realtek или Broadcom, которые вообще не поддерживают режим AP!)

1

Режимы работы

Точка доступа, обеспечивающая WiFi, обычно называется AP, а клиент называется STA.

Возможно настроить ваше устройство как ретранслятор или как то, что я назову беспроводным беспроводным маршрутизатором, так как я не могу найти согласованное имя.

  • Повторитель установит мост (передаст все пакеты Ethernet между сторонами 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 ГГц, а 802.11 a/ac использует 5 ГГц, адаптеру потребуется как минимум 2 phy, и, вероятно, с точки зрения Linux его необходимо будет настроить как 2 отдельные точки доступа.

О программном обеспечении

У них есть множество специализированных дистрибутивов Linux, предназначенных для небольших компьютеров и WiFi-маршрутизаторов, вот несколько примеров:

Все ранее перечисленные дистрибутивы имеют собственный флаг на суперпользователя.

О названии WRT

Интересно отметить, что многие дистрибутивы Linux, ориентированные на маршрутизаторы, содержат слово WRT, поскольку они начинались как альтернативная прошивка для почтенного LinkSys WRT54G.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .