# Lab 0: Primeiros Passos
Esta é uma atividade preliminar que tem como principal objetivo verificar que cada aluno fez a leitura indicada sobre o ambiente de emulação de redes (Mininet) e conseguiu executar a VM do Emulador Mininet e sua versão com suporte a comunicações sem fio, Mininet-WiFi.
Nos sites dos projetos tem mais informações e tutoriais básicos para quem quiser ir adiantando conhecimento: http://mininet.org/ e https://github.com/intrig-unicamp/mininet-wifi!
Atenção: A tarefa deve ser completada antes do início da segunda aula da disciplina (25 de Agosto) e submetida pelo Google Classroom em formato texto ou pdf apresentando os comandos executados e as saídas.
## Recomendações
Leitura do Capítulo 1 do livro do Mininet-WiFi
• https://github.com/ramonfontes/mn-wifi-book-pt
• https://github.com/ramonfontes/mn-wifi-book-pt/raw/master/preview-book.pdf
## Preparações
Neste Laboratório, cada aluno precisará de um máquina Windows ou Linux que funcionará como um host para uma máquina virtual:
• VirtualBox
• VM do Mininet-Wifi
:::info
Notte: Caso você esteja executando no laboratório LE25, pode pular os passos abaixo, pois as VMs já estão instaladas e configuradas.
:::
Instalação da VM do Mininet-Wifi:
A VM pre-configurada pode ser baixada a partir do link disponível em:
• https://github.com/intrig-unicamp/mininet-wifi/blob/master/README.md
As credenciais para acessar a máquina são:
Login: wifi
Password: wifi
Alternativamente, instale o Mininet-WiFi em sua própria máquina. Instruções para tal instalação estão disponibilizadas no README do Mininet-WiFi.
## Atividades práticas
Após iniciar a VM do Mininet-WiFi, siga os seguintes passos.
:::warning
Atenção: Durante as atividades práticas erros comuns ou pequenos bugs podem acontecer. A Seção FAQ apresenta alguns destes erros e o passo a passo para sua solução.
:::
Para garantir que a máquina virtual possua a versão mais recente do Mininet-WiFi, utilize o comando git pull seguido de sudo make install para recompilar o código-fonte, conforme abaixo:
```
cd mininet-wifi
git pull
sudo make install
```
O seguinte comando cria uma topologia simples com quatro terminais e um ponto de acesso WiFi (os parâmetros –position e –link=wmediumd habilitam posições geográficas e modelos de propagação, conforme será discutido em laboratório específico)
```
sudo mn --wifi --topo single,4 --position --link=wmediumd
```
:::warning
Atenção: Caso aconteça o erro "Caught exception... please shut down the controller ... on port 6653"execute o comando $ sudo fuser -k 6653/tcp]
:::
Verifique a conectividade entre todas os terminais com um comando que manda mensagens do tipo PING entre todos os pares de estações:
```
pingall
```
Informações sobre as interfaces podem ser acessadas com o comando logo abaixo do
Mininet-WiFi . Você conseguiu identificar alguma informação dos terminais? Quais?
```
py sta1.params
```
Diversas informações sobre as interfaces podem ser acessadas com o comando:
```
py sta1.wintfs[0]
```
Por exemplo, tente verificar e anote o IP e MAC da interface do nó sta1 utilizando:
```
py sta1.wintfs[0].ip
py sta1.wintfs[0].mac
```
## FAQ
### name ’sta1’ is not defined
Certifique-se de que você iniciou a topologia do roteiro utilizando o comando:
```
sudo mn --wifi --topo single,4 --position --link=wmediumd
```
### ’Station’ object has no attribute ’wintfs’
Verifique se a versão do Mininet-Wifi é a mais recente utilizando o comando:
```
mn --version
```
A versão mais atual é a 2.5. Caso sua versão esteja desatualizada, no diretório do Mininet-Wifi execute:
```
git pull
sudo make clean
sudo make install
```