Mostrando postagens com marcador Protocolos. Mostrar todas as postagens
Mostrando postagens com marcador Protocolos. Mostrar todas as postagens

quinta-feira, 7 de outubro de 2010

Os modelos OSI e TCP/IP

Usamos camadas em redes para a divisão do problema. Com essa divisão, podemos analizar cada aspecto de uma rede, tanto na hora de planejar quanto na hora de isolar um problema até a sua solução. Cada camada descreve uma tecnologia e conceitos que serão apresentados durante uma carreira em redes.

Antigamente, as redes eram "presas" a padrões definidos por diferentes fabricantes, ou seja, se uma rede rodava tecnologia de um fabricante, logo a interconexão com uma outra rede, de outro fabricante não seria possível. A partir daí surgiu a necessiadde de padronizar as tecnologias para que vários produtos de diferentes fabricantes abrissem a possibilidade de várias redes comunicarem entre si, independente de fabrinate, sistema operacional, etc etc

Os benefícios de criar modelos em camadas são:

  • Reduzir a complexidade;
  • Definir padrões;
  • Facilitar o entendimento;
  • Promover um rápido desenvolvimento de produtos;
  • Facilitar a engenharia modular;
O modelo OSI

Datando na década de 70, o modelo OSI começou a ser definido. Contudo, mais tarde, o padrão para as comunicações foi mudado para o TCP/IP, ficando o modelo OSI apenas para referência, tanto para estudos quanto para o desenvolvimento de produtos/tecnologias.

Uma dica que eu peguei para decorar as camadas, principalmente do modelo OSI, foi simplesmente decorar as iniciais de cada camada em sequência, ficando uma pronúncia assim: AASTRÉF. Depois fui procurando lembrar o que cada letra significava, junto com a sua função do modelo OSI.

  • Aplicação: É a camada mais próxima do usuário. Nela basicamente encontramos os nossos aplicativos de email, web browser, instant messaging, tranferência de arquivos, etc. Também encontramos os protocolos os quais cada tipo de aplicação depende para o seu funcionamento, como o HTTP para web, SMTP/POP/IMAP para o email, 23 para o Telnet, 22 para o SSH...
  • Apresentação: É onde são definidos os formatos das informações. Exemplo, um arquivo mp3 deverá ser aberto por um player multimídia, enquanto um arquivo PDF pode ser aberto pelo Adobe Reader, e assim por diante. Esta camada também cuida de aspectos de criptografia.
  • Sessão: Estabelece e mantém fluxos em uma comunicação.
  • Transporte: Fornece serviços como estabelecimeto/fechamento de conexão, controle de fluxo, recuperação de erros e segmentação de grandes quantidades de dados em partes menores para a transmissão. Essa camada cuida da confiabilidade da mensagem, como podemos ver em cada serviço oferecidao por ela. É onde vemos também os protocolos famosos TCP e UDP.
  • Rede: É onde temos o endereçamento lógico, a decisão de roteamento e o encaminhamento dos pacotes. É onde encontramos o protocolo IP e os roteadores.
  • Enlace: Temos o enderaçamento lógico (MAC address) também define o acesso ao meio, além de fazer os dados em formato de quadros para a transmissão no meio. Também define meios para reconhecer erros de transmissão.
  • Física: É onde encontramos as propriedades físicas de cada meio, como óptico, cabos conectores e a transmissão de bits. 
O modelo TCP/IP

O modelo TCP/IP foi o sucessor do modelo OSI devido a sua popularidade atualmente é utilizado como modelo de protocolo. O modelo TCP/IP têm quatro camadas. Comparando com o modelo OSI, a camada de aplicação do modelo TCP/IP engloba as três últimas camadas, enquanto a camada de acesso á rede do modelo TCP/IP engloba a camada física e de enlace do modelo OSI, deixando somente as camadas de rede e transporte parecidas com o modelo OSI.






Abaixo, segue uma comparação entre as camadas do modelo OSI e do TCP/IP:




Encapsulamento

O processo para o envio e recepção de dados em rede é camado de encapsulamento. Conforme um usuário envia uma mensagem via IM ou email, esses dados (PDUs - Protocol Data Units) irão descer as camadas até chegar na rede, onde serão enviados ao destino. Chegando ao destino, esta mensagem é "remontada" (desencapsulada) até chegar na camada de aplicação, onde temos um outro usuário. Para cada camada, esses dados tem um nome e um tipo de informação específica, como endereço IP de origem, destino, portas TCP/UDP, quadros, etc...

O processo de encapsulamento/desencapsulamento

Cada PDU tem um tipo específico de informação. No caso retratado na figura abaixo, os dados são criados e logo são encapsulados em um segmento para o transporte. Cada segmento contém informações como número de porta TCP/UDP de origem/destino. Este segmento logo é envolvido em um pacote, onde contém as informações de endereçamento IP de origem/destino que será encaminhado pela rede. Após isso, o pacote é encapsulado em um quadro (Camada de enlace), onde será entregue ao meio, em forma de bits!



