Exercício 5 - Interfaces virtuais (veth,tap,tun), Bridges e Switchs virtuais
Critérios para entrega do exercício
- Este exercício é em dupla ou individual.
- A resolução do exercício deve ser enviada em um arquivo .pdf para william@ic.unicamp.br até o dia 29/10/2019. O nome do arquivo deve ser "raXXXXXX_e_raYYYYYY_exercicio5", onde XXXXXX e YYYYYY deve ser substituído pelo número do RA dos membros da dupla;
- O material a ser entregue no arquivo será referente aos passos deste laboratório.
- O assunto da mensagem deve ser "[MC833] Exercício 5".
Atividade
Passos:
Vamos utilizar a instância vm-netlabs como "host" para virtualização. Para iniciar o "host" digite em um terminal o seguinte comando:
vm-netlabs
OBS: Todos os passos a seguir serão executado a partir da vm-netlabs.
-
Preparando o ambiente:
Abra um terminal e digite sudo -i
para ter privilegios de administrador no ambiente.
Instale a solução de virtualização (qemu)
dnf clean all && dnf -y install qemu-kvm
Crie um diretório para armazenar as imagens das VM (imagens: disco virtual baseado em "arquivo")
mkdir /vms
Faça o download de uma imagem pre instalada do Fedora 24.
cd /vms ; wget www.ic.unicamp.br/~william/vms/fc24.qcow2
- Iniciando uma VM:
Realize a cópia da imagem do disco virtual, que realizamos o download anteriormente para iniciar uma VM, exemplo:
cp /vms/fc24.qcow2 /vms/novavm.qcow2
Inicie uma VM utilizando o sistema de virtualização qemu-system (emulação) passando a imagem copiada como disco virtual.
qemu-system-x86_64 -m 512 -hda /vms/novavm.qcow2
Após a VM iniciar, na tela de login entre com o username root e tecle [enter].
Quantas interfaces possuiamos na instância (VM) ?
Quais são os endereços IP atribuido em cada interface ?
A VM possui acesso a internet ?
OBS: Feche a VM para economizar recurso.
-
Inicie uma VM, utilizando uma interface virtual tap como enlace entre o host (vm-netlabs) e a sua instância.

Crie uma interface tipo TAP com o seguinte comando:
ip tuntap add tap0 mode tap ; ifconfig tap0 up
Inicie a VM adicionando o seguinte parametro:
qemu-system-x86_64 -m 512 -hda /vms/novavm.qcow2 -netdev type=tap,ifname=tap0,id=net0,script=no -device virtio-net-pci,netdev=net0,mac=00:16:15:14:13:12
Verifique as interfaces no sistema com o comando ifconfig -a
Configure o endereço IP no host na interface (tap0) e dentro da instância (VM), utilizando o seguinte comando:
ifconfig tap0 10.10.0.1/24 up
O host consegue se comunicar com a instância (VM) pela rede ?
-
Inicie outra instância, utilizando uma segunda interface tap (tap1), para realizarmos os seguintes passos.
(OBS: não esqueça de trocar o endereço MAC "mac=..." e de alterar a interface na linha de comando para iniciar a segunda instância). Descreva os passos necessário em seu relatório.
- Realizando a comunicação entre instâncias.
Para isso será necessario incluir as interfaces no lado do host em uma bridge-linux.
Crie uma bridge com o nome br0 brctl addbr br0
Adicione as interfaces na bridge com o seguinte comando brctl addif br0 tap0
Verifique a bridge criada e suas interfaces com o comando brctl show
Faça a configuração dos endereço IP nas instância e teste a comunicação entre elas.
Analise a saida do comando dmesg
no host e procure pela as interfaces tap. Baseado na mensagem, o que o kernel fez com a interface ?
Digite o seguinte comando brctl showmacs br0
e verifique os endereços MAC de cada porta da bridge.
De onde são os endereços MAC que estão passando pela bridge ?
- Responda:
O host possui comunicação com as instâncias ? Se não, que configuração precisamos realizar para que o host se comunique com as instâncias ?
Se as instâncias, necessita-se estar na mesma rede local do host, que configuração o ambiente deveria ter ? Exemplifique.