0% acharam este documento útil (0 voto)
2 visualizações37 páginas

Sistemas Distribuidos Final

O relatório de aula prática aborda quatro atividades fundamentais em Sistemas Distribuídos: Sincronização NTP, Virtualização com VirtualBox, Conteinerização com Docker e Análise de Pacotes com Wireshark. Cada atividade inclui uma introdução, desenvolvimento e conclusão, destacando a importância de cada tecnologia no contexto de sistemas distribuídos. O documento enfatiza a relevância de ferramentas como NTP para sincronização de tempo, VirtualBox para virtualização, Docker para conteinerização e Wireshark para análise de tráfego de rede.

Enviado por

Leonardo Soares
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
2 visualizações37 páginas

Sistemas Distribuidos Final

O relatório de aula prática aborda quatro atividades fundamentais em Sistemas Distribuídos: Sincronização NTP, Virtualização com VirtualBox, Conteinerização com Docker e Análise de Pacotes com Wireshark. Cada atividade inclui uma introdução, desenvolvimento e conclusão, destacando a importância de cada tecnologia no contexto de sistemas distribuídos. O documento enfatiza a relevância de ferramentas como NTP para sincronização de tempo, VirtualBox para virtualização, Docker para conteinerização e Wireshark para análise de tráfego de rede.

Enviado por

Leonardo Soares
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd

RELATÓRIO DE AULA PRÁTICA – SISTEMAS DISTRIBUÍDOS

Aluno: Leonardo Machado Soares


RA: 3517823306
Curso: Superior de Tecnologia em Computação em Nuvem
Disciplina: Sistemas Distribuídos
Unidade: Campo Grande/MS – Matriz 7484667
SUMÁRIO

1 INTRODUÇÃO ................................................................................................1
2 DESENVOLVIMENTO ...................................................................................2
2.1 ATIVIDADE 01 - SINCRONIZAÇÃO NTP ................................................2
2.1.1 Introdução ....................................................................................................2
2.1.2 Desenvolvimento .........................................................................................2
2.1.3 Conclusão ...................................................................................................12
2.2 ATIVIDADE 02 - VIRTUALIZAÇÃO VM .................................................13
2.2.1 Introdução ...................................................................................................13
2.2.3 Conclusão ....................................................................................................19
2.3 ATIVIDADE 03 - CONTAINERIZAÇÃO COM DOCKER ........................19
2.3.1 Introdução ....................................................................................................19
2.3.2 Desenvolvimento .........................................................................................20
2.3.3 Conclusão ....................................................................................................28
2.4 ATIVIDADE 04 - ANALISADOR DE PACOTES WIRESHARK ............. 28
2.4.1 Introdução ....................................................................................................28
2.4.2 Desenvolvimento .........................................................................................29
2.4.3 Conclusão ....................................................................................................34
3 CONCLUSÃO GERAL ....................................................................................34
4 REFERÊNCIAS ................................................................................................35

1 INTRODUÇÃO

Nesta atividade prática, foi proposto 4 atividades sobre fundamentos da disciplia de


Sistemas Distribuídos, sendo elas as seguintes:

1. Sincronização NTP
Nesta atividade prática, você aplicará a sincronização relógios através
de servidor NTP em sistema operacional Linux e Windows.

2. Virtualização e conteinerização - Virtualização VM


Nesta atividade prática, você fará a criação de máquina virtual com sistema
operacional GNU/Linux.

3. Virtualização e conteinerização - Conteinerização com Docker:


Nesta atividade prática, você compreenderá como orquestrar o servidor web
Apache em um cluster simples através do Docker.
4. Segurança em sistemas distribuídos: Compreender como um
analisador de protocolos funciona. Trabalharemos com o Wire Shark

2 Desenvolvimento

2.1 Atividade 01 - Sincronização NTP

2.1.1 Introdução
A sincronização NTP é um processo que permite que os relógios de dispositivos
de uma rede sejam sincronizados, utilizando um protocolo de tempo. O NTP é a
sigla para Network Time Protocol, que significa "Protocolo de Tempo para
Redes".
O NTP é utilizado para sincronizar relógios de computadores, estações de
trabalho, roteadores e outros equipamentos. A sincronização é feita com base em
referências de tempo confiáveis, como os relógios atômicos do Observatório
Nacional. Abaixo segue como fazer a instalação do protocolo NTP no Linux e no
Windows.

2.1.2 DESENVOLVIMENTO

