Camada de rede e encaminhamento

IPv4, subnetting, VLSM, escolha de rotas, ARP, fragmentação, NAT e IPv6.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Um host 192.0.2.77/26 precisa de decidir se entrega diretamente ao destino ou envia ao gateway; primeiro encontra a sua rede pelo prefixo. Os routers seguintes consultam o IP de destino para escolher cada saída, enquanto os protocolos de routing constroem as tabelas usadas nessas decisões.

IPv4 e prefixos

Um endereço IPv4 tem 32 bits. O prefixo /p indica bits de rede e os restantes 32−p32-p identificam posições; a máscara tem pp uns seguidos de zeros. Faz AND entre endereço e máscara para obteres a rede.

Exemplo. 192.0.2.77/26 tem máscara 255.255.255.192. Em binário, o último octeto é 01001101 e a máscara é 11000000; o AND dá 01000000, ou 64. Os blocos começam em 0, 64, 128 e 192. O endereço pertence a 192.0.2.64/26, com broadcast .127 e intervalos usuais de hosts .65 a .126, total de 62.

A fórmula 232−p−22^{32-p}-2 vale para sub-redes usuais que reservam rede e broadcast. Não é universal: /31 pode usar os dois endereços ponto a ponto e /32 é um só endereço. As classes A, B e C não substituem o CIDR do enunciado.

Os 62 endereços utilizáveis contam interfaces, incluindo a do router. Com um gateway e nenhum outro equipamento que precise de IP, cabem 61 computadores nessa LAN /26. Um comutador de camada 2 não precisa de um endereço IP por porta para reenviar tramas; se reservarmos um IP de gestão na mesma sub-rede, sobra menos um para computadores. Numa prova recente, a resposta 30 para uma LAN /27 com gateway esqueceu exatamente esta reserva: 32−2−1=2932-2-1=29. Distingue «hosts utilizáveis», «terminais» e «terminais adicionais» num problema de dimensionamento.

VLSM e agregação

Para dividir 198.51.100.0/24 em grupos que precisem de 100, 50 e 20 hosts, começa pelos maiores:

NecessidadePrefixoBlocoHosts usuais
100/25198.51.100.0–127.1–.126
50/26198.51.100.128–191.129–.190
20/27198.51.100.192–223.193–.222

O bloco .224/27 sobra. Cada bloco tem tamanho potência de dois e início alinhado, por isso não podes começar um /26 em .130 só porque há espaço disponível.

Na agregação, vários prefixos contíguos e alinhados podem ser anunciados por um prefixo mais curto. 192.0.2.0/25 e 192.0.2.128/25 agregam em 192.0.2.0/24. Agregar blocos não contíguos pode anunciar destinos que não eram pretendidos.

Crescimento das sub-redes

Adaptação do problema 9 e da resolução docente, com endereços de exemplo. Divide 192.0.2.0/24 por quatro departamentos com 72, 35, 20 e 18 computadores. Admitimos uma interface de gateway por sub-rede, já dentro da capacidade indicada abaixo.

DepartamentoComputadoresRedeMáscaraHosts utilizáveis
A72192.0.2.0/25255.255.255.128126
B35192.0.2.128/26255.255.255.19262
C20192.0.2.192/27255.255.255.22430
D18192.0.2.224/27255.255.255.22430

Os quatro blocos ocupam os 256 endereços. Se D crescer para 34 computadores, precisa de /26, mas não pode simplesmente alargar .224/27, pois um /26 não começa em .224 e a região .192/26 contém C; reorganizar os endereços exige preservar também os outros departamentos.

Uma alternativa é dividir A em duas sub-redes: reserva .0/26 para 60 computadores de A e um gateway, .224/27 para os restantes 12 e outro gateway, .64/26 para D, e conserva B em .128/26 e C em .192/27. A passa a precisar de encaminhamento entre as suas duas sub-redes e de reconfiguração dos hosts. Somar computadores dá 161 após o crescimento, mas somar os blocos necessários com uma rede por departamento dá 288 endereços; a necessidade resulta do alinhamento e das potências de dois, não só da soma de hosts.

Longest prefix match

