Acest laborator este o introducere în crearea unui setup practic AP (access point) - STA (stație) folosind calculatoarele din PR706. Acestea au montate pe PCI placa Wifi Intel AC7260 care suportă dual band 2.4GHz/5GHz și 802.11a/b/g/n/ac (Legacy/HT/VHT). Calculatoarele fiind dotate cu Linux ne vom folosi de utilitarele userspace pentru a ne crea infrastructura.
În acest laborator vom lucra în echipe de minim 2 studenți, maxim 3.
Pentru a putea porni cu succes daemon-ul de AP trebuie rulate următoarele comenzi (ca root
). Puteți rula un sudo su
înainte.
root@pr706-pc:~# nmcli radio wifi off root@pr706-pc:~# rfkill unblock wifi root@pr706-pc:~# rfkill unblock all root@pr706-pc:~# killall wpa_supplicant
S-ar putea ca NetworkManager
din Ubuntu încă se ne încurce așa că recomandăm oprirea lui. Dacă pierdeți accesul la internet rulați dhclient pe eno1
:
root@pr706-pc:~# systemctl stop NetworkManager root@pr706-pc:~# dhclient eno1 #doar daca nu mai avem conectivitate la Internet
Acum trebuie să pornim daemonul hostapd
pentru a activa AP-ul nostru. E nevoie de doi pași simpli:
/etc/hostapd/hostapd.conf
AP-ENABLED
:root@pr706-pc:~# hostapd /etc/hostapd/hostapd.conf Configuration file: /etc/hostapd/hostapd.conf Using interface wlp2s0 with hwaddr ac:fd:ce:22:77:9d and ssid "ISRMLABORATOR" wlp2s0: interface state UNINITIALIZED->ENABLED wlp2s0: AP-ENABLED
ssid=ISRMLABORATOR
din hostapd.conf
pentru a evita conectarea accidentală la AP-ul altora. Puneți orice SSID doriți.
root@pr706-pc:~# iw phy phy0 interface add mon0 type monitor flags control otherbss root@pr706-pc:~# ifconfig mon0 up root@pr706-pc:~# tcpdump -s0 -ni mon0
-s0
capturează toată lungimea pachetelor -n
nu rezolvă DNS -i
indică interfața root@pr706-pc:~# tcpdump -s0 -ni mon0 -w ./m.pcap root@pr706-pc:~# wireshark ./m.pcap
Examinați pachetele capturate și recunoașteți pachetele/protocoalele/câmpurile discutate la curs și în articole.
Și aici trebuie oprite NetworkManager
și wpa_supplicant
. Vom folosi întâi utilitarul iw
apoi wpa_supplicant
cu propriul fișier de configurare pentru a ne conecta la AP:
root@pr706-pc:~# systemctl stop NetworkManager root@pr706-pc:~# killall wpa_supplicant
Pentru a face o scanare activă (asigurați-vă că folosiți modul monitor și capturați pachetul - ce tip de pachet va trimite stația?) rulați comanda:
root@pr706-pc:~# iw dev wlp2s0 scan | grep -i <yourSSID> -A 50 -B 20
Pentru a vă asocia la AP-ul pornit anterior folosiți:
root@pr706-pc:~# iw dev wlp2s0 connect <yourSSID> root@pr706-pc:~# iwconfig #to check/validate association
iperf
TCP între cele două stații pentru a determina bandwidth-ul maxim la care TCP se simte bine. Serverul este receptor de date, Clientul e transmițător. Rulați server pe AP și client pe STA. Ce valoare are aceasta? Suntem în 802.11b
, care e throughput maxim la acesta și la ce MCS (data rate)?root@pr706-pc:~# iperf -s -i1 root@pr706-pc:~# iperf -c <ip_AP>
iperf
UDP între cele două stații cu cel mai mare packet length (1472 Bytes). Serverul este receptor de date, Clientul e transmițător. Rulați server pe AP și client pe STA. e valoare are aceasta? Suntem în 802.11b
, care e throughput maxim la acesta și la ce MCS (data rate)?root@pr706-pc:~# iperf -s -i1 -u root@pr706-pc:~# iperf -c <ip_AP> -b54M -u -i1 -l1472
Data rate
din 802.11 radio tap header. Ce observați? Ce se întâmplă cu acesta dacă vom mișca antena?
Dacă mișcăm antenele pe lângă evoluție ne-monotonă a data rate throughputul iperf e afectat.
802.11n
(ca extra feature). Re-rulați iperf și urmăriți PCAP-urile. Ce apare în plus la MCS? Dar la frame format: apare formatul HT. Mai jos aveți ce trebuie pus în hostapd.conf
:# 802.11n wmm_enabled=1 ieee80211n=1 ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40][DSSS_CCK-40][DSSS_CCK-40]