Realizando o exercício:
Para a realização desta experiência em ambiente Linux foi utilizada uma máquina
virtual no VirtualBox 7.0.14 com a distribuição Ubuntu 20.04.6 LTS (Focal Fossa).
Passo 1. Abra o Terminal, pressionando as teclas “CTRL + T” do teclado

Passo 2. Instale o serviço “ntp” através do gerenciador de pacotes “apt”, com o


comando: sudo apt install ntp
Pacote NTP instalado com sucesso. Comando sudo apt install ntp
Passo 3. Uma vez instalado o serviço, precisamos editar o arquivo de
configuração do mesmo. Comando 2: sudo nano /etc/[Link]

O roteiro da aula aqui, nos indica de remover os endereços já na configuração e inserir


o endereço do servidor do tempo brasileiro.

Passo 4. Devemos remover essas informações, o que está abaixo da frase # Specify one
or more NTC servers pressionando a tecla "DELETE" do teclado, até apagar tudo.
(Tudo que começar com pool 1,2,3,...) Ou seja, temos que excluir essas informações do
arquivo [Link].
Passo 5. Agora devemos incluir, onde excluímos os dados no passo anterior, na linha
abaixo do: # Specify one or more NTC servers.

O comando: pool [Link]

Passo 6. Salve essas alterações digitando "CTRL + X" no teclado, depois "S", e por
fim, "ENTER".
Passo 7. Reinicie o serviço ntp para ele utilizar essa nova configuração, com o servidor
do [Link], com o comando 3.

Comando 3: sudo service ntp restart

Passo 8. Feito isso, o serviço estará configurado adequadamente e já estará


funcionando, consultando um conjunto de servidores NTP através da Internet.
Adicionalmente, para fazer uma consulta manual e pontual, você poderá digitar o
seguinte comando no Terminal: ntpq -p.

Comando: ntpq -p
Procedimento no Windows

Para realizar essa configuração em um sistema operacional Windows:


Passo 1. Abra o Prompt de Comando (CMD), pressionando as teclas "WINKEY +
R" do teclado, digitando "cmd" e OK.

Passo 2. Na janela do CMD vamos inserir o código a seguir e pressionar a tecla


"Enter".

Código: w32tm /config /syncfromflags:manual


/manualpeerlist:[Link]
Observamos que ao final do comando aparece a mensagem “ O comando foi concluído
com sucesso”.

Passo 3. Vamos utilizar o comando "net stop w32time" e "net start w32time" para parar
o serviço e iniciar, reiniciando-o.

Comando para Parar: net stop w32time


Comando para Iniciar: net start w32time
Após isso vamos forçar uma sincronização de data e hora para verificar se está tudo
funcionando corretamente.

Passo 4. Podemos forçar uma sincronização através do comando "w32tm


/resync /rediscover".

Através da saída podemos observar que nossa configuração foi feita com sucesso

2.1.3 CONCLUSÃO

O NTP, se corretamente utilizado, é capaz de garantir as propriedades necessárias ao


relógio do computador para o bom funcionamento das aplicações. Num primeiro
momento isso pode parecer algo muito simples: "consultar o tempo em um servidor" e
"ajustar o relógio local" de tempos em tempos. Mas na verdade o NTP faz muito mais
do que isso.

Uma característica básica e ao mesmo tempo importante do tempo é que ele sempre
avança. O tempo não para e não volta atrás. Vários programas de computador fazem
uso dessa característica e podem ter seu funcionamento comprometido se o relógio do
computador inesperadamente passar a indicar um horário errado, especialmente se for
um horário no passado. Isso se complica ainda mais na Internet, com vários
computadores trocando informações entre si. Diante disso conseguimos perceber a
importância do Protocolo NTP.
2.2 ATIVIDADE 02 - VIRTUALIZAÇÃO E CONTEINERIZAÇÃO –
VIRTUALIZAÇÃO VM

2.2.1 INTRODUÇÃO

A virtualização é uma tecnologia que usa recursos tradicionalmente vinculados ao


hardware. Com ela, é possível usar toda a capacidade de uma máquina física,
distribuindo seus recursos entre muitos usuários ou ambientes. Entre os tipos de
virtualizações está: Virtualização de sistema operacional, que torna possível a execução
de vários sistemas operacionais em um único computador.

Uma máquina virtual (VM) é um computador digitalizado que funciona em um


