Kathara: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
(89 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.


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.
 
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 13: Linha 27:
Cada contêiner pode ser configurado como um '''dispositivo de rede''' específico e pode desempenhar diferentes papeis, como '''''host''''', '''roteador''', '''''switch''''' etc.
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.
===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.


O '''Kathará''' apresenta três tipos de '''comandos''':
===Comandos===
O '''Kathará''' apresenta três tipos de '''comandos''', utilizados em um terminal:
*'''v-commands''': permitem criar e configurar um dispositivo via 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.
*'''l-commands''': permite criar um ambiente com vários dispositivos conectados em rede através de um script.
*'''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


;Compartilhamento de arquivos entre dispositivos e o hospedeiro: Há duas maneiras de compartilhar arquivos entre dispositivos e o hospedeiro:
===Compartilhamento de arquivos===
:*O diretório /shared em um dispositivo aponta para o diretório /shared no hospedeiro.
O Kathará permite o '''compartilhamento de arquivos''' entre dispositivos e o hospedeiro.
:*O diretório /hosthome em um dispositivo aponta para o diretório /home no hospedeiro (desabilitado por ''default'').
 
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 Básica==
==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 pc1 --eth 0:A
  kathara vstart --name pc1 --eth 0:A
  kathara vstart 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 52: Linha 82:
  ifconfig
  ifconfig


*Teste de conectividade com '''ping''':
*'''Teste de conectividade''' com '''ping''':
:*pc1:
:*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
::Captura pacotes '''icmp''' (ping) na interface eth0 (default).
::Captura pacotes '''icmp''' (ping) na interface eth0 (default).


*Remover dispositivos:
*Visualizar a captura de forma gráfica com '''wireshark''' no hospedeiro:
  kathara vclean pc1
:*Ativar o compartilhamento do /hosthome com o comando:
  kathara vclean pc2
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''' <ref>https://github.com/KatharaFramework/Kathara-Labs/blob/master/Basic%20Topics/Static%20routing/004-kathara-lab_static-routing.pdf</ref>:
 
[[Arquivo:Netkit-lab1.png]]
 
;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==
[https://drive.google.com/drive/folders/1u7MdyU2C48c-DuyVy_dYRYpPsn9o3W21?usp=drive_link Exemplos prontos]
 
==Outros exemplos de laboratórios==
 
*'''[[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)