Um AP Wi-Fi com um único NIC

8

Estou tentando usar meu cartão sem fio do PC como um ponto de acesso, enquanto estou conectado à minha rede Wi-Fi usando o mesmo cartão, mas tenho um problema. O que estou tentando alcançar é o equivalente da tecnologia Wi-Fi virtual do Windows. Em 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 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 virtual novo1 no modo AP. Aí vem a parte interessante: a saída do iw list 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 interpretei as "combinações válidas de interface" para significar que eu poderia tem no máximo 1 gerenciado e 1 AP vifs neste cartão ao mesmo tempo. Mas então eu notei a restrição de aparência misteriosa, o STA / AP BI deve corresponder.

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

    
por MariusMatutiae 23.09.2013 / 17:20

2 respostas

5

Na verdade, a sentença misteriosa

STA/AP BI must match

parece não ter nada a ver com a minha configuração não está funcionando. Acontece que, ao invés disso,

 #channels <= 1

foi a chave para fazer funcionar. Eu finalmente entendi que significa que eu posso usar apenas um canal quando eu tenho dois vif no mesmo dispositivo físico (meu Intel Centrino, de qualquer forma), um no AP, o outro no modo de estação. Então eu mudei o canal no arquivo conf hostapd, para o mesmo que eu estava tentando se conectar, e eu não tinha mensagens de erro.

Neste ponto eu configurei o iptables, iniciei o dnsmasq, 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 tive isso, um único cartão wi-fi trabalhando simultaneamente como ponto de acesso e cliente para uma rede conectada à Internet.

    
por 09.10.2013 / 17:13
5

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

A fonte do kernel em 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.

Então BI é o intervalo de beacon , e fazer com que seja igual não deve ser um grande problema.

    
por 22.12.2016 / 12:44