Calculadora CIDR / de sub-redes
Calcula o endereço de rede, o intervalo de anfitriões, as máscaras e o número de endereços de qualquer bloco IPv4 ou IPv6, e divide-o em sub-redes iguais.
| Rede | 192.168.1.0/24 |
|---|---|
| Endereço de rede | 192.168.1.0 |
| Endereço de difusão | 192.168.1.255 |
| Intervalo utilizável | 192.168.1.1 – 192.168.1.254 |
| Endereços utilizáveis | 254 |
| Endereços no total | 256 |
| Máscara de sub-rede | 255.255.255.0 |
| Máscara wildcard | 0.0.0.255 |
O que esta ferramenta faz
Um bloco CIDR como 192.168.1.0/24 é uma forma compacta de dar nome a um intervalo de endereços. Esta ferramenta pega num deles e responde às perguntas que daí decorrem: onde o intervalo começa e acaba, quantos endereços contém, quantos deles podem ser atribuídos a uma máquina, qual o aspeto da máscara de sub-rede, se um endereço concreto lá cai e o que se obtém ao cortá-lo em pedaços mais pequenos.
Lida com IPv4 e IPv6, e aceita um endereço de anfitrião com a mesma facilidade que um endereço de rede: cole 192.168.1.57/24 tirado diretamente do ip addr e ela dirá em que bloco esse endereço vive. É tudo aritmética feita no seu navegador: sem consultas, sem servidor, e funciona com a rede desligada.
O que significa o número depois da barra
Um endereço IPv4 tem 32 bits. O número depois da barra — o comprimento do prefixo — diz quantos desses bits identificam a rede; os restantes identificam um anfitrião dentro dela. Um /24 fixa os primeiros 24 bits e deixa 8 livres, e é por isso que contém 2^8 = 256 endereços.
192.168.1.0 # o endereço 11000000.10101000.00000001.00000000 # os seus 32 bits 11111111.11111111.11111111.00000000 # a máscara /24: 24 uns, 8 zeros
Onde a máscara tem um um, o bit pertence à rede e é fixo para todos os endereços do bloco; onde tem um zero, o bit é livre e identifica um anfitrião. Cada bit de prefixo a mais reduz o bloco a metade. Essa relação é toda a subnetting, e vale a pena interiorizá-la em vez de decorar uma tabela:
- /24 — 256 endereços, 254 utilizáveis. A clássica rede pequena.
- /25 — 128 endereços, 126 utilizáveis. Meio /24.
- /26 — 64 endereços, 62 utilizáveis.
- /30 — 4 endereços, 2 utilizáveis. A tradicional ligação ponto a ponto.
- /16 — 65 536 endereços. Um /24 duzentas e cinquenta e seis vezes.
Porque faltam dois endereços
Um /24 contém 256 endereços mas apenas 254 utilizáveis, porque o IPv4 gasta dois. O primeiro endereço do bloco é o endereço de rede, que dá nome ao próprio bloco e não é atribuído a nenhuma interface. O último é o endereço de difusão, que alcança todos os anfitriões da ligação de uma só vez. É daí que vem o familiar 2^n − 2.
Dois prefixos quebram essa fórmula, e a maioria das calculadoras erra em pelo menos um deles:
- Um /31 tem dois endereços e a fórmula diz zero utilizáveis. O RFC 3021 define o /31 para ligações ponto a ponto, onde não é preciso endereço de difusão e ambos os endereços são atribuídos — um a cada extremidade. A resposta certa é 2.
- Um /32 é um único endereço e a fórmula diz −1. Um /32 nomeia exatamente um anfitrião; é o que se escreve para um servidor isolado numa regra de firewall ou numa rota.
Esta ferramenta segue o RFC 3021 e devolve 2 e 1 nesses casos. Se outra calculadora lhe disser que um /31 não tem endereços utilizáveis, é a fórmula do manual aplicada para lá do ponto em que se sustenta.
A máscara de sub-rede e a máscara wildcard
A máscara de sub-rede é a mesma informação que o comprimento do prefixo, escrita em quatro octetos: os bits de rede são uns e os de anfitrião zeros. /24 é 255.255.255.0. Os formatos de configuração antigos querem a máscara, os mais recentes querem o prefixo, e são intercambiáveis.
A máscara wildcard é a máscara de sub-rede invertida — 0.0.0.255 para um /24. As listas de acesso da Cisco e as instruções network do OSPF escrevem-se com ela, e a inversão engana com frequência suficiente para valer a pena dizê-lo com clareza: numa máscara wildcard, um bit a zero significa «tem de coincidir» e um bit a um significa «não interessa», ou seja, o contrário de uma máscara de sub-rede.
O IPv6 é a mesma ideia com menos exceções
Os endereços IPv6 têm 128 bits em vez de 32, e o prefixo funciona de forma idêntica — um /64 fixa os primeiros 64 bits. A aritmética é a mesma; o que muda é que desaparecem duas complicações do IPv4.
- Não há endereço de difusão. O IPv6 substituiu a difusão por multidifusão, por isso nada fica reservado no fim de um prefixo.
- Também nada fica reservado no início, pelo que todo endereço do bloco é atribuível e a contagem de utilizáveis é igual ao total. (O endereço só de zeros de uma sub-rede é o endereço anycast do encaminhador de sub-rede, uma convenção de encaminhamento e não um buraco no intervalo.)
- Não há máscara de sub-rede em notação por pontos. O IPv6 escreve-se sempre como comprimento de prefixo; uma máscara de 128 bits em texto seria ilegível e ninguém a pede.
Um /64 é o tamanho padrão para uma única ligação, porque a autoconfiguração de endereços sem estado espera 64 bits de anfitrião. A um sítio é normalmente atribuído um /48 ou um /56, depois dividido em /64 — um por VLAN ou segmento. É por isso que esta ferramenta divide de bom grado um /48 em /64 e lhe diz que há 65 536 deles.
As contagens de endereços crescem depressa, por isso são mostradas como potência de dois e como número completo: um /32 contém 2^96 endereços, ou seja 79 228 162 514 264 337 593 543 950 336. A potência é o que se lê; os dígitos são o que se copia.
Escrever endereços IPv6 na forma canónica
Um mesmo endereço IPv6 pode ser escrito de muitas maneiras, o que torna pouco fiável comparar dois a olho. O RFC 5952 define uma única forma textual canónica, e é essa que esta ferramenta produz:
- Hexadecimal em minúsculas e sem zeros à esquerda dentro de um grupo — 2001:0db8 passa a 2001:db8.
- A sequência mais longa de grupos a zero é substituída por ::, e só a mais longa. Em caso de empate ganha a mais à esquerda.
- Um grupo de zeros isolado nunca é comprimido, porque :: não pouparia nada e criaria uma segunda grafia.
A forma expandida é mostrada ao lado, com cada grupo preenchido até quatro dígitos. Essa não é canónica, mas é a que se alinha em coluna quando se compara uma lista de endereços.
Dividir um bloco
Cortar uma rede em várias iguais é a operação pela qual se costuma recorrer a uma calculadora de sub-redes. Cada bit de prefixo a mais duplica o número de sub-redes e reduz o seu tamanho a metade: um /24 passa a dois /25, quatro /26, oito /27, e assim por diante.
192.168.1.0/24 -> /26 192.168.1.0/26 # endereços 0-63 192.168.1.64/26 # endereços 64-127 192.168.1.128/26 # endereços 128-191 192.168.1.192/26 # endereços 192-255
As sub-redes ladrilham o bloco pai exatamente — sem falhas nem sobreposições — uma propriedade que vale a pena verificar quando se reparte espaço de endereçamento à mão. Note que os números crescem depressa: um /8 dividido em /24 dá 65 536 redes, por isso a lista aqui é limitada e o total real é indicado ao lado, em vez de truncar a resposta em silêncio.
Intervalos com um significado particular
Alguns blocos estão reservados para um fim concreto, e uma rede que fique dentro de um deles é etiquetada aqui. Os que aparecem mais:
- Privados (RFC 1918) — 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16. Encaminháveis dentro de uma organização, nunca na internet pública.
- Loopback — 127.0.0.0/8 em IPv4 e ::1 em IPv6. Tráfego que nunca sai do anfitrião.
- Ligação local — 169.254.0.0/16 e fe80::/10. Autoatribuídos, válidos apenas numa ligação. Um endereço IPv4 neste intervalo costuma significar que o DHCP falhou.
- NAT de operadora — 100.64.0.0/10. Usado entre um assinante e o seu ISP; vê-lo na sua própria rede indica um NAT do lado do ISP.
- Documentação — 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 e 2001:db8::/32. Reservados para exemplos, e é por isso que aparecem ao longo desta página.
- Únicas locais — fc00::/7. O equivalente IPv6 ao espaço privado do RFC 1918.
A etiqueta só é aplicada quando todo o bloco fica dentro do intervalo especial, não quando apenas se sobrepõe a ele. Um 0.0.0.0/0 abrange todos os intervalos privados existentes mas não é privado em si, e dizer o contrário seria pior do que não dizer nada.
Perguntas frequentes
- Quantos anfitriões utilizáveis há num /24?
- 254. O bloco contém 256 endereços; o primeiro é o endereço de rede e o último o de difusão, e nenhum pode ser atribuído a uma interface. A mesma subtração dá 126 para um /25, 62 para um /26 e 2 para um /30.
- Porque é que aqui um /31 tem dois endereços utilizáveis se outras calculadoras dizem nenhum?
- Porque o RFC 3021 define o /31 para ligações ponto a ponto, onde um endereço de difusão não serve para nada e ambos os endereços são atribuídos, um a cada extremidade da ligação. As calculadoras que devolvem zero aplicam a fórmula 2^n − 2 para lá do intervalo em que se sustenta.
- Qual é a diferença entre máscara de sub-rede e máscara wildcard?
- São inversas uma da outra. Uma máscara de sub-rede tem uns nos bits de rede (255.255.255.0 para um /24); uma wildcard tem zeros aí (0.0.0.255). Numa máscara wildcard um zero significa que o bit tem de coincidir e um um que é ignorado, ao contrário da intuição que uma máscara de sub-rede constrói.
- Posso colar um endereço que não seja o de rede?
- Sim, e é o caso comum. Dê-lhe 192.168.1.57/24 e ela mostrará que a rede é 192.168.1.0/24, assinalando que o endereço que escreveu é um anfitrião lá dentro. É exatamente o que o ip addr ou o ipconfig devolvem, por isso não é preciso editar nada antes.
- Porque é que o IPv6 não mostra endereço de difusão nem máscara de sub-rede?
- Porque nenhum dos dois existe. O IPv6 abandonou a difusão a favor da multidifusão, por isso nada fica reservado no fim de um prefixo, e escreve-se sempre com um comprimento de prefixo em vez de uma máscara por pontos. Todo endereço de um bloco IPv6 é atribuível, e é por isso que a contagem de utilizáveis coincide com o total.
- Que tamanho deve ter um prefixo de sub-rede IPv6?
- Um /64, em quase todos os casos. A autoconfiguração de endereços sem estado pressupõe 64 bits de anfitrião, por isso um prefixo menor parte-a numa ligação normal. Aos sítios é normalmente atribuído um /48 ou um /56 que dividem em /64, um por segmento — há 65 536 num /48, por isso não é preciso poupar.
- Algo do que introduzo é enviado para um servidor?
- Não. É tudo aritmética a correr no seu navegador: nada é consultado, carregado ou registado. É também por isso que continua a funcionar sem qualquer ligação à rede.