O router escolhe, entre as rotas que correspondem ao destino, a de prefixo mais longo. A rota por omissão /0 corresponde a tudo, mas perde para qualquer correspondência mais específica.

Com /0 por G0, 10.0.0.0/8 por G1 e 10.2.0.0/16 por G2, o destino 10.2.3.4 sai por G2 e 10.9.1.1 sai por G1.

A tabela indica saída e próximo salto. Se o destino for local, o próximo salto é o próprio destino. Se for remoto, é um router diretamente alcançável. IP do destino final e IP do próximo salto são campos com funções diferentes.

Passar de uma topologia a tabelas de rotas

Divide 172.20.8.0/24 para a topologia seguinte. A LAN A precisa de 80 endereços de hosts e a LAN B de 30, já incluindo as interfaces dos routers. A ligação entre routers usa um /30 por decisão deste exemplo. Não há NAT nem ligação a outras redes.

Começa pela maior necessidade, reserva rede e broadcast nas LANs, e alinha cada bloco. 80 não cabem num /26, que só dá 62 hosts, enquanto 30 cabem exatamente num /27.

SegmentoRedeMáscaraHosts disponíveisBroadcast
LAN A172.20.8.0/25255.255.255.128.1 a .126.127
LAN B172.20.8.128/27255.255.255.224.129 a .158.159
R1–R2172.20.8.160/30255.255.255.252.161 e .162.163

Atribui .1/25 à interface LAN de R1 e .129/27 à de R2. Na ligação entre ambos, R1 usa .161/30 e R2 .162/30. Cada interface tem o seu endereço e prefixo. Um router não tem um único endereço que se possa usar em qualquer segmento.

A tabela de R1, sem rota por defeito, precisa de conhecer as três redes:

DestinoPróximo saltoInterface de saída
172.20.8.0/25Diretamente ligadoLAN A
172.20.8.160/30Diretamente ligadoLigação R1–R2
172.20.8.128/27172.20.8.162Ligação R1–R2

R2 tem as duas primeiras redes locais correspondentes, LAN B e ligação. Para chegar a 172.20.8.0/25, usa o próximo salto 172.20.8.161. As rotas diretamente ligadas são normalmente instaladas a partir da configuração das interfaces; a rota remota precisa de configuração estática ou aprendizagem por routing.

Um host 172.20.8.20/25 envia para 172.20.8.130 através do gateway .1. Na LAN A, resolve por ARP o MAC de .1; R1 encaminha por .162 e R2 entrega na LAN B, resolvendo o MAC de .130. Sem NAT, os IP de origem e destino mantêm-se, o TTL diminui em cada router e os endereços de ligação mudam por salto.

Para reduzir uma tabela por agregação, verifica alinhamento e próximo salto comum. Dois /27, .128/27 e .160/27, podem formar .128/26 se todos esses destinos tiverem a mesma saída pretendida. .0/27 e .64/27 não são dois blocos adjacentes; resumir ambos com /25 inclui outras redes. Menos linhas não justifica anunciar destinos incorretos.

ARP, DHCP e ICMP

ARP resolve um IPv4 do salto local para ligação. O pedido é difundido na LAN, o dono responde e o resultado pode ficar em cache. Para rede remota, resolve o MAC do gateway, não o do terminal remoto.

Exemplo com dois routers. T1 (10.20.1.1) envia a T2 (10.20.3.2) através de R1 e R2 em série. Se a cache ARP de R1 estiver vazia, R1 não pede o MAC de T2 nem o de T1: pede em broadcast o MAC do próximo salto, 10.20.2.2, que é o endereço que a sua tabela indica para este destino. Cada router resolve sempre o MAC do salto seguinte, nunca o do destino final quando este é remoto.

DHCP pode atribuir endereço, máscara, gateway, DNS e tempo de concessão. A sequência inicial habitual é Discover, Offer, Request, ACK, com UDP, portas 68 do cliente e 67 do servidor. Renovar uma concessão não exige repetir sempre a sequência broadcast inicial.

