Cursos / Redes de Computadores / Redes de Computadores I / Aula
Para iniciar uma topologia com dois hosts (ou computadores) e um comutador (switch), basta executar o comando sudo mn
a partir de um terminal Linux. Como esse comando, os dois hosts (h1 e h2) são automaticamente conectados ao switch s1.
mininet-wifi> nodes
available nodes are:
c0 h1 h2 s1
Para nossa disciplina vamos ignorar o nó c0. Ele é um controlador SDN e SDN não faz parte do escopo desta disciplina.
ping
do host h1 para o host h2.
mininet-wifi> h1 ping -c5 h2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=2.46 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.587 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.106 ms
64 bytes from 10.0.0.2: icmp_seq=4 ttl=64 time=0.107 ms
64 bytes from 10.0.0.2: icmp_seq=5 ttl=64 time=0.107 ms
--- 10.0.0.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4061ms
rtt min/avg/max/mdev = 0.106/0.674/2.463/0.913 ms
O tempo de resposta será diferente para diferentes execuções. Porém, o primeiro pacote ICMP (protocolo do ping) sempre será um pouco maior que os demais, pois este primeiro pacote envolve o uso do protocolo ARP para identificar quem é o nó h2.
Até aqui tudo parece ser fácil, não?
Vamos agora medir a largura de banda disponível entre h1 e h2 com a ferramenta iperf.
mininet-wifi> iperf h1 h2
*** Iperf: testing TCP bandwidth between h1 and h2
*** Results: ['52.1 Gbits/sec', '52.3 Gbits/sec']
Assim como para o ICMP, a largura de banda disponível irá variar de computador para computador ou de execução para execução.
Tanto o comando ping quanto o iperf foram executados na CLI do Mininet-WiFi (mininet-wifi>). Porém, também é possível executá-los através de terminais exclusivos para h1 e para h2. Experimente utilizar o comando abaixo:
mininet-wifi> xterm h1
Você deve ter obervado que foi aberto um terminal para h1. Neste caso, se você quiser fazer um ping para h2 você precisará utilizar como destino o endereço ip de h2. Por exemplo:
h1# ping 10.0.0.2
O mesmo pode ser feito com o iperf. Porém, o iperf é uma ferramente que exige a execução de comandos nos dois nós envolvidos no teste, sendo que um será o servidor e o outro cliente. Desta forma, como você já tem um terminal aberto para h1, precisará fazer o mesmo para h2, conforme abaixo:
mininet-wifi> xterm h2
Agora, no terminal de h1 execute uma instância do iperf como servidor:
h1# iperf -s
E no terminal de h2 inicie uma instância cliente do iperf apontando para o servidor.
h2# iperf -c 10.0.0.1
Pronto. Após 10 segunfos você já deve observar o resultado do teste de largura de banda entre h1 e h2. É importante salientar que existem diversos argumentos que podem ser utilizados junto ao ping e iperf. Para uma lista completa experimente executar ping --help
e iperf --help
a partir de um terminal qualquer.
Para iniciar uma topologia com duas estações (ou laptops) e um ponto de acesso (ou roteador sem fio), basta utilizar o comando sudo mn --wifi --ssid=new-ssid
a partir de um terminal Linux. Com esse comando, duas estações (sta1 e sta2 são automaticamente associadas ao ponto de acesso ap1 através do SSID new-ssid. A partir daqui, os comandos ping e iperf podem ser executados da mesma forma que foram executados anteriormente. A única diferença passa pelo nome dos nós, onde para redes cabeadas tínhamos hosts h1 e h2 e para redes sem fio temos sta1 e sta2.
A emulação de redes sem fio também introduz o conhecimento de novos conceitos relacionados às redes sem fio. Por exemplo, podemos identificar informações da rede sem fio com uso das ferramentas iwconfig e iw, conforme abaixo.
Com iwconfig.
mininet-wifi> sta1 iwconfig
lo no wireless extensions.
sta1-wlan0 IEEE 802.11 ESSID:"my-ssid"
Mode:Managed Frequency:2.412 GHz Access Point: 0A:04:B3:F2:B3:91
Bit Rate=1 Mb/s Tx-Power=14 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=70/70 Signal level=-36 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Com iw:
mininet-wifi> sta1 iw dev sta1-wlan0 link
Connected to 0a:04:b3:f2:b3:91 (on sta1-wlan0)
SSID: my-ssid
freq: 2412
RX: 53939 bytes (1242 packets)
TX: 141 bytes (4 packets)
signal: -36 dBm
tx bitrate: 1.0 MBit/s
bss flags: short-slot-time
dtim period: 2
beacon int: 100
O iwconfig vendo sendo substituído pelo iw. O iwconfig faz parte do pacote net-tools que já é obsoleto me sistemas Linux. O substituto é o iproute2.
Você também pode utilizar o iw para fazer o escaneamento de redes sem fio, conforme abaixo:
mininet-wifi> sta1 iw dev sta1-wlan0 scan
BSS 56:bb:5c:0e:15:1c(on sta1-wlan0) -- associated
last seen: 7758.776s [boottime]
TSF: 1641212773349867 usec (18995d, 12:26:13)
freq: 2412
beacon interval: 100 TUs
capability: ESS ShortSlotTime (0x0401)
signal: -36.00 dBm
last seen: 0 ms ago
Information elements from Probe Response frame:
SSID: my-ssid
Supported rates: 1.0* 2.0* 5.5* 11.0* 6.0 9.0 12.0 18.0
DS Parameter set: channel 1
ERP: Barker_Preamble_Mode
Extended supported rates: 24.0 36.0 48.0 54.0
Supported operating classes:
* current operating class: 81
Extended capabilities:
* Extended Channel Switching
* Multiple BSSID
* Operating Mode Notification
Legal, não? Assim como para o ping e iperf, você pode obter uma lista completa de recursos suportados pelo iwconfig e iw com os comandos iwconfig --help
e iw --help
. Você também pode utilizar o comando man
de manual para obter mais informações sobre essas ferramentas. Por exemplo, man iw
.
Versão 5.3 - Todos os Direitos reservados