0 XP
Módulo 2 · Redes, HTTP e Nginx

IP, subnets, portas e o caminho do pacote

Iniciante 40 min+25 XPipsspingtraceroute

Objetivos desta aula

  • Ler endereços e máscaras CIDR
  • Entender rota padrão e gateway
  • Identificar bloqueio de porta
  • Calcular rede, broadcast e hosts de um bloco CIDR
  • Ler a tabela de rotas e explicar o gateway padrão
  • Diferenciar TCP de UDP e saber quando cada um aparece

Um endereço IP sozinho não diz nada: ele precisa da máscara. 10.0.1.15/24 significa que os três primeiros octetos identificam a rede e o último o host, com 254 endereços úteis. Essa noção é a mesma que você usará ao desenhar VPC na AWS, onde escolher /16 para a VPC e /24 para subnets é o padrão pragmático.

O pacote sai da sua máquina, consulta a tabela de rotas, encontra o gateway padrão para destinos externos e segue. ip route mostra essa decisão; traceroute mostra o caminho. Quando 'a aplicação não responde', a pergunta correta é em qual salto o caminho morre.

Portas identificam o serviço dentro do host. Conexão recusada significa que ninguém escuta ou o firewall rejeitou ativamente; timeout normalmente significa pacote descartado por firewall ou rota errada. Essa distinção economiza horas de investigação.

1. O modelo em camadas, sem decoreba

Pense na rede como correio: a camada de enlace (Ethernet, Wi‑Fi) entrega de um vizinho para o outro usando endereços MAC; a camada de rede (IP) sabe levar de uma cidade a outra; a camada de transporte (TCP/UDP) garante que a carta chegue ao morador certo, via porta; e a camada de aplicação (HTTP, DNS, SSH) é o conteúdo da carta.

Quando algo falha, você desce ou sobe essas camadas: a interface tem IP? Existe rota? A porta responde? A aplicação devolve o status esperado? Esse roteiro é o coração de todo diagnóstico de rede.

2. Calculando um bloco CIDR na mão

Um IPv4 tem 32 bits. Em 10.0.1.0/24, os 24 primeiros bits são fixos (rede) e sobram 8 bits para hosts: 2⁸ = 256 endereços. O primeiro (10.0.1.0) é o endereço da rede e o último (10.0.1.255) é broadcast, restando 254 utilizáveis.

  • /16 = 65.536 endereços (tamanho típico de uma VPC)
  • /24 = 256 (subnet típica)
  • /28 = 16 (menor subnet permitida na AWS)
  • /32 = um único host (usado em regras de firewall)

Na AWS, cada subnet reserva 5 endereços, então um /24 oferece 251 IPs úteis.

3. IPs privados, públicos e NAT

As faixas 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16 são privadas: não são roteadas na internet. Para sair, a máquina passa por um NAT, que troca o IP de origem pelo IP público do roteador. É exatamente o papel do NAT Gateway numa VPC: servidores em subnet privada acessam a internet, mas a internet não inicia conexão com eles.

4. Tabela de rotas: como o kernel decide

Para cada pacote, o kernel procura a rota mais específica (maior prefixo) que casa com o destino. Se nada casar, usa a rota padrão (default via 10.0.1.1). Use ip route get 1.1.1.1 para perguntar ao kernel qual interface e gateway ele usaria — é a forma mais rápida de confirmar se uma VPN ou um Docker bridge está roubando o tráfego.

5. TCP e UDP na prática

TCP abre conexão com o handshake SYN → SYN‑ACK → ACK, garante ordem e reenvio. É usado por HTTP, SSH e bancos. UDP não abre conexão: envia e pronto. É usado por DNS, métricas StatsD, streaming e QUIC (HTTP/3). Se o DNS falha mas o HTTP funciona, lembre-se de que o firewall pode estar liberando TCP e bloqueando UDP 53.

6. Portas e quem está escutando

Portas de 0 a 1023 exigem privilégio (22 SSH, 80 HTTP, 443 HTTPS, 5432 PostgreSQL). O comando ss -tulpn lista quem escuta e em qual endereço. Atenção ao detalhe: 127.0.0.1:3000 só aceita conexões locais, enquanto 0.0.0.0:3000 aceita de qualquer interface. Metade dos 'funciona na minha máquina' em containers vem de um servidor escutando só em localhost.

