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 должно совпадать.

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

2 ответа2

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 - это интервал маяка, и его согласование не должно быть большой проблемой.

5

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

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, работающая одновременно как Точка доступа и клиент к сети, связанной с Интернетом.

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