Nie robiłem tego wcześniej osobiście, ale oto kilka informacji, które pozwolą ci pójść we właściwym kierunku.
Z punktu widzenia protokołu zdecydowanie możliwe jest, aby pojedyncze radio działało zarówno jako AP, jak i STA klienta. Działa najlepiej (a może jest to prawie obowiązkowe), jeśli tworzony punkt dostępu i ten, do którego dołączasz jako klient, działają na tym samym kanale. Posiadanie karty radiowej przez cały czas przełączania kanałów na zgłoszenia serwisowe to przepis na utracone ramki i straszną wydajność.
Pod względem oprogramowania staje się to możliwe. Kilka sterowników kart 802.11 w systemie Linux obsługuje koncepcję VAP (wirtualnych AP), która pozwala jednej karcie działać jako wiele AP (wiele SSID, nawet BSSID) jednocześnie. Wbrew intuicji, pojęcie VAP oznacza dowolny rodzaj wirtualnych interfejsów na tej samej karcie 802.11, niezależnie od tego, czy interfejs wirtualny jest w trybie AP, czy nie. Tak więc w przypadku tych kombinacji kart / sterowników można utworzyć dwa VAP - VAP w trybie STA
Sterownik MadWifi dla kart opartych na Atheros to taki, który obsługuje VAP. Jeśli twoja karta 802.11 korzysta z mikroukładu Atheros i zainstalujesz odpowiednią wersję sterownika MadWifi, być może będziesz mógł skonfigurować swoją kartę do jednoczesnego trybu STA + AP mniej więcej tak:
wlanconfig ath0 create wlandev wifi0 wlanmode sta
wlanconfig ath1 create wlandev wifi0 wlanmode ap
Pamiętaj, że nie są to kompletne instrukcje konfiguracji wszystkiego, ale próba rozpoczęcia pracy.
Możesz poprosić Google o coś takiego jak „ wifi vap ”, aby uzyskać więcej informacji. Skopiowałem powyższe polecenia stąd .
Aha, i niektóre obalenie mitów: karty Atheros nie są rzadkością w komputerach konsumenckich. Są ważnym graczem w chipsetach 802.11, a także Broadcom, Marvell, Intel i Ralink. I tylko dlatego, że użyłem przykładu MadWifi / Atheros, nie oznacza to, że nie ma sterowników Linuksa dla układów innych głównych graczy, które mogłyby zrobić coś podobnego. Ponadto nie jest wymagane 802.11s . Mówienie, że musisz to zrobić w 802.11, to jak mówienie, że musisz obsługiwać protokół Spanning Tree Protocol, aby przekazywać ramki z jednego interfejsu do drugiego.
Sterownik nl80211 ma tryb zwany „interfejsem zarządzanym”. Możesz go skonfigurować za pomocą narzędzia „iw”:
Więcej informacji na ten temat jest dostępnych na https://wireless.wiki.kernel.org/en/users/documentation/iw . Phy0 odnosi się do tego, co widzisz w / sys / class / ieee80211 /.
Widziałem też, że rPI3 robi coś podobnego, ale z bardziej zacienionym trybem interfejsu „__ap” . W ten sposób użytkownik tworzy drugi interfejs, który działa tylko w trybie AP i używa początkowego interfejsu jako trybu klienta.
Niezależnie od tego, w jaki sposób sobie to uświadomisz (sterownik oczywiście musi go obsługiwać), potrzebujesz dwóch interfejsów (z tego samego urządzenia fizycznego). Jeden interfejs może po prostu uruchomić wpa_supplicant jako tryb klienta, drugi (tryb AP) zwykle używa hostapd do odtwarzania punktu dostępu.
[EDYTOWAĆ:]
Kod źródłowy narzędzia IW wyjaśnia wyraźnie o podejrzanym trybie __ap:
Tryb __ap tłumaczy się na typ netlink NL80211_IFTYPE_AP. Też to przetestowałem i działa dobrze. Dziwne, że wiki dokumentacji jądra go nie spełnia.
źródło
źródło i więcej informacji:
https://wiki.archlinux.org/index.php/Software_access_point
Krótka odpowiedź
Urządzenie Wi-Fi musi obsługiwać tryb AP
Potrzebujesz urządzenia bezprzewodowego zgodnego z nl80211, które obsługuje tryb pracy AP. Można to zweryfikować, uruchamiając polecenie iw list, w bloku Obsługiwane tryby interfejsu powinien znajdować się na liście AP:
Bezprzewodowy klient i oprogramowanie AP z jednym urządzeniem Wi-Fi
Tworzenie oprogramowania AP jest niezależne od własnego połączenia sieciowego (Ethernet, bezprzewodowy, ...). Wiele urządzeń bezprzewodowych obsługuje nawet jednoczesne działanie zarówno jako AP, jak i jako „klient” bezprzewodowy jednocześnie. Korzystając z tej możliwości, możesz utworzyć oprogramowanie AP działające jako „repeater bezprzewodowy” dla istniejącej sieci, używając pojedynczego urządzenia bezprzewodowego. Możliwości są wymienione w poniższej sekcji danych wyjściowych z listy IW:
prawidłowe kombinacje interfejsów:
Ograniczenie # kanały <= 1 oznacza, że AP oprogramowania musi działać na tym samym kanale, co połączenie klienta Wi-Fi; patrz ustawienie kanału w pliku hostapd.conf poniżej.
Jeśli chcesz skorzystać z tej możliwości / funkcji, być może dlatego, że połączenie Ethernet nie jest dostępne, musisz utworzyć dwa oddzielne interfejsy wirtualne do korzystania z niego. Interfejsy wirtualne dla urządzenia fizycznego wlan0 można utworzyć w następujący sposób: Interfejsy wirtualne z unikalnym adresem MAC są tworzone dla samego połączenia sieciowego (wlan0_sta) i oprogramowania AP / hostapd „repeater bezprzewodowy”:
Konfiguracja
Utworzenie punktu dostępu składa się z dwóch głównych części:
Przybory
create_ap
Pakiet create_ap udostępnia skrypt, który może utworzyć zmostkowany lub NATed punkt dostępu do udostępniania w Internecie. Łączy hostapd, dnsmasq i iptables w celu zapewnienia dobrego funkcjonowania punktu dostępu. Podstawowa składnia do tworzenia sieci wirtualnej NATed jest następująca:
źródło