7. Refused, timeout e no route

  • Connection refused: o host respondeu com RST — ninguém escuta na porta ou um firewall rejeitou ativamente. O caminho existe.
  • Timeout: nenhuma resposta. Pacote descartado por firewall/security group ou rota inexistente.
  • No route to host: o próprio sistema (ou um roteador) sabe que não há caminho.

Cada mensagem aponta para uma camada diferente; leia antes de agir.

8. Firewall no host

No Ubuntu, ufw é uma interface amigável sobre nftables. A política saudável é negar entrada por padrão e liberar só o necessário. Em nuvem, você terá duas camadas: o firewall do host e o security group; ambos precisam permitir o tráfego.

9. Roteiro de diagnóstico em 5 passos

  1. ip -brief addr: a interface tem IP?
  2. ip route get <destino>: há rota?
  3. ping/tracepath: em qual salto morre?
  4. nc -zv host porta: a porta abre?
  5. curl -v: a aplicação responde corretamente?

Registre o resultado de cada passo no ticket: isso transforma 'não funciona' em evidência.

10. Checagem final

Você deve conseguir: planejar as subnets do CloudShop sem sobreposição, explicar por que um banco fica em subnet privada, e dizer em qual camada está um problema só lendo a mensagem de erro.

Na prática

Investigar rede local e conectividade

bash

ip -brief addr            # enderecos e interfaces
ip route                  # rota padrao (default via ...)
ss -tulpn                 # portas em escuta
ping -c3 1.1.1.1          # conectividade IP
traceroute api.cloudshop.dev 2>/dev/null || tracepath api.cloudshop.dev
nc -zv api.cloudshop.dev 443   # porta aberta?
curl -sS -o /dev/null -w '%{http_code} %{time_total}s\n' https://api.cloudshop.dev/health

Perguntar ao kernel qual caminho será usado

bash

ip route get 1.1.1.1
# 1.1.1.1 via 10.0.1.1 dev eth0 src 10.0.1.15   <- gateway e interface escolhidos
ip route get 10.30.2.10
# se aparecer dev docker0 ou tun0, outra rede esta capturando esse destino

Firewall mínimo com ufw

bash

sudo ufw default deny incoming     # nega tudo que entra
sudo ufw default allow outgoing    # permite saida
sudo ufw allow 22/tcp              # SSH
sudo ufw allow 80,443/tcp          # HTTP e HTTPS
sudo ufw enable
sudo ufw status verbose            # confira antes de fechar a sessao SSH

Nota de segurança: Libere a porta 22 antes de ativar o firewall para não se trancar fora do servidor.

Por que isso importa

Sem entender rede você não consegue desenhar VPC, depurar Kubernetes nem explicar por que o serviço interno não é alcançável.

Erro comum

Tratar 'connection refused' e 'timeout' como o mesmo problema.

Dica de produção

Documente as faixas de IP de cada ambiente antes de criar a infraestrutura; conflito de CIDR é dor crônica.

Alerta de segurança

Nunca exponha portas de banco (5432, 3306) à internet; use rede privada ou túnel.

Pergunta de entrevista

Explique a diferença entre connection refused e connection timeout.

Glossário

CIDR
Notação que combina endereço e tamanho do prefixo de rede, como 10.0.0.0/16.
gateway padrão
Roteador usado para destinos fora da rede local.
NAT
Tradução de endereço que permite a IPs privados saírem para a internet usando um IP público.
broadcast
Último endereço de uma subnet, usado para falar com todos os hosts dela.
handshake TCP
Troca SYN, SYN-ACK, ACK que abre uma conexão TCP.
0.0.0.0
Endereço de escuta que significa 'todas as interfaces'.
security group
Firewall virtual de instâncias em nuvem, com regras stateful.

Conexão com o CloudShop

Planejar as faixas 10.20.0.0/16 (dev) e 10.30.0.0/16 (staging) do CloudShop.

Quiz da aula

  1. 1. Quantos endereços utilizáveis tem uma sub-rede /24?

  2. 2. Um serviço escuta em 127.0.0.1:3000 dentro do container. O que acontece ao acessar pela porta publicada?

  3. 3. Qual protocolo o DNS usa por padrão?

  4. 4. Quantos IPs úteis uma subnet /24 oferece na AWS?

Minhas anotações

Salvo automaticamente neste navegador.

AnteriorPróxima