Kathara: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
Linha 130: Linha 130:
:Pára rede
:Pára rede


==Laboratório: Redes interligadas por roteador==
==Laboratórios: Roteamento Estático e Dinâmico==


Exemplo de '''redes interligadas por roteador''' construída com comandos '''Kathará l-commands''':
Veja exemplos de redes com '''roteamento estático e dinâmico''' em '''[[Kathara: Roteamento|Kathará: Roteamento]]'''.
 
[[Arquivo:Kathara-lab2.png]]
 
;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: Protocolo ARP==
==Laboratório: Protocolo ARP==


Laboratório para verificação do funcionamento do protocolo ARP utilizando de '''redes interligadas por roteador''':
Veja exemplo sobre o funcionamento do '''[[Kathara: Protocolo ARP|Protocolo ARP]]'''.
 
[[Arquivo:Kathara-ARP.png]]
 
;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
  pc2[0]=A
  r1[0]=A
  r1[1]=B
  pc3[0]=B
 
pc1.startup
  ifconfig eth0 192.168.0.1/24 up
  route add default gw 192.168.0.3 dev eth0
 
pc2.startup
  ifconfig eth0 192.168.0.2/24 up
  route add default gw 192.168.0.3 dev eth0
 
pc3.startup
  ifconfig eth0 192.168.1.10/24 up
  route add default gw 192.168.0.20 dev eth0
 
r1.startup
  ifconfig eth0 192.168.0.20/24 up
  ifconfig eth1 192.168.1.1/24 up
 
Iniciar rede do laboratório:
kathara lstart
 
===Protocolo ARP===
 
O '''protocolo ARP''', permite encontrar o endereço físico a partir do endereço IP da máquina alvo. Para tal, o protocolo usa um mecanismo de difusão (''broadcast'') na rede local, enviando uma solicitação a todas as máquinas da rede, sendo que a máquina alvo responde indicando o par '''endereço IP/endereço físico'''.
 
;Memória ''cache'': Para melhorar a performance do protocolo ARP, cada máquina possui uma '''memória ''cache''''' com as últimas consultas realizadas, evitando múltiplos ''broadcasts''.
 
Verificação da tabela '''arp''' (memória ''cache'') no pc1:
arp
 
'''Ping''' em dispositivo da mesma rede:
ping 192.168.0.2
 
Verificação da tabela '''arp''' no pc1:
arp
 
'''Ping''' em dispositivo da outra rede:
ping 192.168.2.10
 
Verificação da tabela '''arp''' no pc1:
arp
 
===Captura de pacotes ARP===
 
Reiniciar a rede para limpar as tabelas ARP:
kathara lclean
kathara lstart
 
Inicie captura de '''pacotes arp''' no pc2 usando '''tcpdump''':
tcpdump arp -e -i eth0
:arp: captura somente pacotes arp
:-e: mostra endereço físico do enlace
 
Teste a conectividade com '''ping''' pc1 -> pc2 (mesma rede):
:No pc1 execute:
ping 192.168.0.2
:Verifique no pc2 as mensagens arp trocadas e as correspondências entre endereços IP e endereços físicos.
 
Teste a conectividade com '''ping''' pc1 -> pc3 (outra rede):
:No pc1 execute:
ping 192.168.1.10
:Verifique no pc2 as mensagens arp trocadas e as correspondências entre endereços IP e endereços físicos.
 
Verifique no roteador r1 e nos demais dispositivos as tabelas '''arp'''.
 
==Laboratórios: Roteamento Estático e Dinâmico==
 
Veja exemplos de redes com '''roteamento estático e dinâmico''' em '''[[Kathara: Roteamento|Kathará: Roteamento]]'''.


==Referências==
==Referências==

Edição das 17h53min de 25 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.

Dispositivos de rede

Cada dispositivo de rede emulado possui um as seguintes características:

  • console,
  • memória,
  • sistema de arquivos,
  • 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.

Comandos

O Kathará apresenta três tipos de comandos, utilizados em um terminal:

  • 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

O Kathará permite o 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 - Dispositivos criados manualmente

Exemplo de rede básica com dispositivos criados manualmente via terminal a partir de comandos v-commands:

Procedimentos práticos

  • 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 --name pc1
kathara vclean --name pc2
  • Limpar todos os dispositivos e domínios de colisão:
kathara wipe

Laboratório: Rede Básica - Rede criada por arquivos de configuração

O Kathará permite a construção de estruturas de rede com diferentes tipos de dispositivos, como hosts, roteadores e outros, os quais são configurados por meio de arquivos de configuração e diretórios.

Exemplo de rede básica construída com comandos Kathará l-commands:

Hierarquia de arquivos e diretórios para configuração do laboratório
lab.conf      #Configura a estrutura de rede
pc1.startup   #Configura dispositivo pc1
pc2.startup   #Configura dispositivo pc2
pc1/          #Diretório com arquivos de configuração para pc1
pc2/          #Diretório com arquivos de configuração para pc2
Conteúdo dos arquivos
lab.conf      
  pc1[0]=A
  pc2[0]=A
Configura rede simples com domínio de colisão A
pc1.startup   
  ifconfig eth0 192.168.0.1/24 up
Configura pc1 e seu endereço IP
pc2.startup   
  ifconfig eth0 192.168.0.2/24 up
Configura pc2 e seu endereço IP
pc1/          
pc2/
Diretórios que permitem passar arquivos de configuração para a estrutura de diretórios dos dispositivos.
Comando para iniciar e parar rede do laboratório
kathara lstart
Inicia rede
kathara lclean
Pára rede

Laboratórios: Roteamento Estático e Dinâmico

Veja exemplos de redes com roteamento estático e dinâmico em Kathará: Roteamento.

Laboratório: Protocolo ARP

Veja exemplo sobre o funcionamento do Protocolo ARP.

Referências



Evandro.cantu (discussão) 17h07min de 25 de janeiro de 2021 (-03)