domingo, 16 de agosto de 2015

Hardcore Devel #27 - NAT

Quando você está montando um servidor, algumas coisas curiosas acontecem.


Sério, ainda vou colocar esse cachorro como mascote do blog.

Hoje nós vamos falar um pouco sobre coisas que acontecem quando você está montando um servidor web. Que parece ser uma coisa extremamente exotérica, mas é muito mais simples do que parece. Você instala o Apache e voilá! Problema resolvido.

Não, é claro que não é só instalar o Apache. Tem toda uma questão de configurar a coisa, mas sem determinados programas não existe a web. O Apache é responsável por servir muitas e muitas páginas de internet ao redor do mundo, tendo o IIS como concorrente. Eu particularmente nunca usei o IIS, mas eu chutaria que pelo menos 75% dos servidores usam o Apache pra funcionar.

Aí você precisa de uma conexão com a Internet. Você vê o seu endereco IP e fala com seu irmão para acessar o 192.168.0.123, ele acessa e ta beleza. Aí você passa para o eu amigo e nada. Ele não consegue acessar seu servidor.

Você está atrás de uma NAT.

NAT foi a solução paliativa encontrada para o boom da internet. Muitas máquinas começaram a acessar a internet ao mesmo tempo e não tinha endereço IP pra todo mundo. Então criaram endereços de IP reservados para algo que poderíamos chamar de sub-redes. Um cara que seria o portão da sub-rede, se encarregaria de mandar os pacotes de um lado para o outro.

Pra fazer isso, os roteadores, que são justamente esses portões, pegam o seu pacote que sai de uma determinada porta da sua máquina, e identifica com uma porta do roteador. Ou seja, ele reserva aquela porta dele para uma porta sua. Como as máquinas tem cerca de 60000 portas, mas só usam mesmo umas 100. O roteador não tem quase trabalho fazendo isso.

E bom, o que acontece é que esse endereço IP que você tem é o de uma sub-rede, e ele não é visível pra quem ta de fora. Quem tá de fora só ve um dos dois endereços IP do roteador, que e o que a gente chama de IP real.

Ou seja, as pessoas precisam falar com o seu roteador pra poder falar com o seu webserver. E adivinha só, eles vão falar com o roteador na porta 80, porque é a porta na qual o Apache espera que seja feita uma conexão. Obviamente é possível mudar isso e é possível até usar o seu broswer para tentar acessar portas que não a 80, mas geralmente as pessoas usam a 80.

Ah, claro, e a 443. Elas ficaram tão famosas que hoje em dia elas tem os nomes: http(80) e https(443)

Então você tem que configurar o seu roteador para redirecionar a porta 80 dele para a sua porta 80 e pronto! Agora o seu amigo consegue acessar o seu servidor.

Show, só que a internet funciona com nomes, então você vai e registra um nome zedascouves.net, e fazer ele apontar pro seu roteador. Você pede para aquele seu amigo tentar acessar zedascouves.net e ele consegue sem maiores problemas.

Só que agora o seu irmão não consegue acessar o zedascouves.net

Isso porque você tem que fazer um NAT loopback. O que acontece é: Quando seu irmão tenta acessar o zedascouves.net, o servidor manda a mensagem com o endereço IP de sub-rede dele, e quando bate no computador do seu irmão, chega com o endereçxo 192.168.0.123, só que aquele computador estava esperando a mensagem do IP que veio do DNS que era algo do tipo 174.55.33.22, e chegou uma de um IP nada a ver, dai ele descarta e não recebe a mensagem do pobre do servidor.

Então você tem que configurar o NAT loopback. Quando a mensagem vier redirecionada pelo roteador para o servidor, o servidor tem que responder para o roteador trocar o endereço IP na hora de repassar. Daí todo mundo acessa o zedascouves.net

NAT é uma coisa muito esperta, mas não e ideal para se configurar um servidor. Isso ainda assim não torna impossível que você tenha o seu próprio.

Eu não vou mostrar como se configura o roteador porque isso varia de aparelho para aparelho. Então leia o manual do seu roteador para configurá-lo!

Divirtam-se!

Nenhum comentário:

Postar um comentário