Wi-Fi jako klient i AP

whata

Wi-Fi jako klient i AP
« kdy: 09. 11. 2011, 10:47:59 »
Zdravím,
potřebuju na notebooku nastavit WiFi jako AP (server) a zároveň, aby fungoval jako klient (každé z nich samostatně funguje, druhé běžně, první přes hostapd). Pro přesnost, jeden device, klient se připojuje na jedno SSID, AP poskytuje jiný SSID.

Na internetu jsem našel zmínky o wlanconfig, ale projekt (madwifi) vypadá mrtvý a při použití selže na Unsupported ioctl.

Existuje jiný způsob než wlanconfig/madwifi ?

Díky.
« Poslední změna: 09. 11. 2011, 11:56:25 od Petr Krčmář »


Fen

Re: WiFi jako klient i AP
« Odpověď #1 kdy: 09. 11. 2011, 11:47:36 »
Tohle  bude podle me problem. Na ntb se karty, ktere by umely vysilat i prijimat, moc nedelaj. Podle meho odhadu by takova karta musela mit 2 tumery, nebo umet bleskurychle menit frekvenci (coz asi nejde). Ale nevim to presne.

kosta

Re: Wi-Fi jako klient i AP
« Odpověď #2 kdy: 09. 11. 2011, 12:04:53 »
wlanconfig create ath0 wlandev wifi0 wlanmode ap
wlanconfig create ath1 wlandev wifi0 wlanmode sta nosbeacon
/*
iwpriv ath0 wds 1
iwpriv ath1 wds 1
*/ tohle chce vyzkouset, mozna to nebude potreba
iwconfig ath0 essid "xxxxx"
iwconfig ath1 essid "yyyy"
ifconfig ath0 up
ifconfig ath1 up

treba nejak takhle by to melo jit, je to jen zaklad, a asi jen pro atheros kartu, na jiny se to muze menit a treba to ani nepujde

Pali

Re: Wi-Fi jako klient i AP
« Odpověď #3 kdy: 09. 11. 2011, 12:09:19 »
wlanconfig je nestadartny program pre nestandartne rozhranie v madwifi a nikde inde sa nepouziva (a teda ani nemoze fungovat). Rovnako oznacene ako zastarale je rozhranie wext a jeho nastroje ako iwconfig, iwlist, iwpriv, ...

Novy wifi stack nl80211 v linuxovom kerneli by mal nieco take co chces podporovat (oproti staremu wext). Vacsina linuxovych ovladacov uz je prepisana do nl80211 a hostap ho tiez podporuje.

Ako nahrada baliku wext programov iwconfig, iwlist, ... je program iw ktory vecy ako vytvorit viac virtualnych interfacov k jednemu fyzickemu dokaze. Avsak musi to podporovat karta a aj ovladac...

Skus si vyskusat vytvorit druhy virtul. interface:
$ iw phy phy0 interface add ...

Pali

Re: Wi-Fi jako klient i AP
« Odpověď #4 kdy: 09. 11. 2011, 12:55:09 »
tak teraz som to otestoval na svojej intelackej wifine a funguje to. predpokladam ze to bude fungovat aj na inych modernych kartach. ma to ale problem, ze AP-cko sa mi spustilo iba ak som mu dal rovnaku frekvenciu ako mala wifina na ktoru som sa pripojil.

postup:
predpokladam ze mam sietovku s: fyzicke phy0 a virtualne wlan0
wlan0 bude v AP mode, wlan1 (po vytvoreni) v managed
odporucam najpr sa ujustit pouzivanim novej verzie iw! (na starych verziach ubuntu je stare iw, ktore je nefunkcne...)

1. vytvorenie druheho virtualneho interfacu wlan1 k fyzickemu phy0
$ sudo iw phy phy0 interface add wlan1 type managed

2. pripojenie sa na nejake AP-cko na wlan1, napr. cez iw:
$ sudo iw dev wlan1 connect SSID

3. zistit frekvenciu/kanal z wlan1 pre SSID, napr. cez iw:
$ sudo iw dev wlan1 link

4. prepisat konfigurak hostapd aby behal na wlan0 na kanale/frekvencii ako v wlan1 ako driver pouzit nl80211

5. spustit hostapd


whata

