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.