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:
| Bloco | Cobre | Porquê 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 | .20 | Sobra 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.
