Laboratorul 11

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.

Pregătirea access pointului (AP)

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:

  1. Copiați fișierul hostapd.conf de aici, salvați-l în /etc/hostapd/hostapd.conf
  2. Rulați comanda de mai jos, output-ul trebuie să vă spună 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 

Recomandăm tuturor echipelor de studenți să schimbe ssid=ISRMLABORATOR din hostapd.conf pentru a evita conectarea accidentală la AP-ul altora. Puneți orice SSID doriți.

Modul monitor

Pe Intel AC7260 care sunt in laborator merge modul monitor doar pe AP. Recomandarea însă pentru a prinde toate pachetele din aer e să fie făcut pe un calculator separat

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 
  1. -s0 capturează toată lungimea pachetelor
  2. -n nu rezolvă DNS
  3. -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.

Comenzile de Linux pentru modul monitor le aveți și la acest link

Pregătirea stației (STA)

Ș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

Exerciții extra

  1. Rulați o sesiune 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>
  1. Rulați o sesiune 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
  1. Pentru exercițiile anterioare urmăriți în PCAP câmpul Data rate din 802.11 radio tap header. Ce observați? Ce se întâmplă cu acesta dacă vom mișca antena?

Dacă nu mișcăm antenele observăm creșterea monotonă data rate (a MCS-ului) grație algoritmului de rate adaption. Intel folosește iwl-agn-rs. În Linux upstream se folosește algoritmul Minstrel pentru vendorii care nu au dezvoltat propriul algoritm în driver/firmware.

Dacă mișcăm antenele pe lângă evoluție ne-monotonă a data rate throughputul iperf e afectat.

  1. Pe AP configurați 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]
isrm/laboratoare/11.txt · Last modified: 2019/05/17 16:25 by mbarbulescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0