Kathara: mudanças entre as edições
Linha 256: | Linha 256: | ||
:Note que não há conectividade entre os pc1, pc2 e pc3. | :Note que não há conectividade entre os pc1, pc2 e pc3. | ||
Definir rotas estáticas nos roteadores r1, r2 e r3 para conectividade completa entre os dispositivos. | ;Definir rotas estáticas nos roteadores r1, r2 e r3 para conectividade completa entre os dispositivos. | ||
Exemplo de rotas em r1 para atingir redes B e C: | |||
route add -net 192.168.2.0/24 gw 10.0.1.2 dev eth1 | route add -net 192.168.2.0/24 gw 10.0.1.2 dev eth1 | ||
route add -net 192.168.3.0/24 gw 10.0.2.2 dev eth2 | route add -net 192.168.3.0/24 gw 10.0.2.2 dev eth2 | ||
Configurar também para r2 e r3. | |||
Testar novamente conectividade entre as máquinas com '''ping'''. | Testar novamente conectividade entre as máquinas com '''ping'''. |
Edição das 13h31min de 23 de fevereiro de 2021
Kathará
O Kathará é um ambiente para emulação de redes de computadores virtuais, disponível para ambientes Linux, Windows ou MacOS. O download da ferramenta pode ser obtido na página Web do Kathará.
O Kathará é uma implementação em Python do Netkit (descontinuado) e faz uso de contêineres Docker.
A página Wiki do Kathará apresenta vários exemplos ilustrativos, alguns dos quais descritos na sequência.
Introdução ao Kathará
O Kathará é um ambiente para emulação de redes de computadores através da criação de contêineres Docker em uma máquina hospedeira.
Cada contêiner pode ser configurado como um dispositivo de rede específico e pode desempenhar diferentes papeis, como host, roteador, switch etc.
Cada dispositivo de rede emulado possui um console, memória, sistema de arquivos e interfaces de rede. Através das interfaces de rede os dispositivos são conectados a um domínio de colisão virtual e podem se comunicar com outros dispositivos.
O Kathará apresenta três tipos de comandos:
- v-commands: permitem criar e configurar um dispositivo via terminal.
- l-commands: permite criar um ambiente com vários dispositivos conectados em rede através de um script.
- global-commands: comandos de gerenciamento global.
Ver comandos em:
man kathara
- Compartilhamento de arquivos entre dispositivos e o hospedeiro
- Há duas maneiras de compartilhar arquivos entre dispositivos e o hospedeiro:
- O diretório /shared em um dispositivo aponta para o diretório /shared de todos os dispositivos do laboratório (habilitado por default).
- O diretório /hosthome em um dispositivo aponta para o diretório /home no hospedeiro (desabilitado por default).
- Para modificar os compartilhamentos utilizar o comando:
kathara settings
Rede Básica
Exemplo de rede básica construída com comandos Kathará v-commands:
- Procedimentos
- Comando para checar se ambiente Kathará está operando corretamente:
kathara check
- Comandos para iniciar os dispositivos pc1 e pc2, ambos com a interface eth0 conectada ao domínio de colisão A:
kathara vstart --name pc1 --eth 0:A kathara vstart --name pc2 --eth 0:A
- Cada comando ativará a console do respectivo dispositivo.
- Configuração das interfaces de rede dos dispositivos com ifconfig:
- Acessar a console de cada dispositivo para configurar as interfaces de rede:
- pc1:
ifconfig eth0 192.168.0.1/24 up
- pc2:
ifconfig eth0 192.168.0.2/24 up
- Verificar as configurações em cada dispositivo:
ifconfig
- Teste de conectividade com ping:
- pc1 -> pc2:
ping 192.168.0.2
- Captura de pacotes com tcpdump:
- pc2:
tcpdump icmp
- Captura pacotes icmp (ping) na interface eth0 (default).
- Visualizar a captura de forma gráfica com wireshark no hospedeiro:
- Ativar o compartilhamento do /hosthome com o comando:
kathara settings
- Capturar no pc2 pacote e gravar saída em arquivo:
tcpdump icmp -w /hosthome/cap1.ncap
- Abrir arquivo no hospedeiro com wireshark.
- Remover dispositivos:
kathara vclean pc1 kathara vclean pc2
- Limpar todos os dispositivos e domínios de colisão:
kathara wipe
Laboratório: Rede Básica
Exemplo de rede básica construída com comandos Kathará l-commands:
- Hierarquia de arquivos e diretórios para os scripts do laboratório
lab.conf pc1.startup pc2.startup pc1/ pc2/
Conteúdo dos arquivos:
lab.conf pc1[0]=A pc2[0]=A
pc1.startup ifconfig eth0 192.168.0.1/24 up
pc2.startup ifconfig eth0 192.168.0.2/24 up
Iniciar rede do laboratório:
kathara lstart
Remover rede do laboratório:
kathara lclean
Laboratório: Redes interligadas por roteador
Exemplo de redes interligadas por roteador construída com comandos Kathará l-commands:
- Hierarquia de arquivos e diretórios para os scripts do laboratório
lab.conf pc1.startup pc2.startup r1.startup pc1/ pc2/ r1/
Conteúdo dos arquivos:
lab.conf pc1[0]=A r1[0]=A r1[1]=B pc2[0]=B
pc1.startup ifconfig eth0 192.168.0.1/24 up
pc2.startup ifconfig eth0 192.168.1.2/24 up
r1.startup ifconfig eth0 192.168.0.2/24 up ifconfig eth1 192.168.1.1/24 up
Iniciar rede do laboratório:
kathara lstart
Verificar tabelas de roteamento com route:
- pc1, pc2 e r1:
route
Definir roteador default com route add manualmente em cada dispositivo:
- pc1:
route add default gw 192.168.0.2 dev eth0
- pc2:
route add default gw 192.168.1.1 dev eth0
- Verificar novamente as tabelas de roteamento .
- Obs: Rotas estáticas e o roteador padrão podem ser incluídas nos arquivos .startup.
Testar conectividade com ping:
- pc1 -> pc2:
ping 192.169.1.2
- pc2 -> pc1:
ping 192.169.0.1
Verificar rota com traceroute:
- pc1 -> pc2:
traceroute 192.169.1.2
Remover rede do laboratório:
kathara lclean
Laboratório: Roteamento estático e dinâmico
Exemplo de rede de computadores com roteamento estático e dinâmico construída com comandos Kathará l-commands:
- Hierarquia de arquivos e diretórios para os scripts do laboratório
lab.conf pc1.startup pc2.startup pc3.startup r1.startup r2.startup r3.startup pc1/ pc2/ pc3/ r1/ r2/ r3/
Conteúdo dos arquivos:
lab.conf pc1[0]=A r1[0]=A r1[1]=AB r1[2]=AC pc2[0]=B r2[0]=B r2[1]=AB r2[2]=BC pc3[0]=C r3[0]=C r3[1]=BC r3[2]=AC
- Rotas default incluídas no arquivo de configuração:
pc1.startup ifconfig eth0 192.168.1.1/24 up route add default gw 192.168.1.2 dev eth0
pc2.startup ifconfig eth0 192.168.2.1/24 up route add default gw 192.168.2.2 dev eth0
pc3.startup ifconfig eth0 192.168.3.1/24 up route add default gw 192.168.3.2 dev eth0
r1.startup ifconfig eth0 192.168.1.2/24 up ifconfig eth1 10.0.1.1/24 up ifconfig eth2 10.0.2.1/24 up
r2.startup ifconfig eth0 192.168.2.2/24 up ifconfig eth1 10.0.1.2/24 up ifconfig eth2 10.0.3.1/24 up
r3.startup ifconfig eth0 192.168.3.2/24 up ifconfig eth1 10.0.3.2/24 up ifconfig eth2 10.0.2.2/24 up
Procedimentos práticos
Iniciar rede do laboratório:
kathara lstart
Verificar tabelas de roteamento com route:
- pc1, pc2, pc2
- r1, r2, r3
route
Testar conectividade entre as máquinas com ping:
- pc1 -> r1:
ping 192.169.1.2
- pc1 -> pc2:
ping 192.169.2.1
- pc1 -> pc3:
ping 192.169.3.1
- Note que não há conectividade entre os pc1, pc2 e pc3.
- Definir rotas estáticas nos roteadores r1, r2 e r3 para conectividade completa entre os dispositivos.
Exemplo de rotas em r1 para atingir redes B e C:
route add -net 192.168.2.0/24 gw 10.0.1.2 dev eth1 route add -net 192.168.3.0/24 gw 10.0.2.2 dev eth2
Configurar também para r2 e r3.
Testar novamente conectividade entre as máquinas com ping.
Verificar rotas entre as máquinas com traceroute.
Remover rede do laboratório:
kathara lclean kathara wipe
Referências
Evandro.cantu (discussão) 17h07min de 25 de janeiro de 2021 (-03)