servidor físico, utilizando recursos virtuais como CPU, memória e armazenamento. As
VMs são executadas como computadores individuais, mas são independentes das
outras e do computador físico.

As VMs podem ser usadas para: Testar novos sistemas operacionais, executar software
incompatível, criar e implantar aplicações na nuvem, fazer backup do sistema
operacional, executar aplicativos legados em hardware moderno. Para criar VMs, é
necessário utilizar um hypervisor, que é uma camada de software que aloca recursos de
compatação física para cada VM.

O VirtualBox é um software gratuito e de código aberto que permite criar, gerenciar e


executar máquinas virtuais (VMs). Ele é multi-plataforma e pode ser usado em
Windows, Mac OS X, Linux e Solaris.

O VirtualBox é uma ferramenta útil para quem precisa usar mais de um sistema
operacional ou para testar sistemas. Ele também pode ser usado para reduzir custos
operacionais e implementar aplicações de forma segura. O VirtualBox é ideal para
desenvolvedores, profissionais de TI e usuários comuns.

Nas imagens a seguir serão exibidas as fases de configuração da máquina virtual e da


instalação do sistema operacional hóspede.
Criação de máquina virtual com sistema operacional GNU/Linux, que como exemplo
trarei o Debian através do software Oracle VM VirtualBox.
 Instalação do Debian

No VirtualBox devemos ir até a opção "Novo".

Agora devemos definir um nome para nossa máquina virtual, e o sistema operacional.
Definindo quantidade de memória RAM e processador.

Criando um novo disco virtual.


Criada nossa máquina, já aparece na lista.

Vamos nas configurações e apontamos a ISO do SO.


Após isso, devemos pressionar o botão ok e depois “iniciar”

Feito isso teremos a opção de instalar nossa maquina, ela deve ser selecionada e seguir
as etapas de instalação até sua conclusão.
Terminada a instalação, a maquina virtual inicializará o novo SO
2.2.3 CONCLUSÃO

A virtualização usando aplicativos como o VirtualBox é uma poderosa


ferramenta que oferecem diversas vantagens, incluindo a capacidade de testar e
desenvolver software em diferentes sistemas operacionais, isolamento seguro de
ambientes e eficiência no uso de recursos de hardware. No entanto, é importante estar
ciente das possíveis sobrecargas de desempenho e das necessidades de recursos de
hardware para garantir o funcionamento eficiente das máquinas virtuais.
2.3 ATIVIDADE 03 - CONTAINERIZAÇÃO COM DOCKER:

2.3.1 INTRODUÇÃO

A conteinerização com Docker é uma tecnologia que permite criar e utilizar contêineres
Linux para executar aplicações. Os contêineres são ambientes isolados que contém todos
os componentes necessários para executar um programa. O Docker é uma ferramenta de
conteinerização que permite criar contêineres de imagens do Docker. Os contêineres do
Docker são executados no kernel do host, o que permite que vários processos e
aplicações sejam executados separadamente.

A conteinerização é uma tecnologia essencial para a migração para a nuvem


2.3.2 DESENVOLVIMENTO

A realização dessa atividade tem como objetivo compreender como orquestrar o


servidor web Apache em um cluster simples através do Docker, e para iniciar foi
acessado o site: [Link] e em seguida feito a
inscrição com a criação da conta.
Depois de inscrito, foi necessário ir para a tela do Play with Docker

através do link: [Link] e clicar em Star (Começar).

Ambiente de laboratório
Com o acesso à plataforma:

1 Passo Foi adicionado 3 nós, que farão parte do cluster, através do botão "Add new
instance".
2 Passo: Foi escolhido o 1 nó para ser o mestre, através do seguinte comando
docker swarm init --advertise-addr [Link].

Este comando define esse nó como manager do cluster. Repare

que, ao executar esse comando, é apresentada uma saída, com a mensagem: (To add a
worker to this swarm, run the following command) “Para
adicionar um worker ao swarm, execute o seguinte comando”, conforme pode ser visto
na Figura.
Sendo assim, foi copiado a saída que foi apresentada (destacada em

vermelho na Figura), pois esse comando deverá ser executado em cada um dos demais
nós do cluster, adicionando estes como workers desse cluster.
3 Passo: Agora que os nós estão criados e seus papéis definidos,

para criar o serviço que estará rodando (de maneira distribuída, replicada) do servidor
web Apache, foi digitado o seguinte comando no nó mestre: docker service create - -
name WEB --publish 80:80 --replicas-5 httpd.

