Cursos / Redes de Computadores / Redes de Computadores I / Aula

arrow_back Aula 16 - Plataforma de experimentação - Mininet-WiFi

Criando um topologia simples

Rede com fio

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.

  • Experimente utilizar o comando nodes para identificar os nós que fazem parte da rede.
    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.

  • Agora experimente iniciar o comando 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.

Rede sem fio

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