Skip to content

CarlossOliveira/ProjetoRC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Comandos Meta 1 do Projeto RC

Config Container 1 (Cliente 3)

Configuração do IP privado do container

echo "auto eth0
iface eth0 inet static
address 193.137.100.10
netmask 255.255.255.0
gateway 193.137.100.1" > /etc/network/interfaces

Config Container 2 (Servidor)

Configuração do IP privado do container

echo "auto eth0
iface eth0 inet static
address 10.20.0.200
netmask 255.255.255.128
gateway 10.20.0.129" > /etc/network/interfaces

Config Container 3 (Cliente 1)

Configuração do IP privado do container

echo "auto eth0
iface eth0 inet static
address 10.5.2.10
netmask 255.255.255.192
gateway 10.5.2.1" > /etc/network/interfaces

Config Container 4 (Cliente 2)

Configuração do IP privado do container

echo "auto eth0
iface eth0 inet static
address 10.5.2.20
netmask 255.255.255.192
gateway 10.5.2.1" > /etc/network/interfaces

Config R1

configure terminal

Configuração do IP privado do router

interface fastEthernet0/0
ip address 10.20.0.129 255.255.255.128
no shutdown
exit

Configuração do IP público do router

interface fastEthernet0/1
ip address 193.137.101.20 255.255.255.128
no shutdown
exit

Configurar rota estática Rede A -> Rede B

ip route 193.137.100.0 255.255.255.0 193.137.101.10

Configurar SNAT

access-list 10 permit 10.20.0.128 0.0.0.127 # Criar AL (Grupo de IPs para applicar regras)
ip nat inside source list 10 interface fastEthernet0/1 overload # Criar NAT do tipo SNAT na interface fastEthernet0/1 (interface externa do router)
interface fastEthernet0/1
ip nat outside # Atribuir à interface o lado externo do NAT
exit
interface fastEthernet0/0
ip nat inside # Atribuir à interface o lado interno do NAT
exit

Configurar DNAT

ip nat inside source static tcp 10.20.0.200 9000 193.137.101.20 9000 # Internet (Porta TCP 9000) -> Servidor (Porta TCP 9000)
ip nat inside source static udp 10.20.0.200 8000 193.137.101.20 8000 # Internet (Porta UDP 8000) -> Servidor (Porta UDP 8000)

Configurar Multicast

ip multicast-routing
interface fastEthernet0/0
ip pim sparse-dense-mode
exit
interface fastEthernet0/1
ip pim sparse-dense-mode
exit

Salvar a configuração no ficheiro de startup do router

end
write

Config R2

configure terminal

Configuração do IP privado do router

interface fastEthernet0/1
ip address 193.137.100.1 255.255.255.0
no shutdown
exit

Configuração do IP público do router

interface fastEthernet0/0
ip address 193.137.101.10 255.255.255.128
no shutdown
exit

Configurar Multicast

ip multicast-routing
interface fastEthernet0/0
ip pim sparse-dense-mode
exit
interface fastEthernet0/1
ip pim sparse-dense-mode
exit

Salvar a configuração no ficheiro de startup do router

end
write

Config R3

configure terminal

Configuração do IP privado do router

interface fastEthernet0/1
ip address 10.5.2.1 255.255.255.192
no shutdown
exit

Configuração do IP público do router

interface fastEthernet0/0
ip address 193.137.101.30 255.255.255.128
no shutdown
exit

Configurar rota estática Rede D -> Rede B

ip route 193.137.100.0 255.255.255.0 193.137.101.10

Configurar SNAT

access-list 10 permit 10.5.2.0 0.0.0.63
ip nat inside source list 10 interface fastEthernet0/0 overload
interface fastEthernet0/0
ip nat outside
exit
interface fastEthernet0/1
ip nat inside
exit

Configurar DNAT

ip nat inside source static tcp 10.5.2.10 9000 193.137.101.30 9000 # Internet (Porta TCP 9000) -> Cliente 1 (Porta TCP 9000)
ip nat inside source static tcp 10.5.2.20 9001 193.137.101.30 9001 # Internet (Porta TCP 9001) -> Cliente 2 (Porta TCP 9001)
ip nat inside source static udp 10.5.2.10 8000 193.137.101.30 8000 # Internet (Porta UDP 8000) -> Cliente 1 (Porta UDP 8000)
ip nat inside source static udp 10.5.2.20 8001 193.137.101.30 8001 # Internet (Porta UDP 8001) -> Cliente 2 (Porta UDP 8001)

Configurar Multicast

ip multicast-routing
interface fastEthernet0/0
ip pim sparse-dense-mode
exit
interface fastEthernet0/1
ip pim sparse-dense-mode
exit

Salvar a configuração no ficheiro de startup do router

end
write

Comandos úteis

Makefile

make all # Compilar os programas cliente e servidor, gerando os ficheiros executáveis na pasta de output e popular o ficheiro keys.txt com as credenciais dos clientes e servidores simulados

make compile # Compilar os programas cliente e servidor, gerando os ficheiros executáveis na pasta de output

make populate # Preencher o ficheiro keys.txt com as credenciais dos clientes e servidores simulados

make clean # Limpar a pasta de output (remover ficheiros compilados e keys.txt)

Aplicação

./bin/server [porta_tcp] # Por omissão usa a porta 9000

./bin/client <IP_SERVIDOR> <PORTA_TCP_SERVIDOR> <PORTA_UDP_RECECAO>

PORTA_UDP_RECECAO representa a porta local onde o cliente fica a receber mensagens PowerUDP. Deve ser escolhida de acordo com as regras de DNAT usadas na rede.

O ficheiro bin/keys.txt gerado pelo Makefile inclui a chave partilhada POWERUDP. No cliente, depois do registo, estão disponíveis os comandos (Exemplo):

<SAIR>                                                     # Sair
<DEST>                                                     # Escolher outro cliente destino
<LISTA>                                                    # Listar clientes registados
<CONFIG> ret=1 backoff=1 seq=1 timeout=1000 retries=5      # Pedir nova configuracao PowerUDP
<LOSS> n=30                                                # Simular 30% de perda de pacotes DATA enviados
<STATS>                                                    # Ver retransmissoes e tempo da ultima mensagem

Docker

for c in $(docker ps -q); do docker cp /caminho/no/host/. "$c":/caminho/no/container/; done # Copiar um ficheiro ou diretório do host para todos os containers em execução (exemplo: for c in $(docker ps -q); do docker cp /home/gns3/containers/. "$c":/gns3volumes/home/; done)

docker exec -it <container_id> bash # Aceder ao terminal de um container específico

Shell

scp -r <caminho_na_origem> <utilizador>@<endereço_ip>:<caminho_no_destino> # Copiar uma pasta do host para a máquina virtual

scp -r <utilizador>@<endereço_ip>:<caminho_no_destino> <caminho_na_origem> # Copiar uma pasta da máquina virtual para o host

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors