Pular para o conteúdo
Rizzygo Ako
Voltar para o tópico Redes: IP, DNS e portas

Redes na prática: IP, DNS e portas

Como seu computador encontra outro na internet e conversa com ele, explicado com comandos que você roda agora. No fim, você sabe investigar o clássico "a internet caiu" camada por camada.

Cerca de 1 hora e 30 minutosComandos para Linux, Mac e WindowsMaterial gratuito em português

1. A ideia geral

Uma rede é um conjunto de dispositivos que trocam dados. A internet é uma rede de redes: a da sua casa se liga à do seu provedor, que se liga a outras, até chegar ao servidor do site que você quer abrir.

Para uma mensagem chegar ao destino, três perguntas precisam de resposta:

Os dados viajam em pedaços chamados pacotes. Cada pacote leva o endereço de origem e o de destino, e os roteadores pelo caminho decidem para onde mandá-lo, como numa rede de correios.

2. Endereço IP: privado e público

Um endereço IPv4 tem quatro números de 0 a 255 separados por pontos, como 192.168.0.15. Descubra o seu:

SistemaComando
Linuxip -4 address
Macipconfig getifaddr en0
Windows (PowerShell ou Prompt)ipconfig
No Linux, procure a linha inet da sua placa de rede (ignore a lo):
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
    inet 192.168.0.15/24 brd 192.168.0.255 scope global dynamic wlan0

Esse é o seu IP privado, que só vale dentro da sua rede. Três faixas são reservadas para redes privadas, e você vai vê-las o tempo todo:

Na nuvem, as máquinas também recebem IPs dessas faixas dentro da rede privada do projeto. Já o IP público é o endereço com que a sua rede aparece na internet. Para ver o seu:

curl https://ifconfig.me

No PowerShell do Windows, digite curl.exe em vez de curl, porque curl sozinho chama outro comando.

O /24 depois do IP é a máscara, escrita no formato CIDR. Ele diz quantos bits (os zeros e uns que formam o endereço) identificam a rede. Num /24, os três primeiros números são a rede (192.168.0) e o último identifica cada aparelho, o que dá até 254 aparelhos. Você vai encontrar essa notação ao criar redes na nuvem.

O endereço 127.0.0.1, também chamado de localhost, é sempre a própria máquina. É o que você usa para testar um site rodando no seu computador.

3. Roteador, DHCP e NAT

O roteador da sua casa faz três trabalhos ao mesmo tempo:

Para ver o gateway: no Linux, ip route (linha que começa com default via); no Windows, ipconfig (linha Gateway Padrão); no Mac, netstat -rn | grep default.

4. IPv4 e IPv6

O IPv4 permite cerca de 4,3 bilhões de endereços, e eles se esgotaram. O NAT foi um dos jeitos de contornar o problema. A solução definitiva é o IPv6, com endereços bem mais longos, escritos em hexadecimal (com os algarismos de 0 a 9 e as letras de a a f) e separados por dois-pontos, como 2001:db8::1.

Hoje as duas versões convivem, e muitos provedores já entregam os dois tipos de endereço. Rode ip address no Linux, ifconfig no Mac ou ipconfig no Windows e procure um endereço com dois-pontos.

5. Testar se uma máquina responde

O ping manda pequenos pacotes para uma máquina e mede quanto tempo a resposta leva. No Linux e no Mac, ele não para sozinho: o -c 4 manda só 4 pacotes. No Windows, ele já para depois de 4: digite só ping wikipedia.org, sem o -c 4.

ping -c 4 wikipedia.org
Saída parecida com esta:
64 bytes from text-lb.eqiad.wikimedia.org (208.80.154.224): icmp_seq=1 ttl=56 time=18.2 ms
...
4 packets transmitted, 4 received, 0% packet loss

Um ping sem resposta nem sempre quer dizer que a máquina está fora do ar: muitos servidores bloqueiam ping por segurança. Para ver o caminho que os pacotes fazem, use traceroute wikipedia.org no Linux e no Mac ou tracert wikipedia.org no Windows. Cada linha é um roteador pelo caminho. Em algumas distribuições Linux, como o Ubuntu, é preciso instalar antes o pacote traceroute.

6. DNS: os nomes da internet

Ninguém decora IPs. O DNS é o sistema que traduz nomes em endereços. Quando você digita um endereço no navegador, o computador pergunta a um servidor de DNS (normalmente o do provedor ou um público, como o 1.1.1.1 da Cloudflare e o 8.8.8.8 do Google), que descobre a resposta e a guarda por um tempo em cache (uma memória temporária, para não precisar perguntar de novo).

nslookup wikipedia.org

O nslookup funciona no Linux, no Mac e no Windows. No Linux e no Mac existe também o dig, que mostra mais detalhes:

dig +short wikipedia.org

Os tipos de registro mais comuns

RegistroPara que serve
ALiga um nome a um endereço IPv4
AAAALiga um nome a um endereço IPv6
CNAMEDiz que um nome é apelido de outro nome
MXDiz qual servidor recebe os e-mails do domínio
TXTGuarda textos, muito usados para provar que você é dono do domínio e para regras de e-mail
NSDiz quais servidores respondem pelos registros do domínio
dig +short MX gmail.com

Cada registro tem um TTL, o tempo em segundos que ele pode ficar em cache. É por isso que, quando alguém muda o DNS de um site, a mudança pode levar de minutos a horas para chegar a todo mundo.

Faça agoraDescubra o IP de três sites que você usa com nslookup. Depois, rode nslookup num nome que não existe, como naoexiste.exemplo.invalid, e leia a mensagem de erro.

7. Portas e protocolos

Uma máquina pode rodar vários serviços ao mesmo tempo: um site, um banco de dados, um acesso remoto. A porta, um número de 0 a 65535, diz com qual deles você quer falar. Se o IP é o endereço do prédio, a porta é o número do apartamento.

PortaServiço
22SSH, acesso seguro ao terminal de outra máquina
53DNS
80HTTP, sites sem criptografia
443HTTPS, sites com criptografia
3306 e 5432Bancos de dados MySQL e PostgreSQL

Os dados viajam principalmente por dois protocolos de transporte. O TCP confirma a entrega e reenvia o que se perdeu; é usado em sites, e-mail e SSH. O UDP manda sem confirmar e é mais rápido; é usado em chamadas de vídeo, jogos e na maioria das consultas de DNS. O HTTP/3, versão mais nova do protocolo da web, roda sobre o QUIC, que usa UDP.

Para ver quais portas estão esperando conexões no seu Linux:

ss -tuln

No Mac e no Windows, o equivalente é netstat -an. Um firewall é o que decide quais portas aceitam conexões de fora. Na nuvem, ele aparece como regras de firewall ou grupos de segurança, e um serviço que "não responde" muitas vezes é só uma porta bloqueada.

Abra só o que precisaLiberar portas como 22 ou a do banco de dados para a internet inteira é um dos caminhos mais comuns para ataques. Restrinja ao seu IP ou use uma VPN (uma conexão criptografada que coloca você dentro da rede privada).

8. Investigar "a internet caiu"

Quando algo não carrega, teste de dentro para fora. Cada passo elimina uma possibilidade:

  1. Tenho IP? Rode ip -4 address ou ipconfig. Se o endereço começar com 169.254, o computador não conseguiu IP do DHCP: o problema está no Wi-Fi, no cabo ou no roteador.
  2. Chego no roteador? Faça ping no IP do gateway.
  3. Chego na internet? Faça ping -c 4 1.1.1.1 (no Windows, ping 1.1.1.1). Se funcionar, a conexão está de pé.
  4. O DNS funciona? Rode nslookup wikipedia.org. Se o ping por IP funciona e o nome não resolve, o problema é DNS.
  5. O serviço responde? Rode curl -I https://wikipedia.org (no PowerShell, curl.exe). Se tudo acima funciona e só um site falha, o problema provavelmente é no site, não em você.

Esse raciocínio, de testar camada por camada, é o mesmo que times de infraestrutura e SRE (engenharia de confiabilidade) usam para investigar incidentes em produção, o sistema real que os clientes usam.

9. Missão final

1. Anote os dados da sua rede

Seu IP privado, a máscara, o gateway, o IP público e o servidor de DNS. Os comandos estão nas partes 2, 3 e 6. Se o seu sistema usa o systemd-resolved, o comando resolvectl status mostra o DNS em uso.

2. Compare dois servidores de DNS
nslookup wikipedia.org 1.1.1.1
nslookup wikipedia.org 8.8.8.8

O segundo argumento diz para qual servidor de DNS perguntar. As respostas podem variar, porque sites grandes devolvem servidores próximos de quem pergunta.

3. Descubra quem recebe os e-mails de um domínio
nslookup -type=MX gmail.com
Para fixarExplique para alguém por que um site pode não abrir pelo nome, mas abrir pelo IP. Depois, marque no tópico que você ensinou alguém.

Lição escrita em português pela Iniciativa Ako, da Rizzygo, com base nas faixas de endereços privados da RFC 1918 e na documentação do MDN. O texto e os exemplos são próprios. Os números das saídas de exemplo mudam de rede para rede.

Conteúdo aberto sob a licença CC BY 4.0. Viu um erro? Abra uma issue.