IP, subnets, portas e o caminho do pacote
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
ip -brief addr: a interface tem IP?ip route get <destino>: há rota?ping/tracepath: em qual salto morre?nc -zv host porta: a porta abre?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/healthPerguntar 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 destinoFirewall 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 SSHNota 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. Quantos endereços utilizáveis tem uma sub-rede /24?
2. Um serviço escuta em 127.0.0.1:3000 dentro do container. O que acontece ao acessar pela porta publicada?
3. Qual protocolo o DNS usa por padrão?
4. Quantos IPs úteis uma subnet /24 oferece na AWS?
Minhas anotações
Salvo automaticamente neste navegador.