Como a Internet Funciona
Às 10h00 um fã em São Paulo toca em Comprar num celular ligado ao Wi-Fi de casa. Alguns milissegundos depois, um pod com o endereço 10.20.40.17 cobra o cartão num provedor de pagamento que aceita requisições de exatamente um endereço no mundo. Entre os dois há uma dúzia de roteadores, pelo menos três traduções de endereço e quatro tabelas de rotas — e nenhum deles sabe nada sobre o BoxOffice. Esta página explica esse caminho desde o começo: o que é um endereço IP, por que alguns endereços são públicos e outros privados, como um bloco de endereços é dividido em sub-redes, e como o NAT permite que milhões de dispositivos privados compartilhem poucos endereços públicos. A próxima página constrói a rede do BoxOffice na nuvem sobre essas ideias, e o resto da aula a protege.
Dois simuladores nesta página
O explorador de endereços mostra os 32 bits de qualquer endereço IPv4, divide blocos em sub-redes e distingue público de privado. O caminho do pacote envia um pacote pela rede do BoxOffice, salto a salto, mostrando cada consulta à tabela de rotas, cada reescrita de endereço e cada decisão de firewall — e deixa você quebrar a rede para ver o que falha.
Camadas: quem decide o quê
Uma requisição não é uma coisa só no fio. É uma mensagem HTTP dentro de um segmento TCP, dentro de um pacote IP, dentro de um quadro Wi-Fi ou Ethernet. Cada camada tem o seu endereço e responde a uma pergunta diferente:
| Camada | Unidade | Endereço | Pergunta que responde | Exemplo no BoxOffice |
|---|---|---|---|---|
| Aplicação | requisição HTTP | URL, nome do host | o que é pedido | POST /orders para boxoffice.com |
| Transporte | segmento TCP / datagrama QUIC | porta | qual programa na máquina | 443 (o load balancer), 8080 (order), 5432 (PostgreSQL) |
| Rede | pacote IP | endereço IP | qual máquina, através de muitas redes | 203.0.113.10, 10.20.40.17 |
| Enlace | quadro Ethernet / Wi-Fi | endereço MAC | qual dispositivo neste cabo ou rádio | o celular → o roteador de casa |
flowchart LR
subgraph F["quadro Wi-Fi (MAC → MAC): reescrito a cada salto"]
subgraph P["pacote IP: origem 192.168.0.12 → destino 203.0.113.10"]
subgraph T["segmento TCP: porta 51514 → 443"]
H["HTTP: POST /orders (dentro do TLS)"]
end
end
end Dois fatos saem da figura e explicam quase toda esta página:
- Roteadores olham só o cabeçalho IP. Nunca leem a URL; o IP de destino decide o caminho. O quadro em volta do pacote é descartado e refeito a cada salto.
- Portas são da camada de transporte, mas dispositivos de NAT e firewalls também as leem: é assim que um endereço público é compartilhado, e é assim que um security group libera a
5432e recusa a22.
Como um pacote atravessa a Internet
A Internet é uma rede de redes: dezenas de milhares de sistemas autônomos (AS) — operadoras, universidades, provedores de nuvem, grandes empresas — cada um com os seus roteadores e os seus blocos de endereços. Cada AS anuncia os seus blocos aos vizinhos com BGP (Border Gateway Protocol)1: "mande para mim os pacotes de 203.0.113.0/24". Os anúncios se propagam até que cada roteador do núcleo tenha rotas para cerca de um milhão de prefixos IPv4.
Nenhum roteador conhece o caminho inteiro. Cada um faz a mesma coisa com cada pacote:
- Lê o IP de destino.
- Encontra na sua tabela a rota mais específica que o contém (maior prefixo, longest prefix match: uma rota para um
/24vence uma rota para um/16, que vence a rota padrão0.0.0.0/0). - Envia o pacote ao próximo salto dessa rota e decrementa o TTL do pacote (um contador de saltos que mata pacotes presos em laços).
Aperte play para seguir um pacote do celular do fã até o BoxOffice (os endereços são exemplos de documentação2):
sequenceDiagram
autonumber
participant P as Celular 192.168.0.12
participant R as Roteador de casa (NAT)
participant C as Operadora (AS do provedor)
participant X as Trânsito / ponto de troca
participant E as Borda do provedor de nuvem
participant G as Internet gateway (VPC)
participant L as Load balancer 10.20.0.10
P->>R: destino 203.0.113.10 fora de 192.168.0.0/24 → gateway padrão
R->>C: NAT: a origem vira 198.51.100.7 (o IP público da casa)
C->>X: maior prefixo para 203.0.113.10: rota aprendida por BGP
X->>E: próximo salto: a rede que anunciou 203.0.113.0/24
E->>G: dentro do provedor: a VPC dona de 203.0.113.10
G->>L: NAT 1:1: o destino 203.0.113.10 vira 10.20.0.10
L-->>P: a resposta passa pelas mesmas traduções, ao contrário Rode traceroute (Linux, macOS) ou tracert (Windows) para qualquer site: cada linha da saída é um roteador desta lista, com o seu tempo de ida e volta. Um caminho típico tem de 10 a 20 saltos; o tempo é dominado pela distância (a luz na fibra percorre cerca de 200 km por milissegundo), não pelo número de roteadores — é por isso que a borda coloca CDNs perto dos fãs.
O núcleo da Internet não tem rota padrão
O roteador da sua casa tem uma rota padrão (0.0.0.0/0 → operadora). Os grandes roteadores do núcleo não: só guardam os prefixos que alguém anunciou. Um pacote para um endereço que ninguém anuncia — um endereço privado como 10.20.40.17 — não encontra rota e é descartado no primeiro roteador do núcleo. É isso, e não um firewall, que impede a Internet de alcançar um pod pelo seu IP privado.
Endereços IP e CIDR
Um endereço IPv4 é um número de 32 bits, escrito como quatro octetos decimais: 10.20.40.17 é 00001010.00010100.00101000.00010001. Todo endereço tem duas partes:
- a parte de rede (os primeiros n bits) diz em qual rede o host está — é o que os roteadores comparam;
- a parte de host (os outros 32 − n bits) diz qual host dentro dessa rede.
A notação CIDR (Classless Inter-Domain Routing)3 escreve a divisão depois de uma barra: 10.20.0.0/16 é "os 2³²⁻¹⁶ = 65 536 endereços que começam com os mesmos 16 bits de 10.20.0.0". Cada bit a mais no prefixo divide o bloco ao meio: um /17 é metade de um /16, um /24 tem 256 endereços, um /32 é um único host. A mesma divisão às vezes é escrita como máscara: /16 é 255.255.0.0. Numa rede clássica o primeiro endereço do bloco nomeia a rede e o último é o de broadcast, então um /24 tem 254 hosts utilizáveis; a AWS reserva 5 endereços em cada sub-rede.
Experimente:
- O explorador começa com
10.20.40.17/19. Os bits de host não são zero, então o explorador mostra o bloco que contém este endereço:10.20.32.0/19, a sub-rede privada de aplicação do BoxOffice na AZ a. Arraste o prefixo de/19até/24e veja o bloco cair pela metade a cada passo. - Digite
10.20.0.0/16, escolha Dividir em 4 sub-redes e teste o endereço10.20.40.17: em qual dos quatro blocos/18ele cai? - Clique nos exemplos:
192.168.0.12(a sua casa),100.64.7.9(o NAT da sua operadora de celular),169.254.169.254(o serviço de metadados da nuvem),8.8.8.8(público). A linha tipo do endereço diz quais a Internet consegue rotear.
Pense antes: numa sub-rede 10.20.32.0/19, o endereço 10.20.64.5 está dentro?
Não. Blocos /19 têm 2¹³ = 8 192 endereços, então começam a cada 32 valores do terceiro octeto: 10.20.0.0, 10.20.32.0, 10.20.64.0… 10.20.32.0/19 vai de 10.20.32.0 a 10.20.63.255; 10.20.64.5 está no bloco seguinte (10.20.64.0/19, a sub-rede de aplicação da AZ b). Um host da AZ a manda os pacotes para ele ao seu gateway, não diretamente. Confira no explorador.
Endereços públicos e privados
Trinta e dois bits dão 2³² ≈ 4,3 bilhões de endereços — menos do que os celulares em uso hoje, sem contar servidores, carros e lâmpadas. Os registros distribuíram os últimos blocos IPv4 livres entre 2011 e 2019. A Internet sobreviveu com duas ideias:
- Alguns blocos são privados (RFC 1918)4: qualquer rede pode usá-los internamente, quantas vezes quiser, e ninguém os roteia na Internet.
- O NAT (próxima seção) permite que muitos hosts privados compartilhem um endereço público, único no mundo e anunciado por BGP.
| Bloco | Tamanho | Tipo | Roteado na Internet? | Onde você o encontra |
|---|---|---|---|---|
10.0.0.0/8 | 16,8 mi | privado | não | a VPC do BoxOffice 10.20.0.0/16; os pods do kind 10.244.0.0/16 |
172.16.0.0/12 | 1 mi | privado | não | as redes do Docker (172.18.0.0/16 no lab 3) |
192.168.0.0/16 | 65 536 | privado | não | roteadores domésticos (192.168.0.0/24) |
100.64.0.0/10 | 4,2 mi | compartilhado (CGNAT)5 | não | o seu celular no 4G/5G, atrás do NAT da operadora |
127.0.0.0/8 | 16,8 mi | loopback | não | localhost — a própria máquina |
169.254.0.0/16 | 65 536 | link-local | não | 169.254.169.254: o serviço de metadados da nuvem (credenciais!) |
192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 | 256 cada | documentação2 | não (reservados) | os endereços "públicos" dos exemplos desta disciplina |
| todo o resto (unicast) | ≈ 3,7 bilhões | público | sim | o load balancer e o NAT gateway do BoxOffice |
Os tamanhos são calculados a partir dos prefixos:
| Block | Addresses | Share of IPv4 |
|---|---|---|
10.0.0.0/8 | 16 777 216 | 0.391% |
172.16.0.0/12 | 1 048 576 | 0.024% |
192.168.0.0/16 | 65 536 | 0.002% |
100.64.0.0/10 | 4 194 304 | 0.098% |
| all RFC 1918 | 17 891 328 | 0.42% |
Um endereço público é o que torna um host alcançável a partir da Internet: alguém anuncia o seu bloco, então os pacotes para ele encontram uma rota. Um endereço privado só é alcançável dentro da própria rede e através do que traduz ou roteia para dentro dela. No BoxOffice, só duas coisas têm endereço público — o load balancer (para receber os fãs) e o NAT gateway (para chamar o provedor de pagamento de um endereço fixo). Todo serviço, pod e banco tem apenas um endereço privado.
Privado é sobre alcance, não sobre confiança
Um endereço privado só diz "a Internet não tem rota até mim". Qualquer coisa dentro da rede — um pod comprometido, um peering mal configurado, a VPN de um engenheiro — ainda o alcança. Por isso os security groups continuam restringindo cada porta, e por isso o Zero Trust autentica cada chamada em vez de confiar na rede.
NAT: muitos hosts privados atrás de um endereço público
O NAT (Network Address Translation) reescreve endereços no cabeçalho IP quando os pacotes atravessam um dispositivo. A forma mais comum, o NAT de origem (também chamado PAT ou masquerading), é o que fazem o roteador da sua casa, a sua operadora de celular e o NAT gateway da nuvem: trocam a origem privada de cada pacote que sai pelo seu próprio endereço público e uma porta livre, e anotam o par numa tabela de tradução.
sequenceDiagram
autonumber
participant P as Celular 192.168.0.12
participant N as Roteador de casa (NAT) público 198.51.100.7
participant S as Servidor 203.0.113.10
participant A as Alguém na Internet
P->>N: origem 192.168.0.12:51514 → destino 203.0.113.10:443
Note over N: tabela: 192.168.0.12:51514 ⇄ 198.51.100.7:40001
N->>S: origem 198.51.100.7:40001 → destino 203.0.113.10:443
S-->>N: resposta para 198.51.100.7:40001
Note over N: achou na tabela → volta para 192.168.0.12:51514
N-->>P: resposta entregue
A->>N: uma conexão nova para 198.51.100.7:22
Note over N: nenhuma entrada para a porta 22 → descartado | Dentro (privado) | Fora (público) | Outra ponta |
|---|---|---|
192.168.0.12:51514 | 198.51.100.7:40001 | 203.0.113.10:443 |
192.168.0.15:49822 | 198.51.100.7:40002 | 203.0.113.10:443 |
Quatro consequências aparecem o tempo todo em design de sistemas:
- Conexões só começam de dentro. Um host de fora pode responder, mas não pode abrir uma conexão nova: não há entrada na tabela que diga ao NAT para onde mandá-la. É por isso que os pods numa sub-rede privada conseguem chamar o provedor de pagamento enquanto ninguém na Internet consegue chamá-los.
- O servidor vê o NAT, não o cliente. Milhares de fãs atrás de um NAT de operadora chegam ao BoxOffice com o mesmo IP. Um limite de taxa por IP bloquearia um bairro inteiro às 10h00 — a razão pela qual a borda limita por chave de API ou por usuário e trata limites por IP como uma defesa grosseira.
- Um NAT dá um endereço de saída estável. Os pods mudam de nó e os seus IPs mudam, mas tudo o que mandam para a Internet sai com o IP público fixo do NAT — o que o BoxOffice registra na lista de permissões do provedor de pagamento (redes em nuvem).
- O NAT de destino publica um serviço privado. A reescrita inversa — "pacotes para a minha
:443pública vão para este host privado" — é o que fazem um load balancer, um internet gateway da nuvem (NAT 1:1 para IPs públicos) e oports: "80:80"do Docker.
Um NAT também tem capacidade: cada conexão para o mesmo destino precisa da sua própria porta pública, e um endereço público tem no máximo 65 535. Um NAT gateway da AWS suporta até 55 000 conexões simultâneas para cada destino único6 — um limite real quando centenas de pods chamam a mesma API de pagamento durante uma abertura de vendas.
Sub-redes e o gateway
Um host não roteia pacotes como o núcleo da Internet. A sua configuração de rede tem só três números — o seu endereço, o seu prefixo e o seu gateway padrão (mais um servidor DNS) — e ele toma uma decisão para cada pacote:
flowchart TD
A["pacote para o destino"] --> B{"o destino está dentro da<br/>minha sub-rede (endereço/prefixo)?"}
B -->|"sim"| C["descobre o MAC do destino (ARP)<br/>e envia diretamente"]
B -->|"não"| D["envia ao gateway padrão<br/>(o roteador da sub-rede)"]
D --> E["o roteador consulta a tabela de rotas:<br/>maior prefixo → próximo salto"]
E --> F["…até que um roteador o entregue<br/>dentro da sub-rede do destino"] Uma sub-rede é, portanto, um bloco de endereços cujos hosts falam diretamente entre si; todo o resto passa por um roteador. Os projetos dividem o espaço de endereços em sub-redes por três razões:
- Posicionamento: na nuvem uma sub-rede vive numa zona de disponibilidade, então uma sub-rede por zona permite espalhar réplicas e perder uma zona sem perder um serviço.
- Política de roteamento: cada sub-rede tem uma tabela de rotas, e é a tabela que a torna pública (uma rota para um internet gateway), privada (uma rota para um NAT) ou isolada (nenhuma rota para fora).
- Raio de impacto e regras: firewalls e flow logs são associados por sub-rede; um erro numa camada não abre as outras.
Uma tabela de rotas é uma lista de bloco de destino → alvo. Toda tabela numa VPC tem a rota local para o próprio bloco da VPC; o resto decide a camada:
| Tabela de rotas | 10.20.0.0/16 | 0.0.0.0/0 | A sub-rede é… |
|---|---|---|---|
rt-public | local | internet gateway | pública: recursos com IP público falam com a Internet nos dois sentidos |
rt-private | local | NAT gateway | privada: só saída, pelo NAT |
rt-data | local | — | isolada: nem entrada nem saída |
Quando um pacote para 10.20.8.10 sai de uma sub-rede privada, as duas rotas "o contêm" (0.0.0.0/0 contém tudo), e o maior prefixo vence: /16 vence /0, então ele fica dentro da VPC.
O caminho do pacote: a VPC do BoxOffice
Agora junte as peças. O simulador abaixo é uma versão pequena da rede do BoxOffice (uma zona de disponibilidade): uma sub-rede pública com o load balancer e o NAT gateway, uma sub-rede privada com os pods order e payment, e uma sub-rede isolada com o PostgreSQL. Cada passo mostra onde o pacote está, a sua origem e o seu destino (os campos que acabaram de mudar ficam destacados), a tabela de rotas ou o security group consultado, e a linha que casou.
Experimente:
- Um fã abre o site. Conte as reescritas de endereço: o roteador de casa troca a origem (privado → público), o internet gateway troca o destino (público → o endereço privado do load balancer). Depois o load balancer abre uma segunda conexão, dentro da VPC, até o
order. - payment chama o provedor. O endereço privado do pod,
10.20.40.17, é reescrito duas vezes na saída (NAT, depois internet gateway); o provedor vê só203.0.113.20e o encontra na lista de permissões. Siga a resposta de volta pela tabela do NAT. - Um fã tenta acessar um pod diretamente. O pacote nunca chega ao BoxOffice: nenhum roteador da Internet tem rota para um endereço privado.
- Quebre a rede. Desmarque rota 0.0.0.0/0 → NAT e rode de novo o cenário 2; desmarque sg-data aceita 5432 e rode order consulta o PostgreSQL; desmarque o load balancer tem IP público e rode o cenário 1. Cada interruptor é um erro de configuração real que já derrubou sites.
- Scanners. Tente a porta 5432 no IP do NAT e no IP do load balancer: um é descartado pelo NAT (sem tradução), o outro por um security group.
O que você deveria ter visto? (abra depois de experimentar)
- Os pods nunca conhecem nenhum endereço público: as traduções acontecem nas bordas (roteador de casa, internet gateway, NAT gateway), e a resposta é traduzida de volta pelos mesmos dispositivos.
- A tabela de rotas decide se um pacote pode sair de uma sub-rede; o security group decide se o destino o aceita; a tabela do NAT decide se um pacote que chega é uma resposta ou um estranho.
- Um pacote descartado não gera mensagem de erro: quem enviou espera o seu timeout. "Connection timed out" geralmente indica uma rota ou um firewall; "connection refused" indica que o host foi alcançado e nada escuta naquela porta.
No código do BoxOffice: uma rede privada no seu notebook (lab 3)
O Hands-on 3 já tem o formato da rede na nuvem. O Docker Compose cria uma rede bridge privada para o projeto (nos logs do lab, 172.18.0.0/16, um bloco RFC 1918). As três réplicas do catalog não têm ports: — como pods numa sub-rede privada, só são alcançáveis de dentro daquela rede, pelo nome, pelo DNS do Docker. Só o edge publica 80:80: um NAT de destino da porta 80 da sua máquina para o container do Nginx, a versão de notebook de um load balancer com IP público.
# three identical replicas; no "ports:" — only the edge is reachable from outside
catalog-1:
<<: *catalog
hostname: catalog-1
catalog-2:
<<: *catalog
hostname: catalog-2
catalog-3:
<<: *catalog
hostname: catalog-3
edge:
image: nginx:1.30-alpine
ports:
- "80:80"
volumes:
- ./infra/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- catalog-1
- catalog-2
- catalog-3
O Nginx resolve os nomes das réplicas com o servidor DNS interno do Docker (127.0.0.11) e balanceia entre os seus endereços privados. No log de acesso do lab toda requisição chega de 172.18.0.1 — o gateway da bridge, não o seu navegador: o servidor vê o NAT, exatamente como o provedor de pagamento vê o NAT gateway do BoxOffice.
resolver 127.0.0.11 valid=10s ipv6=off;
upstream catalog {
zone catalog 64k; # shared memory, required by "resolve"
# least_conn; # try it: pick the replica with fewest active requests
server catalog-1:8082 resolve max_fails=3 fail_timeout=10s;
server catalog-2:8082 resolve max_fails=3 fail_timeout=10s;
server catalog-3:8082 resolve max_fails=3 fail_timeout=10s;
No código do BoxOffice: pods, nós e uma porta publicada (lab 10)
No Hands-on 10 o cluster kind tem três nós, cada um um container com endereço privado; cada pod recebe o seu próprio endereço privado da rede de pods (o padrão do kind, 10.244.0.0/16), e os Services recebem endereços virtuais de outro bloco privado. A única entrada a partir da sua máquina é o extraPortMappings: a porta 80 do host → a NodePort 30080 do controlador de Ingress — mais uma vez um NAT de destino, no papel do internet gateway na frente do load balancer.
IPv6 em um parágrafo
Endereços IPv6 têm 128 bits (2¹²⁸ ≈ 3,4 × 10³⁸), escritos em grupos hexadecimais como 2001:db8:20::17. Há o suficiente para cada dispositivo ter um endereço roteável globalmente, então redes IPv6 normalmente não usam NAT — o que significa que, com IPv6, um pod poderia ser alcançável a partir da Internet, e só as tabelas de rotas e os firewalls (security groups) decidem se ele é. Nuvens e operadoras rodam dual-stack (IPv4 e IPv6 lado a lado), e o IPv4 público virou um recurso cobrado: desde fevereiro de 2024 a AWS cobra por todo endereço IPv4 público, em uso ou não7. As ideias de projeto desta página — sub-redes, tabelas de rotas, maior prefixo, firewalls — são as mesmas no IPv6.
Na entrevista
Raramente vão pedir para você calcular uma máscara, mas vão perguntar "como a Internet chega ao seu serviço, e como o seu serviço chama o mundo de fora?". Responda num fôlego só: "os fãs resolvem o nome para o IP público do load balancer; tudo atrás dele tem endereços privados em sub-redes privadas; as chamadas ao provedor de pagamento saem por um NAT gateway por AZ com um IP fixo que o provedor coloca na lista de permissões; a sub-rede do banco não tem rota para a Internet." Depois, se houver tempo, comente que limites de taxa por IP são injustos atrás do NAT das operadoras.
Boas práticas
- Dê endereço público só ao que precisa ser alcançado pela Internet — no BoxOffice, o load balancer e o NAT gateway; serviços, pods e bancos recebem só endereços privados (o caminho do pacote mostra por que nada mais é alcançável).
- Escolha blocos privados que nunca vão se sobrepor — um plano único para toda VPC, escritório e cluster (VPC
10.20.0.0/16, pods e Services de blocos reservados no mesmo plano), para que peering e VPNs continuem possíveis depois. - Faça a tabela de rotas dizer a camada: sub-redes públicas roteiam
0.0.0.0/0para o internet gateway, as privadas para um NAT na mesma zona, as de dados para lugar nenhum — e revise qualquer mudança numa rota padrão como uma mudança de código. - Dimensione sub-redes para o pico com folga, não para hoje: conte nós, IPs de pods e os 5 endereços reservados (um
/24tem 251 utilizáveis na AWS; acaba no primeiro grande scale-out). - Nunca confie só no IP do cliente — atrás do NAT das operadoras milhares de fãs compartilham um endereço; limite por chave de API ou por usuário, e use limites por IP só como escudo grosseiro contra enxurradas.
- Acompanhe a capacidade do NAT em destinos quentes — reutilize conexões (keep-alive, pools de conexões) com o provedor de pagamento em vez de abrir uma por requisição, e alerte em erros de alocação de portas.
Armadilhas comuns
- "Tem IP privado, então está seguro" — um endereço privado limita quem consegue rotear até ele, não quem tem permissão de entrar; vizinhos comprometidos, peerings e VPNs estão do lado de dentro.
- Colocar o IP de um pod ou de um nó na lista de permissões de um parceiro — esses endereços mudam a cada reagendamento; coloque o IP público fixo do NAT.
- Confundir "timeout" com "refused" — um timeout aponta para uma rota, um security group ou um NAT; uma recusa significa que o host foi alcançado e nada escuta naquela porta.
10.0.0.0/16sobreposto em todo lugar — o padrão de muitos templates, e a razão pela qual duas equipes não conseguem ligar as suas redes.- Expor
169.254.169.254a requisições não confiáveis — um server-side request forgery que alcança o serviço de metadados pode roubar as credenciais de nuvem da máquina (exija a API de metadados com token).
Como se conecta
flowchart LR
L["camadas: quadro, pacote,<br/>segmento, requisição"] --> IP["endereço IP:<br/>bits de rede + host (CIDR)"]
IP --> PP["público vs privado<br/>(RFC 1918, CGNAT)"]
PP --> NAT["NAT: endereço público compartilhado,<br/>IP de saída estável"]
NAT --> RL["limites por IP são injustos<br/>→ Borda: rate limiting"]
IP --> SUB["sub-redes + gateway padrão"]
SUB --> RT["tabelas de rotas:<br/>maior prefixo"]
RT --> VPC["pública / privada / isolada<br/>→ Redes em nuvem"]
BGP["BGP: redes anunciam prefixos"] --> RT
PP --> ZT["privado ≠ confiável<br/>→ Zero Trust"]
VPC --> SG["security groups<br/>→ Redes em nuvem"] Componentes da paleta: vpc · subnet · nat · lb (o único endereço público que recebe tráfego) · dns (o nome que leva até ele). Continua em: Redes em nuvem (a VPC do BoxOffice, security groups, endpoints), Borda — a jornada da requisição e rate limiting, Zero Trust, Hands-on 3 e Hands-on 10.
Pontos-chave
- Uma requisição viaja como um pacote IP; roteadores leem só o IP de destino e o encaminham pelo maior prefixo, salto a salto; as redes anunciam os seus blocos com BGP.
- Um endereço IPv4 tem uma parte de rede e uma parte de host;
/nfixa os primeiros n bits, o bloco tem 2³²⁻ⁿ endereços, e cada bit a mais o divide ao meio. - Blocos privados (RFC 1918) são reutilizados em todo lugar e nunca roteados na Internet; endereços públicos são únicos e anunciados. Privado significa inalcançável de fora, não confiável.
- O NAT permite que hosts privados compartilhem um endereço público: conexões só começam de dentro, os servidores veem o IP do NAT, e o NAT dá um endereço de saída estável para listas de permissões.
- Um host envia diretamente dentro da sua sub-rede e ao gateway padrão no resto; a tabela de rotas de uma sub-rede a torna pública, privada ou isolada.
-
REKHTER, Y.; LI, T.; HARES, S. RFC 4271 — A Border Gateway Protocol 4 (BGP-4). IETF, 2006. Para o quadro completo: KUROSE, J.; ROSS, K. Computer Networking: A Top-Down Approach, 8. ed. Pearson, 2021, capítulos 4 e 5. ↩
-
ARKKO, J.; COTTON, M.; VEGODA, L. RFC 5737 — IPv4 Address Blocks Reserved for Documentation. IETF, 2010. Os endereços "públicos" desta disciplina vêm desses blocos, então nunca pertencem a um host real. ↩↩
-
FULLER, V.; LI, T. RFC 4632 — Classless Inter-domain Routing (CIDR). IETF, 2006. ↩
-
REKHTER, Y. et al. RFC 1918 — Address Allocation for Private Internets. IETF, 1996. ↩
-
WEIL, J. et al. RFC 6598 — IANA-Reserved IPv4 Prefix for Shared Address Space. IETF, 2012. ↩
-
AMAZON WEB SERVICES. NAT gateways — Amazon VPC User Guide. ↩
-
AMAZON WEB SERVICES. New — AWS Public IPv4 Address Charge. AWS News Blog, 2023. ↩