Um AP wifi com uma única placa de rede

8

Estou tentando usar a placa wireless do meu PC como AP, enquanto estou conectado à minha rede wifi através da mesma placa, mas tenho um problema. O que estou tentando alcançar é o equivalente à tecnologia Wi-fi Virtual do Windows. Na linha de princípio, é muito simples:

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

com uma configuração adequada para o 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

No entanto, o driver nl80211 se recusa a colocar o IF new1 virtual no modo AP. Aí vem a parte interessante: a saída da lista iw contém

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

É óbvio que minha placa wifi (um Intel Centrino Advanced-N 6235 [8086: 088e] sob iwlwifi) suporta o modo AP (eu testei), e eu tinha interpretado as "combinações válidas de interface" para significar que eu poderia ter no máximo 1 gerenciado e 1 AP vifs neste cartão ao mesmo tempo. Mas então notei a restrição de aparência misteriosa: o STA / AP BI deve corresponder.

Alguém sabe o que isso significa, e se é isso que está frustrando minhas tentativas de usar dois vifs no meu cartão, um na estação e outro no modo AP? Felicidades

MariusMatutiae
fonte
Mesma pergunta: superuser.com/questions/615664/…
imz - Ivan Zakharyaschev
11
@ imz - IvanZakharyaschev Você está certo, obrigado. Mas minha pergunta também sobre o significado do STA / AP BI deve corresponder, o que parece fornecer algum tipo de restrição que ainda não decifrei.
MariusMatutiae
Lamento não ter levado em consideração esses detalhes. Você está certo. Mas esse problema em particular não é óbvio no título, o que me fez pensar que ter um adaptador WiFi é o único problema aqui ...
imz - Ivan Zakharyaschev

Respostas:

5

Caso alguém venha aqui para identificar "STA / AP BI deve corresponder":

A fonte do kernel include/net/cfg80211.h, em particular struct ieee80211_iface_combination, diz

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

Portanto, BI é o intervalo de beacon , e fazer com que isso corresponda não deve ser um grande problema.

dirkt
fonte
6

Na verdade, a sentença misteriosa

STA/AP BI must match

parece não ter nada a ver com a minha instalação não está funcionando. Acontece que

 #channels <= 1

foi a chave para fazê-lo funcionar. Acabei entendendo que significa que posso usar apenas um canal quando tenho dois vídeos no mesmo dispositivo físico (meu Intel Centrino, pelo menos), um no AP e outro no modo Station. Então, mudei o canal no arquivo conf hostapd, para o mesmo com o qual estava tentando me conectar e não tinha mensagens de erro.

Nesse ponto, configurei o iptables, iniciei o dnsmasq e depois o hostapd por meio de

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

e então eu o tinha, uma única placa wifi funcionando simultaneamente como ponto de acesso e cliente de uma rede conectada à Internet.

MariusMatutiae
fonte