Calculadora de sub-redes IP: CIDR, máscara e hosts
Calcule os detalhes de uma sub-rede IPv4 a partir de um endereço e de um prefixo CIDR: endereço de rede e de broadcast, faixa de hosts utilizáveis, máscara de sub-rede e máscara curinga.
IP Subnet Calculator
Results
Subnet Mask in Binary
Results follow RFC 791 (IPv4 addressing), RFC 4632 (CIDR notation), RFC 950 with RFC 919 and RFC 922 (network and broadcast reservation), and RFC 3021 (/31 point-to-point links).
Documentação
Calculadora de sub-redes IP
Uma calculadora de sub-redes IP determina os detalhes de rede por trás de um endereço IPv4 e de um comprimento de prefixo. A partir dessas duas entradas, ela encontra o endereço de rede, o endereço de broadcast, o intervalo de endereços de host utilizáveis, a máscara de sub-rede e a máscara curinga.
O que a calculadora faz
A ferramenta aceita um endereço IPv4 escrito como quatro números separados por pontos, como 192.168.1.10, e um comprimento de prefixo de 0 a 32. Também funciona escrever os dois juntos no formato CIDR, como 192.168.1.10/24: a parte /24 é transferida automaticamente para o campo de prefixo.
A calculadora retorna:
- Notação CIDR: a rede no formato endereço/prefixo, como 192.168.1.0/24.
- Endereço de rede: o primeiro endereço do bloco. Ele identifica a própria rede.
- Endereço de broadcast: o último endereço do bloco. Uma mensagem enviada a ele chega a todos os hosts da sub-rede.
- Intervalo de hosts utilizáveis: o primeiro e o último endereço que um dispositivo pode realmente usar.
- Hosts utilizáveis e endereços totais: quantos endereços o bloco contém e quantos estão disponíveis para dispositivos.
- Máscara de sub-rede e máscara curinga: a máscara no formato pontuado, como 255.255.255.0, e sua inversa, 0,0.0,255.
- A máscara de sub-rede representada bit a bit, com oito bits por octeto.
Os resultados seguem a RFC 791 (endereçamento IPv4), a RFC 4632 (notação CIDR), a RFC 950 com as RFCs 919 e 922 (as reservas de rede e broadcast) e a RFC 3021 (links ponto a ponto /31).
Como funciona a criação de sub-redes
Um endereço IPv4 é um número de 32 bits. Ele é escrito como quatro octetos, cada um com 8 bits e um valor de 0 a 255. O comprimento do prefixo divide esses 32 bits em duas partes. Os primeiros bits, em quantidade indicada pelo prefixo, identificam a rede. Os bits restantes identificam um host dentro dessa rede.
Uma rede /24 mantém 24 bits para a parte da rede e deixa 8 bits para os hosts. Oito bits de host fornecem 2⁸ = 256 endereços. Uma rede /26 deixa apenas 6 bits de host, portanto contém 2⁶ = 64 endereços.
A máscara de sub-rede representa a mesma divisão que um endereço: um bit 1 para cada bit de rede e um bit 0 para cada bit de host. Para /24, isso corresponde a 255,255.255,0. A máscara curinga inverte todos os bits da máscara de sub-rede. As listas de acesso de roteadores, especialmente em equipamentos Cisco, correspondem a endereços usando máscaras curingas, por isso a ferramenta exibe as duas.
A fórmula da sub-rede
Para um comprimento de prefixo p entre 0 e 30, a calculadora aplica estas regras, definidas pela RFC 950 e pela RFC 4632:
- Máscara de sub-rede = os p bits mais significativos da palavra de 32 bits definidos como 1.
- Endereço de rede = endereço IP E máscara de sub-rede (um E bit a bit mantém um bit somente quando ambas as entradas têm 1).
- Endereço de broadcast = endereço de rede OU máscara curinga (cada bit de host definido como 1).
- Endereços totais = 2⁽³²⁻ᵖ⁾.
- Hosts utilizáveis = 2⁽³²⁻ᵖ⁾ − 2. A subtração remove o endereço de rede e o endereço de broadcast, reservados pela RFC 950 e pela RFC 919.
- Primeiro host utilizável = endereço de rede + 1. Último host utilizável = endereço de broadcast − 1.
Dois comprimentos de prefixo seguem regras diferentes. Uma /31 contém exatamente 2 endereços, e a RFC 3021 torna ambos hosts utilizáveis em um link ponto a ponto, sem endereço de broadcast. Uma /32 identifica um único endereço: 1 no total, 1 utilizável e sem broadcast. Nesses dois casos, a ferramenta chama o primeiro endereço de “Base do prefixo”, em vez de “Endereço de rede”, pois nenhum dos dois blocos reserva um endereço para identificar a rede.
Todo resultado vem da aritmética sobre um único número de 32 bits. A ferramenta nunca lista os endereços um a um, portanto uma /0 que cobre todos os 4.294.967.296 endereços IPv4 é calculada tão rapidamente quanto uma /32.
Exemplo prático
Para o endereço 10.128.7.33 com comprimento de prefixo /26:
- Máscara de sub-rede: 26 bits 1 seguidos por 6 bits 0 formam 11111111,11111111.11111111,11000000, que corresponde a 255,255.255,192.
- Endereço de rede: faça E entre o endereço e a máscara. Os três primeiros octetos permanecem inalterados. No último octeto, 33 é 00100001 em binário; o E com 11000000 resulta em 00000000, que é 0. O endereço de rede é 10.128.7.0, portanto a notação CIDR é 10.128.7.0/26.
- Endereço de broadcast: defina todos os 6 bits de host como 1. O último octeto se torna 00111111, que é 63. O endereço de broadcast é 10,128.7,63.
- Contagens: 2⁶ = 64 endereços totais, e 64 − 2 = 62 hosts utilizáveis.
- Intervalo de hosts: de 10.128.7.1 a 10,128.7,62.
- Máscara curinga: a inversa da máscara de sub-rede, 0,0.0,63.
Um segundo exemplo com a entrada padrão da ferramenta, 192.168.1.10/24: rede 192.168.1.0, broadcast 192.168.1.255, hosts de 192.168.1.1 a 192.168.1.254, 254 hosts utilizáveis de 256 no total, máscara de sub-rede 255.255.255.0 e máscara curinga 0,0.0,255.
Convenções seguidas pela ferramenta
Octetos preenchidos com zeros à esquerda são rejeitados. A ferramenta recusa 010.1.1.1 em vez de interpretá-lo como 10,1.1,1. Isso é intencional. A função POSIX inet_aton, usada pelo ping, pelo curl e pela maioria dos resolvedores de sistemas operacionais, trata um octeto com zero à esquerda como octal; assim, 010.1.1.1 significa 8.1.1.1 para esses programas. Nenhuma interpretação decimal ou octal pode coincidir com a de todos os leitores, portanto a ferramenta não aceita nenhuma das duas. Um prefixo escrito como /08 é recusado pelo mesmo motivo.
A contagem de hosts subtrai dois. Algumas calculadoras informam o tamanho bruto do bloco como contagem de hosts. Esta ferramenta segue a RFC 950: em qualquer bloco de /0 a /30, a parte de host composta apenas por zeros identifica a rede, e a parte composta apenas por uns é o broadcast; portanto, ambas são excluídas e uma /24 tem 254 hosts utilizáveis, não 256.
Uma /31 tem dois hosts utilizáveis. Textos mais antigos, escritos antes da RFC 3021 (publicada em 2000), consideram uma /31 inutilizável porque subtrair os dois endereços reservados deixa zero. A RFC 3021 removeu ambas as reservas para links ponto a ponto, e os roteadores oferecem suporte a isso há décadas; por isso, a ferramenta informa 2 hosts utilizáveis e nenhum endereço de broadcast.
Qualquer prefixo de /0 a /32 é aceito. Uma /0 é um bloco válido que cobre todo o espaço IPv4, conforme 0.0.0.0/0 aparece nas tabelas de roteamento como a rota padrão.
Somente IPv4. IPv6 (RFC 4291) usa endereços de 128 bits e uma notação diferente, estando fora do escopo desta ferramenta. A ferramenta também não sinaliza intervalos de finalidade especial, como endereços privados ou de loopback (RFC 6890); ela informa apenas a aritmética dos endereços.
Dúvidas frequentes
Quantos hosts utilizáveis uma /24 tem? 254. Uma /24 deixa 8 bits de host, resultando em 2⁸ = 256 endereços. Dois são reservados: o endereço de rede e o endereço de broadcast. Restam 254 para dispositivos.
O que é uma máscara curinga? A inversa bit a bit da máscara de sub-rede. Onde a máscara de sub-rede tem 1, a máscara curinga tem 0, e vice-versa. Para a máscara 255.255.255.0, a máscara curinga é 0,0.0,255. As listas de controle de acesso de muitos roteadores usam máscaras curingas para descrever a quais endereços uma regra corresponde.
Por que uma /31 não exibe endereço de broadcast? Uma /31 contém apenas dois endereços. Reservar um para a rede e outro para o broadcast não deixaria nenhum, portanto a RFC 3021 define a /31 como um link ponto a ponto no qual ambos os endereços são hosts e não existe endereço de broadcast. A calculadora informa 2 hosts utilizáveis e marca o broadcast como não aplicável.
Por que 010.1.1.1 é rejeitado em vez de ser lido como 10.1.1.1? Porque os sistemas operacionais não concordam com uma interpretação decimal simples. A função POSIX inet_aton lê um octeto com zero à esquerda como octal, portanto 010 significa 8 para a maioria dos sistemas. Recusar a entrada é a única resposta que não pode divergir silenciosamente do comportamento do próprio computador do usuário.
Qual é a diferença entre endereços totais e hosts utilizáveis? Endereços totais é o tamanho completo do bloco, 2 elevado à potência de (32 menos o comprimento do prefixo). Hosts utilizáveis é esse número menos os dois endereços reservados, exceto em uma /31 (ambos são utilizáveis) e em uma /32 (o único endereço é o host).
O que significa o endereço de rede de 192.168.1.10/24? Ele é 192.168.1.0, obtido mantendo os primeiros 24 bits do endereço e definindo os bits de host como zero. Ele identifica a sub-rede como um todo e não pode ser atribuído a um dispositivo.
Referências
- Postel, J. “RFC 791: Internet Protocol.” IETF, 1981.
- Mogul, J. e J. Postel. “RFC 950: Internet Standard Subnetting Procedure.” IETF, 1985.
- Mogul, J. “RFC 919: Broadcasting Internet Datagrams.” IETF, 1984.
- Fuller, V. e T. Li. “RFC 4632: Classless Inter-domain Routing (CIDR).” IETF, 2006.
- Retana, A. et al. “RFC 3021: Using 31-Bit Prefixes on IPv4 Point-to-Point Links.” IETF, 2000.