Também disponível em: English · Español · Français · العربية
Calculadora de sub-redes IP: IPv4 e IPv6
Introduza um endereço e um prefixo e obtenha de imediato a rede, a máscara, o intervalo de anfitriões utilizáveis e todos os detalhes da sub-rede, em IPv4 ou IPv6.
O que é uma calculadora de sub-redes?
Uma calculadora de sub-redes pega num endereço IP e num prefixo — por exemplo, 192.168.1.10/24 — e devolve tudo o que esse par descreve sobre a rede: onde começa e acaba o bloco, quantos endereços contém, quais ficam disponíveis para atribuir a máquinas e como se escreve a máscara correspondente. O prefixo, o número depois da barra na notação CIDR (Classless Inter-Domain Routing), diz quantos dos bits iniciais do endereço identificam a rede; os bits restantes identificam o anfitrião dentro dela. Um /24 reserva os primeiros 24 bits para a rede e deixa 8 para anfitriões, o que dá 256 endereços no total.
Esta calculadora de sub-redes IP funciona tanto com IPv4 como com IPv6, detetando automaticamente qual dos dois foi introduzido pela forma do endereço. Isso importa porque as duas famílias de protocolo seguem regras diferentes para o mesmo cálculo: o IPv4 tem 32 bits e reserva um endereço de difusão no topo de cada bloco, enquanto o IPv6 tem 128 bits, não tem difusão e reserva o seu próprio endereço especial no fundo do bloco. Uma ferramenta que aplique cegamente a mesma fórmula às duas dá respostas erradas num dos dois casos, e é exatamente isso que a secção sobre anfitriões utilizáveis mais abaixo desmonta.
Para quem administra redes, prepara um exame de certificação ou simplesmente precisa de confirmar quantos anfitriões cabem antes de dividir um bloco, a calculadora poupa o cálculo binário manual: introduza o endereço, leia os resultados e, se precisar de blocos mais pequenos, use a secção de divisão em sub-redes mais abaixo para os ver já listados.
Como calcular uma sub-rede em três passos
- Escreva o endereço IP no campo de texto. Pode introduzir 192.168.1.10/24, um endereço seguido da máscara separada por um espaço, ou apenas o endereço sozinho — não há botão de calcular nem ficheiro a carregar, os resultados atualizam-se a cada tecla.
- Confirme ou ajuste o prefixo na lista pendente. O menu de comprimento de prefixo, de 0 a 32 em IPv4 e de 0 a 128 em IPv6, mantém-se sincronizado com o campo de texto nos dois sentidos, e os botões de exemplo de um clique preenchem casos típicos para explorar sem escrever nada.
- Leia o painel de resultados e experimente dividir a sub-rede. Ali aparece desde o endereço de rede até à máscara em binário e à forma expandida em IPv6; na secção de divisão em sub-redes menores, escolha um prefixo mais longo para listar as sub-redes resultantes, e use copiar ou limpar quando terminar.
As exceções ao «subtrair dois» que a maioria das calculadoras erra
A regra que qualquer curso de redes ensina — endereços utilizáveis igual ao total menos dois, um para a rede e outro para a difusão — tem três exceções reais, e é aqui que esta calculadora se distingue da maioria. A primeira é a /31 em IPv4. A RFC 3021, de dezembro de 2000, determina que os dois endereços de um bloco /31 devem ser interpretados como endereços de anfitrião, e que um prefixo de 31 bits elimina a necessidade de difusão dirigida nessa ligação. Uma /31 tem por isso dois anfitriões utilizáveis e nenhum endereço de difusão; existe precisamente para poupar endereços em ligações router-a-router, onde uma /30 desperdiçaria metade dos seus quatro endereços.
A segunda exceção não é bem uma exceção — é uma regra diferente. Em IPv6 subtrai-se um endereço utilizável, não dois, e por um motivo que nada tem a ver com o IPv4. A RFC 4291 é explícita: não existem endereços de difusão em IPv6, a sua função foi substituída pelos endereços multicast. Não há, portanto, nada a excluir no topo do intervalo. O que se exclui está no fundo: a secção 2.6.1 da mesma RFC define o identificador de interface com todos os bits a zero como o endereço anycast de router de sub-rede, que todos os routers da ligação são obrigados a suportar. Uma /64, por exemplo, tem 18.446.744.073.709.551.616 endereços totais e 18.446.744.073.709.551.615 utilizáveis — o total menos um, não menos dois.
A terceira exceção é a /127, o equivalente em IPv6 da /31 em IPv4. A RFC 6164, de abril de 2011, obriga os routers a suportar prefixos /127 em ligações ponto a ponto entre routers e a desativar aí o anycast de router de sub-rede. Sem esse endereço reservado, os dois endereços do bloco ficam livres para uso, tal como acontece na /31.
Por fim, uma /32 em IPv4 ou uma /128 em IPv6 não é uma sub-rede — é um único endereço de anfitrião, sem bits sobrando para dividir uma rede em anfitriões. Usa-se em rotas de anfitrião e para atribuir um endereço isolado, por exemplo numa interface loopback, e a calculadora mostra um único endereço utilizável nesse caso, sem intervalo de rede à volta.
O que mais a calculadora mostra, e os seus limites assumidos
O painel também mostra a classe histórica do endereço — A, B ou C — porque ainda se ensina e ainda se procura, não porque tenha qualquer efeito no cálculo. A RFC 4632, de agosto de 2006, regista a decisão de abandonar o sistema de classes A/B/C em favor de prefixos sem classe, uma mudança que já tinha acontecido na prática em 1993. A letra da classe é apenas informativa; é o comprimento do prefixo que decide onde termina a rede, nunca a classe.
A validação do endereço é deliberadamente rigorosa. Um octeto com um zero à esquerda, como em 192.168.001.1, é rejeitado em vez de interpretado à sorte, porque alguns sistemas leem um zero inicial como indicação de base octal — o mesmo texto pode então significar dois endereços diferentes consoante quem o lê. Pelo mesmo motivo, uma máscara tem de ser uma sequência contínua de uns seguida de zeros; algo como 255.255.0.255 é recusado por não corresponder a nenhuma máscara válida.
Sempre que o endereço cai num bloco com significado especial, a calculadora identifica-o pelo nome atribuído nos registos de endereços de finalidade especial da IANA: uso privado (RFC 1918), NAT de operador em 100.64.0.0/10 (RFC 6598), loopback, link local (RFC 3927), os intervalos reservados para documentação (RFC 5737 em IPv4, RFC 3849 em IPv6), multicast e os endereços unicast locais únicos em IPv6 (RFC 4193).
O motor de cálculo foi verificado contra o módulo ipaddress da biblioteca padrão do Python, usado como oráculo independente: 23.758 verificações passam, cobrindo 1.689 casos de rede em todos os 33 comprimentos de prefixo IPv4 e todos os 129 em IPv6 (325 deles com o intervalo de anfitriões inteiro enumerado pelo Python e comparado endereço a endereço), 4.000 casos de formatação de texto em IPv6 contra a formatação do próprio Python, e 1.800 casos de validação de entradas. A divisão em sub-redes é verificada com uma asserção de cobertura exata: as sub-redes resultantes são contíguas, não se sobrepõem, começam exatamente onde começa a rede original e terminam exatamente no seu último endereço. Três sabotagens deliberadas do motor foram confirmadas a fazer falhar a bateria de testes, pelo que o resultado positivo não é vazio.
Porque é gratuita?
Todo o cálculo acontece no seu navegador, em JavaScript — introduzir um endereço não envia nada para um servidor, não há ficheiro a carregar nem resultado a transmitir. Sem custo de servidor por pedido, não há motivo para pedir conta, cobrar assinatura ou limitar quantas vezes a usa.
Por isso a ferramenta não tem registo, marca de água nem limite de utilização: funciona da mesma forma da primeira à centésima vez que a usar.