Este comando criou 5 instâncias de um servidor web Apache, que responderá na porta
mapeada (80, nesse caso) e, para facilitar a monitoração demos um nome a este
serviço: "WEB".
Para saber em quais nós as 5 réplicas desse serviço estão sendo executadas, digite o
seguinte comando: docker service ps WEB.I

4 Passo: Para finalizar, acessar a página de boas-vindas desse servidor Apache


através dos endereços IPv4 de cada nó onde esse serviço web estiver rodando. E
veremos a famosa mensagem "It works!" do Apache.
Servidor rodando o nó 1.

Servidor rodando o nó 2.

Servidor rodando o nó 3.
2.3.3 CONCLUSÃO

A conteinerização com Docker oferece uma maneira eficiente e consistente de


desenvolver, implantar e gerenciar aplicações. Utilizando contêineres, é possível
garantir que o ambiente de execução seja o mesmo em todas as etapas do ciclo de
desenvolvimento, reduzindo problemas de compatibilidade e facilitando a
escalabilidade.

2.4 ATIVIDADE 04 - ANALISADOR DE PACOTES WIRESHARK

2.4.1 INTRODUÇÃO

Wireshark é um analisador de protocolos utilizado para monitorar o tráfego de rede.


Esse software captura pacotes de dados transmitidos em uma rede local, permitindo
assim que administradores de rede analisem e resolvam problemas de comunicação ou
identifiquem possíveis ameaças à segurança.

Também conhecido como sniffers, esses analisadores de protocolo conseguem capturar


a maioria dos pacotes de dados utilizados em uma rede, além de fornecer vários
recursos para filtragem e para visualização dos dados capturados.

O Wireshark ajuda na identificação e resolução de problemas de comunicação,


congestionamento e latência, permitindo que os administradores de rede analisem o
tráfego em tempo real e identifiquem a origem dos problemas.
2.4.2 DESENVOLVIMENTO

Para a realização desta experiência foi utilizado o WireShark 4.4.3.

• Exploração dos menus e execução do roteiro da prática.


Abertura do aplicativo que mostra todas as interfaces de redes disponíveis no sistema.

O objetivo deste programa é capturar e analisar o tráfego que viaja em uma rede, é
possível guardar os dados de captura em um arquivo, para acesso futuro.

Mas, a peculiaridade consiste na possibilidade de criar filtros ou usar filtros pré-


configurados e selecionar os pacotes e os protocolos de comunicação que nos
interessam, em tempo real ou sobre uma captura feita anteriormente. Para tal fim
devemos selecionar a rede que deve ser analisada.
No menu principal, será apresentada uma caixa listando as interfaces de rede. Selecione
a interface e clique em Start.
Esta atividade é chamada de farejamento, pois em inglês este processo é chamado de
sniffing, porque é assim que conseguimos "sentir" e individuar os dados interessantes.
Construtor de Filtros

A caixa de diálogo de construção de filtros é um recurso que torna mais fácil a utilização
do Wireshark pelos usuários para capturar e criar filtros de exibição.

Para acessar esta caixa de diálogo:

1 - Clique no menu Analyze;

2 - Opção Display Filter Expression.


3- Na janela de seleção dos filtros pré-configurados é possível colocar chaves
específicas de busca colocando, por exemplo, o nome de um disposto e visualizar os
pacotes que incluam aquela palavra, ou excluam a mesma dos resultados.

2.4.3 CONCLUSÃO

Em resumo, o Wireshark é uma ferramenta indispensável para análise e monitoramento


de redes. Sua capacidade de capturar pacotes de dados em tempo real e fornecer uma
análise detalhada faz dele uma escolha popular entre profissionais de TI e entusiastas.
Com filtros avançados, suporte a centenas de protocolos e uma interface gráfica
amigável, o Wireshark ajuda a resolver problemas de rede, garantir a segurança e
entender o tráfego de dados em profundidade.
REFERÊNCIAS

TANENBAUM, A. S.; VAN STEEN, M. Sistemas Distribuídos: Princípios e Paradigmas. Pearson.


DOCKER INC. Docker Documentation. Disponível em: [Link]
ORACLE. VirtualBox Documentation. Disponível em: [Link]
WIRESHARK FOUNDATION. Wireshark User’s Guide. Disponível em:
[Link]
[Link]. Projeto [Link]. Disponível em: [Link]

Você também pode gostar