Quando a mensagem chega no destino, cada camada é responsável por desencapsular a mensagem até a camada de aplicação, fazendo com que os dados sejam legíveis ao nosso olhar.

Até o próximo post!

terça-feira, 25 de maio de 2010

Rodando VRRP no CentOS

Este post fala de como rodar o VRRP (RFC 2338) em Linux. Aqui é especialmente no CentOS, mas isso pode ser feito em qualquer outra distribuição Linux. É somente um ".tar.gz" e um make e já era. Para saber o propósito disso, imagine uma situação onde você quer redundância, tanto na parte de redes quanto em aplicações onde é necessário alta disponibilidade (Nas distros RHEL/CentOS, o VRRP é presente no Cluster Suite e para o LVS, para manter disponibilidade em ambientes de aplicativos em cluster...Corrija-me se precisar...). Com isso, podemos fazer com que um servidor web "tome conta" dos pedidos dos clientes enquanto um outro servidor está down ou para manter redundância de first-hop (Default Gateway) em uma rede. Segue uma topologia abaixo:



  • O que acontece?

    Nesta topologia, um dos servidores ou gateways têm uma prioridade definida. O que tiver maior valor, será o master. Sendo o master, logo ele irá responder pelo endereço virtual (192.168.100.23), até que por algum motivo, ele fique "offline" e um backup assuma o posto. Isso é feito através de multicast com pacotes UDP no endereço 224.0.0.18. Depois que o master "cai", o backup percebe que não há mais mensagens do master e o backup acaba tornando-se o master.

  • Instalando

    A instalação é bem simples. Em uma instalação mínima, vamos precisar dos pacotes make, gcc e do libpcap0-devel. Só instalar com o comando make e depois copiar o arquivo vrrpd em /usr/sbin (rodar como root) e o arquivo vrrpd.8 em /usr/share/man/man8/ do seu CentOS, para consultar no man pages ;). O mesmo pode ser feito na outra máquina, pois estamos falando de redundância aqui.

   [root@scooby ~]# tar  xvfz vrrpd-1.0.tar.gz 
   [root@scooby ~]# cd vrrpd-1.0
   [root@scooby ~]# make
   [root@scooby ~]# cp vrrpd /usr/sbin/
   [root@scooby ~]# cp vrrpd.8 /usr/share/man/man8/

  • Pondo para funcionar


    A configuração dele é bem simples. Para que ele funcione depois do boot, podemos pôr a linha de comando no arquivo /etc/rc.local onde -i especifica a interface , -p a prioridade (O valor maior será o master), -v para o grupo, pode ser usado quando tiver redes diferentes e o endereço IP a seguir é o endereço IP virtual que irá ser usado para os requests ou como default gateway de uma rede. Para mais informações podemos ver pelo man pages do vrrpd. Você pode ver os logs gerados pelo daemon vrrpd em /var/log/messages. Podemos ver quando um nó se tornou master e quando ele se tornou backup, devido alguma mudança de prioridade.


Note que o host que tiver maior prioridade (opção -p) , será eleito como master:

[root@shaggy ~]# vrrpd -i eth0 -p 46 -v 1 192.168.100.23
Remove a stale pid file /var/run/vrrpd_eth0_1.pid
[root@shaggy ~]#
[root@shaggy ~]# tail -f /var/log/messages
[...]
May 25 23:32:04 shaggy vrrpd: vrrpd version 0.4 starting...
May 25 23:32:05 shaggy vrrpd: VRRP ID 1 on eth0: we are now a backup router.
May 25 23:32:12 shaggy kernel: eth0: Using EEPROM-set media 100baseTx-FDX.
May 25 23:32:12 shaggy vrrpd: VRRP ID 1 on eth0: 192.168.100.21 is down, we are now the master router.
E o com menor prioridade... O backup:

[root@scooby ~]# vrrpd -i eth0 -p 45 -v 1 192.168.100.23
Remove a stale pid file /var/run/vrrpd_eth0_1.pid
[root@scooby ~]#
[root@scooby ~]# tail -f /var/log/messages
[...]
May 25 23:23:34 scooby vrrpd: vrrpd version 0.4 starting...
May 25 23:23:34 scooby vrrpd: VRRP ID 1 on eth0: we are now a backup router.
May 25 23:23:48 scooby kernel: eth0: Using EEPROM-set media 100baseTx-FDX.
May 25 23:23:49 scooby vrrpd: VRRP ID 1 on eth0: we are now the master router.
May 25 23:24:58 scooby kernel: eth0: Using EEPROM-set media 100baseTx-FDX.
May 25 23:24:58 scooby vrrpd: VRRP ID 1 on eth0: 192.168.100.22 is up, we are now a backup router.

Por hoje é só...

Abraços!