Un punto de acceso wifi con una sola NIC

8

Estoy tratando de usar la tarjeta inalámbrica de mi PC como AP, mientras estoy conectado a mi red wifi a través de la misma tarjeta, pero tengo un problema. Lo que estoy tratando de lograr es el equivalente de la tecnología de Wi-Fi virtual de Windows. En línea de principio, es muy simple:

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

con una configuración adecuada 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

Sin embargo, el controlador nl80211 se niega a poner el IF virtual1 nuevo en modo AP. Aquí viene lo interesante: la salida de la lista iw contiene

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

Es obvio que mi tarjeta wifi (una Intel Centrino Advanced-N 6235 [8086: 088e] bajo iwlwifi) admite el modo AP (lo he probado), e interpreté que las "combinaciones de interfaz válidas" significan que podría tener como máximo 1 vifs administrados y 1 AP en esta tarjeta al mismo tiempo. Pero luego noté la restricción de aspecto misterioso, STA / AP BI debe coincidir.

¿Alguien sabe lo que esto significa y si esto es lo que está frustrando mis intentos de usar dos vifs en mi tarjeta, uno en la estación y el otro en modo AP? Salud

MariusMatutiae
fuente
La misma pregunta: superuser.com/questions/615664/...
imz - Ivan Zakharyaschev
1
@ imz - IvanZakharyaschev Tienes toda la razón, gracias. Pero mi pregunta también fue sobre el significado de STA / AP BI debe coincidir, lo que parece proporcionar algún tipo de restricción que aún no he descifrado.
MariusMatutiae
Lo siento, no he tenido en cuenta este detalle. Tienes razón. Pero este problema particular no es obvio por el título, que me hizo pensar que el tener un adaptador WiFi es el único problema aquí ...
imz - Ivan Zakharyaschev

Respuestas:

5

En caso de que alguien venga a identificar "STA / AP BI debe coincidir":

La fuente del núcleo include/net/cfg80211.h, en particular struct ieee80211_iface_combination, dice

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

Entonces BI es el intervalo de baliza , y lograr que coincida no debería ser un gran problema.

dirkt
fuente
6

En realidad, la misteriosa oración

STA/AP BI must match

Parece que no tiene nada que ver con mi configuración no funciona. Resulta en cambio que

 #channels <= 1

fue la clave para que funcione. Finalmente entendí que significa que solo puedo usar un canal cuando tengo dos vif en el mismo dispositivo físico (mi Intel Centrino, en cualquier caso), uno en AP y el otro en modo Estación. Así que cambié el canal en el archivo conf de hostapd, al mismo que estaba tratando de conectar, y no tuve mensajes de error.

En este punto configuré iptables, comencé dnsmasq, luego hostapd por medio 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

y luego lo tuve, una sola tarjeta wifi funcionando simultáneamente como punto de acceso y cliente a una red conectada a Internet.

MariusMatutiae
fuente