Kathara: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
(44 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
=Kathará=
=Kathará=


O '''[https://www.kathara.org/ 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 '''[https://www.kathara.org/ Kathará]''' é um ambiente para '''emulação''' de '''redes de computadores''' virtuais, baseado no uso de contêineres '''[https://www.docker.com/ Docker]'''.  


O '''Kathará''' é uma implementação em '''Python''' do '''[http://wiki.netkit.org/index.php/Main_Page Netkit]''' (descontinuado) e faz uso de contêineres '''[https://www.docker.com/ Docker]'''.
A página '''[https://github.com/KatharaFramework/Kathara/wiki Wiki do Kathará]''' apresenta vários exemplos ilustrativos, alguns dos quais descritos na sequência.
 
<!--==Instalação do Kathara==
 
O '''Kathara''' depende do '''[[Docker]]''' para rodar, portanto, instalar o Docker primeiro.


A página '''[https://github.com/KatharaFramework/Kathara/wiki Wiki do Kathará]''' apresenta vários exemplos ilustrativos, alguns dos quais descritos na sequência.
Instalação no '''Ubuntu'''<ref>https://github.com/KatharaFramework/Kathara/wiki/Linux</ref>:
*Adicionar a chave pública para obter o Kathará:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 21805A48E6CBBA6B991ABE76646193862B759810
*Adicionar o repositório do Kathará:
sudo add-apt-repository ppa:katharaframework/kathara
*Atualizar o acesso aos repositórios:
sudo apt update
*Instalar o Kathará:
sudo apt install kathara-->


==Introdução ao Kathará==
==Introdução ao Kathará==
Referência: <ref>https://github.com/KatharaFramework/Kathara-Labs/blob/master/001-kathara-introduction.pdf</ref>.
   
   
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.  
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.  
Linha 28: Linha 42:
*'''global-commands''': comandos de gerenciamento global.
*'''global-commands''': comandos de gerenciamento global.


Ver comandos em:
Comando para '''checar''' se ambiente Kathará está operando corretamente:
kathara check
 
Ver demais comandos em:
  man kathara
  man kathara


Linha 37: Linha 54:
*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 '''/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'').
*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:
Para modificar os compartilhamentos utilizar o comando:
  kathara settings
  kathara settings


==Rede Básica==
:*Habilitar o compartilhamento do diretório '''/hosthome'''.
 
==Rede com dispositivos criados manualmente==


Exemplo de '''rede básica''' construída com comandos '''Kathará v-commands''':
Exemplo de '''rede básica''' com dispositivos criados manualmente via terminal a partir de comandos '''v-commands''' <ref>https://github.com/KatharaFramework/Kathara-Labs/blob/master/Basic%20Topics/Two%20hosts/003-kathara-lab_two-hosts.pdf</ref>:


[[Arquivo:Netkit-lab1.png]]
[[Arquivo:Netkit-lab1.png]]


;Procedimentos:
===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:
*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 pc1 --eth 0:A
  kathara vstart --name pc2 --eth 0:A
  kathara vstart --name pc2 --eth 0:A
::Cada comando ativará a console do respectivo dispositivo.
::Cada comando ativará a console do respectivo dispositivo.
   
   
*Configuração das interfaces de rede dos dispositivos com '''ifconfig''':
*'''Configuração das interfaces de rede''' dos dispositivos com '''ifconfig''':
::Acessar a console de cada dispositivo para configurar as interfaces de rede:
::Acessar a console de cada dispositivo para configurar as interfaces de rede:
:*pc1:
:*pc1:
Linha 65: Linha 82:
  ifconfig
  ifconfig


*Teste de conectividade com '''ping''':
*'''Teste de conectividade''' com '''ping''':
:*pc1 -> pc2:
:*pc1 -> pc2:
  ping 192.168.0.2
  ping 192.168.0.2


*Captura de pacotes com '''tcpdump''':
*'''Captura de pacotes''' com '''tcpdump''':
:*pc2:
:*pc2:
  tcpdump icmp
  tcpdump icmp
Linha 81: Linha 98:
:*Abrir arquivo no hospedeiro com wireshark.
:*Abrir arquivo no hospedeiro com wireshark.


*Remover dispositivos:
*'''Remover dispositivos''':
  kathara vclean pc1
  kathara vclean --name pc1
  kathara vclean pc2
  kathara vclean --name pc2


*Limpar todos os dispositivos e domínios de colisão:
*'''Limpar todos os dispositivos e domínios de colisão''':
  kathara wipe
  kathara wipe


==Laboratório: Rede Básica==
==Rede criada com 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''':
Exemplo de '''rede básica''' construída com comandos '''Kathará l-commands''' <ref>https://github.com/KatharaFramework/Kathara-Labs/blob/master/Basic%20Topics/Static%20routing/004-kathara-lab_static-routing.pdf</ref>:


[[Arquivo:Netkit-lab1.png]]
[[Arquivo:Netkit-lab1.png]]


;Hierarquia de arquivos e diretórios para os scripts do laboratório:
;Hierarquia de '''arquivos''' e '''diretórios''' para configuração do laboratório:


  lab.conf
  lab.conf     #Configura a estrutura de rede
  pc1.startup
  pc1.startup   #Configura dispositivo pc1
  pc2.startup
  pc2.startup   #Configura dispositivo pc2
  pc1/
  pc1/         #Diretório com arquivos de configuração para pc1
  pc2/
  pc2/         #Diretório com arquivos de configuração para pc2


Conteúdo dos arquivos:
;Conteúdo dos arquivos:


  lab.conf
  lab.conf    
   pc1[0]=A
   pc1[0]=A
   pc2[0]=A
   pc2[0]=A
:Configura rede simples com domínio de colisão A


  pc1.startup
  pc1.startup  
   ifconfig eth0 192.168.0.1/24 up
   ifconfig eth0 192.168.0.1/24 up
:Configura pc1 e seu endereço IP


  pc2.startup
  pc2.startup  
   ifconfig eth0 192.168.0.2/24 up
   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.


Iniciar rede do laboratório:
;Comando para iniciar e parar rede do laboratório:
  kathara lstart
  kathara lstart
:Inicia rede


Remover rede do laboratório:
  kathara lclean
  kathara lclean
:Pára rede
==Arquivos Kathara com exemplos prontos==
[https://drive.google.com/drive/folders/1u7MdyU2C48c-DuyVy_dYRYpPsn9o3W21?usp=drive_link Exemplos prontos]


==Redes com roteadores==
==Outros exemplos de laboratórios==


Veja exemplos de redes com roteamento estático e dinâmico em '''[[Kathara: Roteamento|Kathará: Roteamento]]'''.
*'''[[Kathara: Protocolo ARP|Protocolo ARP]]'''
*'''[[Kathara: Servidor Web|Servidor Web]]'''
*'''[[Kathara: Roteamento|Roteamento estático e dinâmico]]'''


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

Edição das 19h17min de 21 de novembro de 2024

Kathará

O Kathará é um ambiente para emulação de redes de computadores virtuais, baseado no 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á

Referência: [1].

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.

Comando para checar se ambiente Kathará está operando corretamente:

kathara check

Ver demais 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
  • Habilitar o compartilhamento do diretório /hosthome.

Rede com dispositivos criados manualmente

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

Procedimentos práticos

  • 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

Rede criada com 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 [3]:

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

Arquivos Kathara com exemplos prontos

Exemplos prontos

Outros exemplos de laboratórios

Referências


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