Wi-Fi AP с одной сетевой картой

8

Я пытаюсь использовать беспроводную карту своего ПК в качестве точки доступа, когда я подключаюсь к моей сети Wi-Fi через ту же карту, но у меня есть проблема. То, чего я пытаюсь достичь, - это эквивалент технологии виртуального Wi-Fi в Windows. В принципе это очень просто:

service network-manager stop
iw dev wlan0 del
iw phy phy0 interface add new0 type station
service network-manager start
iw phy phy0 interface add new1 type __ap
hostapd -B /etc/hostapd.conf

с подходящей конфигурацией для hostapd:

cat /etc/hostapd/hostapd.conf 
interface=new1
driver=nl80211
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
ssid=XXXX
country_code=us
hw_mode=g
channel=1
macaddr_acl=0
auth_algs=3
ignore_broadcast_ssid=0
eap_server=0
wpa=2
wpa_passphrase=XXXX
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP

Однако драйвер nl80211 отказывается переводить виртуальный IF new1 в режим AP. Вот интересный момент: вывод списка iw содержит

Supported interface modes:
         * IBSS
         * managed
         * AP
         * AP/VLAN
         * monitor
software interface modes (can always be added):
         * AP/VLAN
         * monitor
valid interface combinations:
         * #{ managed } <= 1, #{ AP } <= 1,
           total <= 2, #channels <= 1, STA/AP BI must match
         * #{ managed } <= 2,
           total <= 2, #channels <= 1

Очевидно, что моя карта Wi-Fi (Intel Centrino Advanced-N 6235 [8086: 088e] под iwlwifi) поддерживает режим AP (я проверял это), и я интерпретировал «действительные комбинации интерфейсов», чтобы означать, что у меня может быть максимум 1 управляемый и 1 AP VIFS на этой карте одновременно. Но затем я заметил загадочное ограничение, STA / AP BI должно совпадать.

Кто-нибудь знает, что это значит, и это то, что мешает моим попыткам использовать два VIFS на моей карте, один на станции, другой в режиме AP? ура

MariusMatutiae
источник
Тот же вопрос: superuser.com/questions/615664/…
imz - Иван Захарящев
1
@ imz - IvanZakharyaschev Вы совершенно правы, спасибо. Но мой вопрос о значении STA / AP BI должен совпадать, что, по-видимому, создает какое-то ограничение, которое я еще не расшифровал.
MariusMatutiae
Извините, я не учел эту деталь. Вы правы. Но эта конкретная проблема не очевидна из названия, которое заставило меня думать, что наличие единственного WiFi-адаптера - единственная проблема здесь ...
imz - Иван Захарящев

Ответы:

5

В случае, если кто-нибудь придет сюда, чтобы определить, «STA / AP BI должен совпадать»:

Источник ядра include/net/cfg80211.h, в частности struct ieee80211_iface_combination, говорит

 * @beacon_int_infra_match: In this combination, the beacon intervals
 *  between infrastructure and AP types must match. This is required
 *  only in special cases.

Таким образом, BI - это интервал маяка , и его согласование не должно быть большой проблемой.

dirkt
источник
6

На самом деле, загадочное предложение

STA/AP BI must match

Кажется, не имеет ничего общего с моей настройкой не работает. Оказывается, вместо этого

 #channels <= 1

был ключом, чтобы заставить это работать. В конце концов я понял, что это означает, что я могу использовать только один канал, когда у меня есть два VIF на одном физическом устройстве (во всяком случае, на моем Intel Centrino), один в точке доступа AP, другой в режиме станции. Поэтому я переключил канал в файле conf hostapd на тот же, к которому пытался подключиться, и у меня не было сообщений об ошибках.

На этом этапе я настроил iptables, запустил dnsmasq, затем hostapd с помощью

echo 1 >/proc/sys/net/ipv4/ip_forward
iptables --table nat --append POSTROUTING --out-interface new0 -j MASQUERADE
iptables --append FORWARD --in-interface new1 -j ACCEPT
dnsmasq 
/usr/local/bin/hostapd /etc/hostapd/hostapd.conf

и затем у меня было это, одна карта Wi-Fi, работающая одновременно как точка доступа и клиент в сети, подключенной к Интернету.

MariusMatutiae
источник