CIDR para faixa de IP

Converta um bloco CIDR na sua faixa de endereços — ou uma faixa nos menores blocos que a cobrem exatamente.

O prefixo diz quantos bits estão fixos. Todos os bits depois dele variam.

Abrange

10.0.0.0 – 10.0.3.255

1.024 endereços no total.

Primeiro endereço

10.0.0.0

Último endereço

10.0.3.255

Total de endereços

1.024

Máscara de sub-rede

255.255.252.0

Utilizáveis para anfitriões

1.022

O primeiro e o último são os endereços de rede e de difusão.

O bloco seguinte começa em

10.0.4.0

Útil ao repartir um bloco maior em atribuições consecutivas.

A regra de alinhamento, que explica tudo o resto

Uma única restrição governa o CIDR: um bloco de 2ⁿ endereços tem de começar num múltiplo de 2ⁿ. Um /24 cobre 256 endereços, portanto só pode começar onde o último octeto é 0. Um /26 cobre 64, portanto só pode começar em .0, .64, .128 ou .192.

Isto não é burocracia. É o que torna o encaminhamento rápido: um encaminhador decide para onde vai um pacote mascarando o destino e comparando, o que são duas ou três instruções. Intervalos arbitrários obrigariam a comparar cada endereço com um limite inferior e um superior, em cada pacote.

A consequência prática é precisamente aquilo para que esta ferramenta existe. Os intervalos escritos por pessoas não respeitam fronteiras de potências de dois, portanto converter um deles para CIDR produz normalmente vários blocos — pequenos em cada extremo irregular, maiores no meio alinhado.

Um exemplo resolvido

De 192.168.1.10 a 192.168.1.20 são onze endereços. Onze não é uma potência de dois, portanto não pode ser um único bloco. A cobertura gulosa avança a partir de .10:

BlocoCobrePorquê esse tamanho
192.168.1.10/31.10 – .11.10 é par, portanto um bloco de 2 endereços começa aí; um de 4 não podia.
192.168.1.12/30.12 – .15.12 é múltiplo de 4.
192.168.1.16/30.16 – .19.16 é múltiplo de 16, mas só restam 5 endereços, portanto 4 é o maior que cabe.
192.168.1.20/32.20Sobra um endereço.

Quatro blocos para onze endereços. Todos os blocos estão inteiramente dentro do intervalo, e nada fora dele foi incluído.

Onde isto aparece

  • Regras de firewall e grupos de segurança. A AWS, a Azure e a GCP exprimem todas os intervalos de origem em CIDR, portanto uma lista de permissões entregue como «10.20.30.40 até 10.20.31.200» tem de ser convertida antes de poder ser introduzida.
  • Instruções de encaminhamento. Uma rota estática precisa de um prefixo, não de um intervalo.
  • Ler um bloco que alguém lhe indicou. Um alojador diz que a sua atribuição é 203.0.113.64/29; a primeira direcção desta ferramenta diz-lhe que isso é .64 a .71, com .65 a .70 atribuíveis.
  • Verificar se dois blocos se sobrepõem. Converta ambos em intervalos e compare os números — muito mais fácil do que raciocinar sobre prefixos.

Notação em que vale a pena ser preciso

10.0.0.5/24 e 10.0.0.0/24 são ambos válidos e querem dizer coisas diferentes. O segundo nomeia uma rede. O primeiro nomeia um anfitrião dentro dessa rede e é assim que se escreve a configuração de uma interface — uma linha a transportar o endereço e o bloco a que pertence. Se colar o primeiro onde se espera uma rede, a maioria das ferramentas mascara-o em silêncio para 10.0.0.0/24, o que costuma ser o que queria e por vezes não é.

0.0.0.0/0 é a internet inteira. É a forma correcta de escrever uma rota predefinida e uma coisa séria para deixar numa regra de firewall de entrada.

Relacionado

Para a decomposição completa de um único bloco — rede, difusão, gama de anfitriões, binário — a ferramenta é a calculadora de sub-redes. Para converter entre /24 e 255.255.255.0, há um conversor dedicado com a tabela toda.

Perguntas sobre CIDR

Porque é que o meu intervalo precisa de vários blocos CIDR em vez de um?

Porque os blocos CIDR têm de estar alinhados: um bloco de 2ⁿ endereços tem de começar num múltiplo de 2ⁿ. De 192.168.1.10 a 192.168.4.200 são 959 endereços, mas o intervalo começa em .10 e não numa fronteira de potência de dois, e termina a meio de um bloco, por isso é coberto por blocos cada vez maiores a partir de cada extremo. O menor bloco único que contém tudo é um /21 com 2048 endereços — 1089 dos quais não pediu.

Não bastava arredondar para um bloco maior?

Ficaria mais arrumado e costuma ser a resposta errada. Converte-se um intervalo para CIDR quase sempre para escrever uma regra de firewall, um grupo de segurança ou uma entrada de encaminhamento, e arredondar para cima concede em silêncio acesso a endereços que ninguém tencionava incluir. Esta ferramenta produz uma cobertura exacta: todos os endereços do resultado estão dentro do seu intervalo, e todos os endereços do seu intervalo estão no resultado.

O que significa o número depois da barra?

Quantos bits, a contar da esquerda, estão fixos. Um /24 fixa vinte e quatro dos trinta e dois bits e deixa oito livres, ou seja 256 endereços. Cada incremento reduz o bloco a metade: /25 são 128 endereços, /26 são 64. Ao contrário: subtraia o prefixo a 32 e eleve 2 a essa potência.

10.0.0.5/24 é um bloco CIDR válido?

A notação é válida e aparece a toda a hora, mas não descreve um bloco que comece em .5 — descreve o anfitrião 10.0.0.5 dentro do bloco 10.0.0.0/24. As configurações de interface escrevem-se assim de propósito, porque uma linha passa a transportar o endereço e a rede a que ele pertence. Se quer dizer um bloco, a parte do endereço tem de ser o endereço de rede.

Qual é o tamanho de um /0?

Todo o espaço de endereçamento IPv4, os 4 294 967 296 endereços. Não fixa bit nenhum. Vai encontrá-lo como rota predefinida: 0.0.0.0/0 quer dizer «tudo», e é por isso que é a entrada de último recurso numa tabela de encaminhamento e por isso que é perigoso escrevê-lo por engano numa regra de firewall.

Última revisão . Encontrou algo desactualizado? Diga-nos.