ICMP comunica controlo e erros IP. Echo request/reply suporta ping; time exceeded permite observar saltos com TTL crescente, como em traceroute. ICMP não torna IP fiável. Um pacote sem resposta ao ping pode estar bloqueado ou sem caminho de retorno, não apenas desligado.

Cabeçalho e fragmentação IPv4

O cabeçalho inclui origem, destino, comprimento, protocolo superior, TTL e campos de fragmentação. O TTL diminui nos routers e impede circulação indefinida, enquanto a checksum IPv4 protege o cabeçalho, não toda a carga útil.

A MTU é o maior pacote IP que a ligação leva sem fragmentar. Se exceder a MTU e a fragmentação for permitida, cada fragmento recebe cabeçalho; o offset conta blocos de 8 bytes da carga original e, exceto o último, a carga é múltipla de oito. O destino reconstitui por identificação e campos de fragmentação.

Exemplo. Datagrama de 4000 bytes, incluindo cabeçalho de 20, MTU 1500, sem opções e DF=0. Há 3980 bytes de dados. Cada fragmento completo leva 1480 bytes de dados.

FragmentoDadosComprimentoOffsetMF
1bytes 0–1479150001
2bytes 1480–295915001851
3bytes 2960–397910403700

Resultam comprimentos 1500, 1500 e 1040; offsets 0, 185 e 370; MF 1, 1 e 0. Não dividas o comprimento total original por oito: o offset refere-se aos dados e cada fragmento tem cabeçalho novo.

NAT e IPv6

NAT altera endereços; NAPT/PAT pode alterar também portas e manter uma tabela de associações. Vários clientes privados usam um endereço externo com portas distintas.

SentidoOrigemDestinoTradução
Ida10.0.0.5:1234203.0.113.7:80Regista 10.0.0.5:1234 como 198.51.100.9:5001
Volta203.0.113.7:80198.51.100.9:5001Repõe 10.0.0.5:1234 como destino

Ligações iniciadas do exterior podem exigir uma associação estática, encaminhamento de portas ou outro mecanismo. NAT não substitui uma política de firewall.

IPv6 usa 128 bits, notação hexadecimal e compressão de um único trecho de zeros com ::. O cabeçalho base tem 40 bytes, não inclui checksum e usa Hop Limit. Routers IPv6 não fragmentam; se o pacote não couber na MTU da saída, descartam-no e enviam à origem ICMPv6 Packet Too Big, indicando a MTU. A origem pode reduzir os pacotes ou usar um cabeçalho de fragmentação. Neighbor Discovery, baseado em ICMPv6, substitui funções do ARP, e IPv6 usa multicast em funções em que IPv4 usava broadcast.

Quando comparares IPv4 e IPv6, identifica os mecanismos, em vez de assumir que mudar a dimensão do endereço garante segurança ou elimina toda a configuração.

Exercícios

Aproveitar um bloco livre e contar terminais

Uma empresa usa 192.0.2.0/24. As LANs .0/26 e .64/27 já estão atribuídas e não podem mudar. Escolhe uma única sub-rede para uma terceira LAN que permita o máximo de terminais sem sobreposição. Indica rede, máscara e broadcast.

Na nova LAN, reserva um IP para o gateway e um para gestão do comutador. Já existem três computadores. Quantos computadores pode ter no total e quantos mais cabem? Não existem outros equipamentos com IP nem endereços reservados.

Pista
Os endereços livres não formam necessariamente um único bloco CIDR. Conta interfaces antes de contar computadores.
Solução

As redes existentes ocupam .0 a .63 e .64 a .95. Sobram .96 a .255, mas .96/25 não está alinhado. O maior bloco único válido é 192.0.2.128/25, com máscara 255.255.255.128, broadcast .255 e interfaces utilizáveis .129 a .254. O bloco livre .96/27 fica separado.

O /25 tem 128 endereços; depois de rede e broadcast, ficam 126 interfaces. Gateway e gestão consomem duas, sobrando 124 para computadores. Como já há três, cabem mais 121. As portas do comutador não consomem automaticamente um IP cada; neste enunciado só reservámos um para gestão.

Confere a tua resposta:

  • Escolho .128/25 como maior bloco único sem sobreposição.
  • Obtenho broadcast .255 e 126 interfaces utilizáveis.
  • Desconto gateway, gestão e os três computadores já presentes.
