taap.digitalferramentas para engenharia de redes

Guia prático

Faixa de IP para CIDR: liberar um fornecedor no firewall

"Libere de 203.0.113.10 até 203.0.113.100." O pedido chega por e-mail e o firewall só aceita objetos em CIDR. Arredondar para um /24 resolve em um minuto e abre o firewall para mais endereços do que foi pedido. Fizemos a conversão exata, bloco por bloco.

Cadeado dourado apoiado sobre o teclado de um notebook
Cada bloco CIDR a mais no firewall é uma porta aberta para endereços que ninguém pediu. Foto: Towfiqu barbhuiya / Unsplash

O caso: três fornecedores pediram liberação no firewall da empresa, cada um com uma faixa de endereços. O firewall só aceita objetos de rede em notação CIDR. Os endereços do guia são dos blocos reservados para documentação pela RFC 5737; troque pelos que o fornecedor informou.

Resposta curta: a faixa de 203.0.113.10 a 203.0.113.100 tem 91 endereços e vira 7 blocos CIDR, do /32 ao /27. Arredondar para 203.0.113.0/24 liberaria 165 endereços a mais. A segunda faixa fecha em um bloco só, 198.51.100.64/26. A terceira atravessa o limite de um /24 e vira 4 blocos.

1. Por que faixa e CIDR não são a mesma coisa

Uma faixa é qualquer intervalo de endereços, do primeiro ao último. Um bloco CIDR é mais restrito. Pela RFC 4632, ele tem tamanho de potência de 2 (1, 2, 4, 8… endereços) e começa em um endereço múltiplo do próprio tamanho. Um /27, por exemplo, tem 32 endereços e só pode começar em .0, .32, .64, .96, .128, .160, .192 ou .224.

Uma faixa só vira um bloco único quando, por coincidência ou por planejamento, ela respeita as duas regras. Quando não respeita, o caminho exato é decompor a faixa no menor conjunto de blocos alinhados.

A ferramenta faixa de IP para CIDR faz essa decomposição. O método é simples de repetir à mão:

  1. Comece no primeiro endereço da faixa.
  2. Escolha o maior bloco que começa ali (alinhado) e não passa do fim da faixa.
  3. Anote o bloco e recomece no endereço seguinte ao fim dele.
  4. Repita até cobrir o último endereço.

2. Fornecedor A: 203.0.113.10 a 203.0.113.100

São 91 endereços (100 − 10 + 1). Aplicando o método:

Bloco Faixa Endereços Por que não cresceu
203.0.113.10/31 203.0.113.10 – 203.0.113.11 2 o bloco do dobro não estaria alinhado
203.0.113.12/30 203.0.113.12 – 203.0.113.15 4 o bloco do dobro não estaria alinhado
203.0.113.16/28 203.0.113.16 – 203.0.113.31 16 o bloco do dobro não estaria alinhado
203.0.113.32/27 203.0.113.32 – 203.0.113.63 32 o bloco do dobro não estaria alinhado
203.0.113.64/27 203.0.113.64 – 203.0.113.95 32 o bloco do dobro passaria do fim da faixa
203.0.113.96/30 203.0.113.96 – 203.0.113.99 4 o bloco do dobro passaria do fim da faixa
203.0.113.100/32 203.0.113.100 – 203.0.113.100 1 o bloco do dobro passaria do fim da faixa

A soma dos blocos dá 91 endereços, exatamente a faixa. Nenhum endereço a mais, nenhum a menos.

Veja o primeiro passo. O endereço .10 é par, então um /31 (2 endereços) começa ali; um /30 (4 endereços) precisaria começar em múltiplo de 4, e 10 não é. O bloco seguinte começa em .12, que é múltiplo de 4, e assim por diante: os blocos crescem enquanto o alinhamento permite e diminuem perto do fim da faixa.

3. A tentação do arredondamento

7 objetos no firewall parecem trabalho demais para um fornecedor. As duas saídas rápidas têm custo:

Atalho Bloco Endereços liberados A mais que a faixa
Arredondar para o /24 203.0.113.0/24 256 165
Menor bloco que cobre a faixa 203.0.113.0/25 128 37
Decomposição exata 7 blocos 91 0

O menor bloco único que cobre a faixa é calculado como na sumarização de rotas: os bits em comum entre o primeiro e o último endereço. Ele libera 37 endereços que o fornecedor não pediu, e você não sabe de quem eles são.

A decisão de aceitar uma sobra é de quem responde pela segurança, não de quem configura. Se for aceitar, registre o motivo no objeto do firewall.

Cidade à noite com muitos prédios iluminados
Fornecedores ficam espalhados pela internet; o firewall precisa reconhecer cada um pelo endereço certo. Foto: Clark Gu / Unsplash

4. Fornecedor B: a faixa que fecha

O segundo fornecedor pediu 198.51.100.64 a 198.51.100.127. São 64 endereços, uma potência de 2, e o primeiro (.64) é múltiplo de 64. A faixa é exatamente um bloco: 198.51.100.64/26.

Quando a faixa vem assim, é sinal de que o fornecedor pensou em blocos. Vale pedir que ele informe sempre em CIDR: o e-mail fica mais curto e o risco de erro na conversão some.

5. Fornecedor C: a faixa que atravessa o /24

O terceiro pedido é 198.51.100.250 a 198.51.101.5. Ele passa do fim de um /24 para o começo do seguinte. São 12 endereços, e a decomposição dá:

Bloco Faixa Endereços
198.51.100.250/31 198.51.100.250 – 198.51.100.251 2
198.51.100.252/30 198.51.100.252 – 198.51.100.255 4
198.51.101.0/30 198.51.101.0 – 198.51.101.3 4
198.51.101.4/31 198.51.101.4 – 198.51.101.5 2