Re: Wi-Fi jako klient i AP
« Odpověď #5 kdy: 09. 11. 2011, 14:05:42 »
Díky za odpovědi, ale něco je "jinak". Mám teda Atheros AR9285, ale v tom problém asi není.

Za prvé při vytvoření virtuální wlan1 mi nevznikne wlan1, ale rename32 (to by snad šlo vyřešit někde v udev, není předpokládám podstatné).

Následně to ale sletí na connect:
$ iw dev rename32 connect xyz
command failed: Network is down (-100)

Zkoušel jsem nahodit přes ifconfig rename32 up, ale pro změnu zvláštní chyba:
$ ifconfig rename32 up
SIOCSIFFLAGS: Name not unique on network
Podobně končí jakýkoli pokus o operaci s rename32...

Nějaký nápad?

Pali

Re: Wi-Fi jako klient i AP
« Odpověď #6 kdy: 09. 11. 2011, 19:20:50 »
update kernelu a programu iw. pisal som to ze to na starsiom ubuntu nefrcalo - rovnaky problem som mal (davalo to mi tiez rename..daco)

Pali

Re: Wi-Fi jako klient i AP
« Odpověď #7 kdy: 09. 11. 2011, 19:26:11 »
a este, pre atherosku sa ujisti ze pouzivas ovladac ath9k (a nie madwifi a pod.) a ifconfig by som (na linuxe) nepouzival, je nefunkcny, namiesto neho pouzit ip.

ono nemusis pouzit nutne iw connect na pripojenie k wifine (a ak potrebujes WPA tak to ani nejde). kludne pouzi (polo)(ne)funkcny network-manager ci wpa_supplicant.

ak nutne chces premenovat nejaky interface pouzi prikaz ip (parametre z hlay neviem), urcite dokaze take veci ako premenovat ath0 na wlan0 a pod...

whata

Re: Wi-Fi jako klient i AP
« Odpověď #8 kdy: 10. 11. 2011, 14:15:11 »
No, je to up-to-date Ubuntu, kernel 3.0.0, iw bylo jen 0.9.19, ale z Debianu jsem ukradnul 3.1, stejne tak libnl3.

Jednu z příčin jsem našel - vadí mu, že wlan0 předtím zůstal up (automatický NetworkManager). Když dám ifconfig wlan0 down (nebo ip ekvivalent), tak už vytváří správně wlan1 místo renameXY.

Pak projde i ifconfig wlan1 up, connect, dhclient atd.

Problém je pak pustit wlan0 - set freq, set channel v pohodě, ale jakákoli "větší" operace selže na "Name not unique on network":
Kód: [Vybrat]
ioctl(5, SIOCGIFFLAGS, {ifr_name="mon.wlan0", ifr_flags=IFF_BROADCAST|IFF_MULTICAST}) = 0
ioctl(5, SIOCSIFFLAGS, {ifr_name="mon.wlan0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_MULTICAST}) = 0
socket(PF_PACKET, SOCK_RAW, 768)        = 7
setsockopt(7, SOL_SOCKET, SO_ATTACH_FILTER, "\32\0\0\0\0\0\0\0\300=k\0\0\0\0\0", 16) = 0
bind(7, {sa_family=AF_PACKET, proto=0000, if52, pkttype=PACKET_HOST, addr(0)={0, }, 20) = 0
setsockopt(7, SOL_SOCKET, SO_PRIORITY, [20], 4) = 0
ioctl(5, SIOCGIFFLAGS, {ifr_name="wlan0", ifr_flags=IFF_BROADCAST|IFF_MULTICAST}) = 0
ioctl(5, SIOCSIFFLAGS, {ifr_name="wlan0", ???}) = -1 ENOTUNIQ (Name not unique on network)

Takže to vypadá, že virtuálních interface můžu mít, kolik chcu, ale pouze jeden z nich může být v jedné chvíli puštěný ;) Předpokládám nejspíš omezení driveru, podle rychlého googlení možná dokonce v novějších kernelech.

V každém případě díky za rady!

Pali

Re: Wi-Fi jako klient i AP
« Odpověď #9 kdy: 12. 11. 2011, 00:59:56 »
to omedzenie bude z velkej pravdepodobnosti driverom a mozno to bude aj limitiacia HW...