Voltar à explicação
Configurar interfaces e rotas de duas LANs

Usa 10.8.0.0/24 para duas LANs com 50 e 10 hosts, já contando os routers. R1 liga a LAN A a R2, que liga à LAN B. A ligação R1–R2 usa /30. Distribui blocos do maior para o menor, atribui interfaces e escreve a tabela de R1 para as três redes, sem rota por defeito. Indica a rota de retorno de R2.

Pista

Escolhe o menor bloco que acomode hosts, rede e broadcast, começando pela LAN maior. Reserva depois a ligação entre routers num bloco alinhado.

Solução

LAN A: 10.8.0.0/26, hosts .1–.62, broadcast .63. LAN B: 10.8.0.64/28, hosts .65–.78, broadcast .79. Ligação: 10.8.0.80/30, hosts .81 e .82, broadcast .83.

Uma atribuição válida é R1 LAN .1/26, R2 LAN .65/28, R1 ligação .81/30 e R2 ligação .82/30. R1 tem .0/26 diretamente na LAN, .80/30 diretamente na ligação e .64/28 por .82 nessa ligação. R2 alcança .0/26 por .81, além das duas redes locais.

Confere a tua resposta:

  • Escolho o menor bloco que satisfaz cada LAN, incluindo o router.
  • Alinho os blocos e evito sobreposições.
  • Atribuo um endereço e uma máscara a cada interface.
  • Distingo rotas locais de rotas com próximo salto.
  • Escolho um próximo salto diretamente alcançável.

Erros frequentes

Usar o broadcast numa interface, começar um bloco sem alinhamento ou escolher como próximo salto um endereço da LAN remota que R1 não alcança diretamente.

Voltar à explicação
Resumir sem mudar os destinos

192.0.2.128/27 e 192.0.2.160/27 têm o mesmo próximo salto. Qual o prefixo único que cobre exatamente as duas redes?

A tua resposta

Pista

Dois blocos de 32 endereços formam 64 endereços.

Solução

192.0.2.128/26. A máscara é 255.255.255.192 e o intervalo termina em .191. O mesmo próximo salto é necessário para manter o encaminhamento pretendido.

  • 192.0.2.128/26. Cobre exatamente .128 a .191: dois /27 alinhados e adjacentes.
  • 192.0.2.128/25. Inclui também .192 a .255, fora das duas redes dadas.
  • 192.0.2.128/27. Só cobre a primeira rede, .128 a .159.
Voltar à explicação
Escolher uma rota

Destino 10.2.3.4; rotas /0 por A, 10.0.0.0/8 por B, 10.2.0.0/16 por C. Qual a saída?

A tua resposta

Pista

Não compares métricas entre prefixos diferentes antes de escolher a correspondência.

Solução

Sai por C, longest prefix match.

  • C.. /16 é a correspondência mais longa.
  • B.. Corresponde, mas é menos específica.
  • A.. A rota por omissão perde para as outras correspondências.

Erros frequentes

Escolher a primeira rota da tabela ou a de menor prefixo.

Voltar à explicação
Preencher a tabela de fragmentação

Um datagrama IPv4 tem 4000 bytes, incluindo 20 de cabeçalho sem opções. A MTU é 1500 e DF=0. Faz a tabela dos fragmentos com bytes de dados, comprimento total, offset e MF. Identifica o que a origem deve fazer para voltar a enviar o mesmo conteúdo se DF=1 e receber uma indicação de MTU 1500.

Pista
A MTU inclui o cabeçalho de cada fragmento.
Mais uma pista
O offset mede quantos blocos de oito bytes de dados precedem o fragmento.
Solução

Restam 3980 bytes de dados. Cada fragmento não final pode transportar 8⌊(1500−20)/8⌋=14808\lfloor(1500-20)/8\rfloor=1480 bytes.

FragmentoDadosTotalOffsetMF
11480150001
2148015001851
3102010403700