Aqui o arredondamento é ainda pior. O menor bloco único que cobre os 12 endereços é 198.51.100.0/23, com 512 endereços: a faixa cruza um limite alto na hierarquia dos bits, e o bloco que a contém precisa ser grande. Liberar isso seria abrir o firewall para 500 endereços de terceiros.

6. Quantos blocos uma faixa pode gerar

O número de blocos não depende do tamanho da faixa, e sim de quão "torta" ela é em relação aos limites de potência de 2. Três faixas de tamanho parecido mostram isso:

Faixa Endereços Blocos
192.0.2.0 – 192.0.2.255 256 1
192.0.2.1 – 192.0.2.254 254 14
192.0.2.0 – 192.0.2.199 200 3

A segunda linha corresponde a um pedido do tipo "libere o /24 inteiro, menos o endereço de rede e o de broadcast". Tirar só dois endereços das pontas faz a faixa virar 14 blocos, do /26 ao /32, porque cada ponta precisa ser "desmontada" bit a bit. Nesse caso, vale perguntar ao fornecedor se ele quer mesmo excluir esses dois endereços; para o firewall, liberar o /24 inteiro pode ser exatamente o pedido.

No extremo, a faixa de 0.0.0.1 a 255.255.255.254, que é quase todo o espaço IPv4, vira 62 blocos. A regra prática: cada ponta da faixa que não cai em um limite alinhado acrescenta até um bloco por bit.

7. Organizando no firewall

Com a lista exata em mãos, a organização evita que as regras virem uma colcha de retalhos:

  • Um grupo de objetos por fornecedor. Os 7 blocos do fornecedor A entram em um grupo com o nome dele, e a regra aponta para o grupo. Quando a faixa mudar, você edita o grupo, não a regra.
  • Descrição com a origem. Anote no grupo de onde veio a faixa (e-mail, contrato, página do fornecedor) e a data.
  • Revisão periódica. Faixas de fornecedores mudam. Um grupo que ninguém revisa acumula endereços que já não são do fornecedor.

Se o fornecedor publica a lista de endereços em uma página oficial, use essa lista como fonte e não um e-mail antigo.

8. Conferindo de trás para frente

Depois de cadastrar os blocos, confira se eles cobrem exatamente a faixa. Duas verificações bastam:

  1. O primeiro endereço do primeiro bloco é o início da faixa (203.0.113.10), e o último endereço do último bloco é o fim (203.0.113.100).
  2. Os blocos se encostam: o fim de cada um é imediatamente anterior ao início do próximo, e a soma dos tamanhos é igual ao número de endereços da faixa (91).

Se as duas passarem, não há buraco nem sobra.

Um exemplo de conferência

Para o fornecedor C, os blocos começam em 198.51.100.250 e terminam em 198.51.101.5, exatamente as pontas pedidas. Somando os tamanhos, 2 + 4 + 4 + 2 = 12, o mesmo número de endereços da faixa. A passagem de um /24 para o outro fica entre 198.51.100.255 e 198.51.101.0, sem buraco.

9. Roteiro para o próximo pedido

  1. Peça a faixa por escrito e, se possível, já em CIDR.
  2. Decomponha a faixa em blocos alinhados.
  3. Compare com o menor bloco único e anote a sobra que ele traria.
  4. Cadastre os blocos em um grupo com o nome do fornecedor.
  5. Confira início, fim e soma dos blocos.

Perguntas frequentes

Por que a ferramenta não junta tudo em um bloco só?

Porque ela procura o menor conjunto de blocos que cobre a faixa sem passar dela. Juntar em um bloco único quase sempre inclui endereços de fora. Para ver qual seria esse bloco único e quanto ele sobra, use a sumarização de rotas com o primeiro e o último endereço.

Como saber de cabeça se uma faixa vira um bloco só?

Duas condições: o número de endereços (fim − início + 1) é potência de 2, e o primeiro endereço é múltiplo desse número. A faixa do fornecedor B passa nas duas: 64 endereços, começando em .64. A do fornecedor A falha na primeira: 91 não é potência de 2.

E se o fornecedor mandar uma lista de endereços soltos?

Cadastre cada um como /32, ou passe pela ferramenta os trechos que formam sequência. Endereços isolados não ganham nada com CIDR.

A ordem dos blocos no grupo importa?

Para a decisão do firewall, não: um endereço casa com um único bloco da decomposição, porque os blocos não se sobrepõem. Para quem lê, sim. Cadastre os blocos na ordem dos endereços, do primeiro ao último, para que a conferência de início, fim e soma fique fácil.

Posso usar a wildcard em vez de CIDR?

Depende do equipamento. Em ACLs no estilo Cisco IOS, cada bloco vira uma linha com a wildcard correspondente. O guia wildcard em ACL para uma faixa de filiais mostra a conversão.

Os endereços 203.0.113.x existem de verdade?

O bloco 203.0.113.0/24 é reservado pela RFC 5737 para documentação e exemplos, assim como 192.0.2.0/24 e 198.51.100.0/24. A RFC recomenda que esses endereços não apareçam na internet pública. Use-os em manuais e laboratórios, nunca como endereço real de fornecedor.

range2cidrFaça a conta com os seus númerosTransforme um intervalo início–fim na menor lista de prefixos CIDR exatos.
Abrir Faixa → CIDR com este caso →

Fontes e referências

Conferimos cada afirmação técnica nas fontes acima. Os números foram calculados com as mesmas fórmulas das ferramentas do site. Veja a metodologia e a lista completa de fontes.

Outros guias