Kathara: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
 
(75 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 3: Linha 3:
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, 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 '''[http://wiki.netkit.org/index.php/Main_Page Netkit]''' (descontinuado) e faz 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 29:
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===


O '''Kathará''' apresenta três tipos de '''comandos''':
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.
*'''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.
Linha 23: Linha 47:
  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 de um laboratório (habilitado por ''default'').
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'').
 
:Para modificar os compartilhamentos utilizar o comando:
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
  kathara settings


==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:
*Comando para '''checar''' se ambiente Kathará está operando corretamente:
  kathara check
  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 54: Linha 81:
  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
Linha 70: Linha 97:
:*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''':
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
 
==Outros exemplos de laboratórios==
 
*'''[[Kathara: Roteamento|Roteamento estático e dinâmico]]'''
*'''[[Kathara: Protocolo ARP|Protocolo ARP]]'''
*'''[[Kathara: Servidor Web|Servidor Web]]'''


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

Edição atual tal como às 12h11min de 23 de abril de 2022

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.

Instalação do Kathara

O Kathara depende do Docker para rodar, portanto, instalar o Docker primeiro.

Instalação no Ubuntu[1]:

  • 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á

Referência: [2].

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 com dispositivos criados manualmente

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

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

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 [4]:

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

Outros exemplos de laboratórios

Referências


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