O terceiro offset é (1480+1480)/8=370(1480+1480)/8=370, sem contar os cabeçalhos. Cada fragmento recebe cabeçalho e conserva a identificação necessária à reconstituição no destino. Com DF=1, o router não pode fragmentar: descarta e informa a origem por ICMP, quando possível. A origem deve enviar pacotes menores compatíveis com a MTU; não basta reenviar os mesmos 4000 bytes sem alteração.

Confere a tua resposta:

  • Desconto o cabeçalho antes de repartir os dados.
  • Uso múltiplos de oito nos fragmentos não finais.
  • Calculo offsets da carga original.
  • Respeito DF e adapto o tamanho na origem.
Voltar à explicação
Encontrar quem pode fragmentar em IPv6

Um router IPv6 recebe um pacote de 2000 bytes que deve sair por uma ligação de MTU 1500. Não há túneis nem outros erros. O que faz?

A tua resposta

Pista

IPv6 separa o papel da origem do papel do router.

Solução

Descarta o pacote e envia ICMPv6 Packet Too Big com a MTU 1500 à origem. Esta pode reduzir o tamanho dos pacotes ou fragmentar na origem. Não há uma fragmentação IPv6 automática em cada router como pode ocorrer em IPv4.

  • Descarta o pacote e envia ICMPv6 Packet Too Big à origem.. O router indica a MTU. A origem pode adaptar o tamanho; o router não fragmenta IPv6.
  • Divide o pacote em fragmentos e reenvia-os.. A fragmentação IPv6 pertence à origem, não aos routers do percurso.
  • Reenvia o pacote inteiro, porque IPv6 não tem checksum de cabeçalho.. A ausência dessa checksum não altera a dimensão máxima da ligação.

Erros frequentes

Aplicar a regra de fragmentação IPv4 a IPv6 ou confundir MTU com checksum.

Voltar à explicação
Traduzir ida e volta

Cliente 10.0.0.5:1234 pede a 203.0.113.7:80 através de NAT com endereço externo 198.51.100.9. A tabela associa 10.0.0.5:1234 a 198.51.100.9:5001. Indica endereços e portas na ida e na resposta.

Pista

A resposta chega ao endereço externo.

Solução

Ida: 10.0.0.5:1234 sai como 198.51.100.9:5001 para 203.0.113.7:80. Volta: 203.0.113.7:80 responde a 198.51.100.9:5001 e o router repõe 10.0.0.5:1234.

Confere a tua resposta:

  • Na ida registo o par privado e escolho porta externa livre.
  • Na volta procuro a associação pela porta externa.
  • Os IP dos extremos mantêm-se fora da tradução NAT.
Voltar à explicação
Reorganizar uma rede depois do crescimento

Adaptação do problema 9 docente. Em 192.0.2.0/24, A tem 72 computadores, B tem 35, C tem 20 e D tem 18. Cada sub-rede precisa também de um gateway. A ocupa .0/25, B .128/26, C .192/27 e D .224/27. D cresce para 34 computadores. Explica por que não pode apenas alargar a sua máscara e propõe uma distribuição dentro do mesmo /24. Podes dividir A em duas sub-redes, reconfigurar hosts e usar encaminhamento entre elas.

Pista
Conta blocos inteiros, não apenas computadores.
Solução

Com uma sub-rede por departamento, seriam precisos 128+64+32+64=288 endereços, mais que os 256 disponíveis. O /26 que contém .224 começa em .192 e sobrepõe-se a C. Alterar só a máscara de D não resolve.

Uma distribuição válida é A1=.0/26 com 60 computadores e um gateway; D=.64/26 com 34 e um gateway; B=.128/26 com 35 e um gateway; C=.192/27 com 20 e um gateway; A2=.224/27 com 12 e um gateway. Cada /26 dá 62 hosts e cada /27 dá 30. Os blocos estão alinhados e não se sobrepõem. A passa a ter duas sub-redes, exigindo endereços, gateways e rotas coerentes com a nova distribuição.

Confere a tua resposta:

  • Alinho os blocos sem sobreposição.
  • Mostro que quatro sub-redes passariam a exigir 288 endereços.
  • Proponho uma divisão de A que cabe no /24.
  • Conto uma interface de gateway por nova sub-rede.
Voltar à explicação

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.