Artigo original: Subnet Cheat Sheet – 24 Subnet Mask, 30, 26, 27, 29, and other IP Address CIDR Network References

Como desenvolvedor ou como engenheiro de redes, pode ser que você precise procurar os valores das máscaras de sub-rede e descobrir o que significam.

Para facilitar sua vida, a comunidade do freeCodeCamp criou essa ficha informativa simples. É só rolar pela página ou usar Ctrl/Cmd + f para encontrar o valor que você está procurando.

Aqui estão as tabelas, seguidas de algumas explicações sobre o que elas significam.

CIDRMÁSCARA DE SUB-REDEMÁSCARA CORINGANº DE ENDEREÇOS IPENDEREÇOS IP USÁVEIS
/32255.255.255.2550.0.0.011
/31255.255.255.2540.0.0.122*
/30255.255.255.2520.0.0.342
/29255.255.255.2480.0.0.786
/28255.255.255.2400.0.0.151614
/27255.255.255.2240.0.0.313230
/26255.255.255.1920.0.0.636462
/25255.255.255.1280.0.0.127128126
/24255.255.255.00.0.0.255256254
/23255.255.254.00.0.1.255512510
/22255.255.252.00.0.3.2551,0241,022
/21255.255.248.00.0.7.2552,0482,046
/20255.255.240.00.0.15.2554,0964,094
/19255.255.224.00.0.31.2558,1928,190
/18255.255.192.00.0.63.25516,38416,382
/17255.255.128.00.0.127.25532,76832,766
/16255.255.0.00.0.255.25565,53665,534
/15255.254.0.00.1.255.255131,072131,070
/14255.252.0.00.3.255.255262,144262,142
/13255.248.0.00.7.255.255524,288524,286
/12255.240.0.00.15.255.2551,048,5761,048,574
/11255.224.0.00.31.255.2552,097,1522,097,150
/10255.192.0.00.63.255.2554,194,3044,194,302
/9255.128.0.00.127.255.2558,388,6088,388,606
/8255.0.0.00.255.255.25516,777,21616,777,214
/7254.0.0.01.255.255.25533,554,43233,554,430
/6252.0.0.03.255.255.25567,108,86467,108,862
/5248.0.0.07.255.255.255134,217,728134,217,726
/4240.0.0.015.255.255.255268,435,456268,435,454
/3224.0.0.031.255.255.255536,870,912536,870,910
/2192.0.0.063.255.255.2551,073,741,8241,073,741,822
/1128.0.0.0127.255.255.2552,147,483,6482,147,483,646
/00.0.0.0255.255.255.2554,294,967,2964,294,967,294

* /31 é um caso especial detalhado no RFC 3021 onde as redes com esse tipo de máscara de sub-rede podem atribuir dois endereços IP como link ponto-a-ponto.

E aqui temos uma tabela de conversões de decimal para binário para a máscara de sub-rede e octetos coringa:

MÁSCARA DE SUB-REDECORINGA
00000000025511111111
1281000000012701111111
192110000006300111111
224111000003100011111
240111100001500001111
24811111000700000111
25211111100300000011
25411111110100000001
25511111111000000000

Observe que o coringa é o inverso da máscara de sub-rede.

Se você é novo na engenharia de redes, aqui você tem uma ideia melhor sobre como funcionam as redes de computadores.

Por fim, essa ficha informativa, bem como o resto do arquivo, tem como foco os endereços IPv4, em vez dos novos endereços com o protocolo IPv6. Se quiser aprender mais sobre IPv6, confira o artigo sobre redes de computadores acima.

Como funcionam os bloqueios de endereços IP?

Os endereços IPv4, como 192.168.0.1, são apenas representações decimais de quatro blocos binários.

Cada bloco tem 8 bits e representa números de 0 a 255. Como os blocos são grupos de 8 bits, cada bloco é conhecido como um octeto. Pelo fato de haver quatro blocos de 8 bits, cada endereço IPv4 é de 32 bits.

Por exemplo, aqui temos a aparência do endereço IP 172.16.254.1 em binário:

1125px-Ipv4_address
Source: IPv4

Para converter um endereço IP entre suas formas decimal e binária, use esta tabela:

1286432168421
xxxxxxxx

A tabela acima representa um octeto de 8 bits.

Agora, digamos que você queira converter o endereço IP 168.210.225.206. Tudo o que você precisa fazer é quebrar o endereço em quatro blocos (168, 210, 225 e 206) e converter cada um em binário usando a tabela acima.

Lembre-se de que, em binário, 1 é equivalente a "ligado" e 0 é "desligado". Desse modo, para converter o primeiro bloco, 168, em binário, comece do início da tabela e coloque um 1 ou um 0 naquela célula até chegar a uma soma de 168.

Por exemplo:

1286432168421
10101000

128 + 32 + 8 = 168, que é o binário 10101000.

Se fizer isso para o resto dos blocos, obtemos 10101000.11010010.11100001.11001110.

O que é a sub-rede?

Se você olhar para a tabela acima, pode parecer que o número de endereços IP é praticamente ilimitado. Afinal, há quase 4,2 bilhões de endereços IPv4 possíveis e disponíveis.

Se você pensar, no entanto, no quanto a internet cresceu e na quantidade de dispositivos conectados nos dias de hoje, não é surpresa que já haja uma escassez de endereços IPv4.

Como a escassez já foi reconhecida a alguns anos, os desenvolvedores encontraram uma forma de dividir um endereço IP em redes menores, chamadas de sub-redes.

Esse processo, chamado, em inglês, de subnetting, usa a seção do host do endereço IP para dividi-lo em redes menores, ou sub-redes.

Em geral, um endereço IP é composto de bits de rede e bits host:

network-and-host-bits
Source: What is IPv4

Assim, de modo geral, o uso de sub-redes faz duas coisas: nos dá uma forma de dividir redes em sub-redes e permite que dispositivos determinem se outro dispositivo/endereço IP está ou não na mesma rede local.

Uma boa forma de pensar nas sub-redes é imaginar sua rede wireless em casa.

Sem as sub-redes, cada dispositivo conectado à internet precisaria de seu próprio endereço IP exclusivo.

Como você está em um roteador wireless, no entanto, precisa apenas de um endereço IP para seu roteador. Esse endereço IP público ou externo geralmente é tratado automaticamente, sendo atribuído por seu provedor de serviços de internet (ISP).

Então, cada dispositivo conectado ao roteador tem seu próprio endereço IP privado ou interno:

home-network-diagram
Source: What Is My IP Address?

Agora, se o seu dispositivo com o endereço IP interno 192.168.1.101 quiser se comunicar com outro dispositivo, ele usará o endereço IP de outro dispositivo e a máscara de sub-rede.

A combinação dos endereços IP e da máscara de sub-rede permite que o dispositivo em 192.168.1.101 descubra se outro dispositivo está na mesma rede (como o dispositivo em 192.168.1.103) ou em uma rede completamente diferente em algum outro lugar on-line.

De modo interessante, o endereço IP externo atribuído ao seu roteador por seu ISP provavelmente é parte de uma sub-rede, que pode incluir muitos outros endereços IP de casas ou empresas próximas a você. E, assim como, endereços IP internos, esse endereço também precisa de uma máscara de sub-rede para funcionar.

Como funcionam as máscaras de sub-rede

As máscaras de sub-rede servem como uma espécie de filtro para um endereço IP. Com uma máscara de sub-rede, os dispositivos podem olhar para um endereço IP e descobrir quais partes são os bits da rede e quais são os bits do host.

Usando-as, é possível descobrir a melhor forma desses dispositivos se comunicarem.

Se você já andou dando uma olhada nas configurações de rede no seu roteador ou computador, você provavelmente viu esse número: 255.255.255.0.

Se já fez isso, viu uma máscara de sub-rede muito comum para redes caseiras simples.

Como os endereços IPv4, as máscaras de sub-rede são de 32 bits. E, assim como converter um endereço IP em binário, você pode fazer o mesmo com uma máscara de sub-rede.

Por exemplo, aqui está sua tabela de antes:

1286432168421
xxxxxxxx

Agora, vamos converter o primeiro octeto, 255:

1286432168421
11111111

É simples, não é? Desse modo, qualquer octeto que seja 255 é simplesmente 11111111 em binário. Isso significa que  255.255.255.0 é, de fato, 11111111.11111111.11111111.00000000 em binário.

Agora, vamos ver uma máscara de sub-rede e um endereço IP juntos e calcular quais partes do endereço IP são os bits da rede e os bits do host.

Aqui estão os dois, em decimal e em binário:

TIPODECIMALBINÁRIO
Endereço IP192.168.0.10111000000.10101000.00000000.01100101
Máscara de sub-rede255.255.255.011111111.11111111.11111111.00000000

Com os dois dispostos assim, fica fácil separar 192.168.0.101 em bits da rede e bits do host.

Sempre que um bit em uma máscara de sub-rede binária for 1, o mesmo bit em um endereço IP binário é parte da rede, não do host.

Como o octeto 255 é 11111111 em binário, o octeto inteiro no endereço IP é parte da rede. Assim, os primeiros três octetos, 192.168.0, são a porção da rede do endereço IP, enquanto 101 é a porção do host.

Em outras palavras, se o dispositivo em 192.168.0.101 quiser se comunicar com outro dispositivo, usando a máscara de sub-rede, ele sabe que qualquer coisa que tenha o endereço IP  192.168.0.xxx está na mesma rede local.

Outra forma de expressar isso é com um ID de rede, que é apenas a porção de rede do endereço IP. Assim, o ID de rede do endereço 192.168.0.101 com uma máscara de sub-rede de 255.255.255.0 é 192.168.0.0.

O mesmo acontece para outros dispositivos da rede local (192.168.0.102, 192.168.0.103 e assim por diante).

O que significa CIDR e o que é a notação CIDR?

CIDR é a sigla para Classless Inter-Domain Routing (roteamento interdomínios sem classe). Ele é usado em IPv4 e, mais recentemente, no roteamento de IPv6.

1920px-IP_Address_Match.svg
Source: Classless Inter-Domain Routing

O CIDR surgiu em 1993 como uma forma de desacelerar o uso de endereços IPv4, que estavam sendo exauridos rapidamente no antigo sistema de endereçamento IP com classes, a partir do qual a internet foi construída inicialmente.

O CIDR consiste em alguns conceitos principais.

O primeiro desses conceitos é o de tamanho de sub-rede variável, ou Variable Length Submasking (VLSM), que, basicamente, permitiu que os engenheiros de rede criassem sub-redes dentro de sub-redes. Aquelas sub-redes podem ser de tamanhos diferentes. Assim, haveria menos endereços IP não utilizados.

O segundo conceito importante que o CIDR introduziu foi a notação CIDR.

A notação CIDR é, de fato, apenas a abreviação para a máscara de sub-rede, representando o número de bits disponíveis do endereço IP. Por exemplo, o /24 em 192.168.0.101/24 é equivalente ao endereço IP 192.168.0.101 e à máscara de sub-rede 255.255.255.0.

Como calcular a notação CIDR

Para descobrir a notação CIDR para uma determinada máscara de sub-rede, tudo o que você precisa fazer é converter a máscara de sub-rede em binário, e contar o número de dígitos 1 ou "ligados". Por exemplo:

TIPODECIMALBINÁRIO
Máscara de sub-rede255.255.255.011111111.11111111.11111111.00000000

Como há três octetos de 1s, há 24 bits "ligados", o que significa que a notação CIDR é /24.

Não importa a maneira que você escrever, mas sei que você concorda que /24 é muito mais fácil de escrever que 255.255.255.0.

Isso geralmente é feito com um endereço IP. Então, vamos ver a mesma máscara de sub-rede com um endereço IP:

TIPODECIMALBINÁRIO
Endereço IP192.168.0.10111000000.10101000.00000000.01100101
Máscara de sub-rede255.255.255.011111111.11111111.11111111.00000000

Os primeiros três octetos da máscara de sub-rede são todos bits "ligados". Assim, isso significa que os mesmos três octetos no endereço IP são todos bits de rede.

Vamos ver o quarto e último octeto mais detalhadamente:

TIPODECIMALBINÁRIO
Endereço IP10101100101
Máscara de sub-rede000000000

Neste caso, como todos os bits para este octeto na máscara de sub-rede estão "desligados", podemos ter certeza de que todos os bits correspondentes para este octeto no endereço IP são parte do host.

Ao escrever a notação CIDR, isso geralmente é feito com o ID de rede ID. Desse modo, a notação CIDR do endereço IP 192.168.0.101 com uma máscara de sub-rede de 255.255.255.0 é 192.168.0.0/24.

Para ver mais exemplos de como calcular a notação CIDR e o ID de rede para determinados endereço IP e máscara de sub-rede, confira este vídeo:

Endereço IP com classes (classful)

Agora que vimos alguns exemplos básicos sub-rede e CIDR, vamos olhar mais de perto o que é conhecido como endereçamento IP com classes (classful).

Antes do desenvolvimento das sub-redes, todos os endereços IP pertencem a uma classe específica:

subnetting
Source: Subnetting for dummies

Observe que há endereços IP de classe D e E, mas veremos estes em mais detalhes mais tarde.

Os endereços IP com classes deram aos engenheiros de redes uma forma de fornecer a organizações diversas um intervalo de endereços IP válidos.

Havia muitos problemas com essa abordagem e que, por fim, levaram às sub-redes. Antes de entrarmos nesses problemas, no entanto, vamos olhar mais de perto essas diferentes classes.

Endereços IP classe A

Para os endereços IP classe A, o primeiro octeto (8 bits/1 byte) representa o ID de rede, enquanto os três octetos restantes (24 bits/3 bytes) são o ID do host.

Os endereços IP classe A vão de 1.0.0.0 a 127.255.255.255, com uma máscara padrão de 255.0.0.0 (ou /8 em CIDR).

Isso significa que o endereçamento de classe A pode ter um total de 128 (27) redes e 16,777,214 (224-2) endereços usáveis por rede.

Além disso, observe que o intervalo de 127.0.0.0 a 127.255.255.255 na faixa da classe A está reservado para o endereço de loopback do host (consulte o RFC5735).

Endereços IP classe B

Para os endereços IP classe B, os primeiros dois octetos (16 bits/2 bytes) representam o ID de rede e os dois octetos restantes (16 bits/2 bytes) são o ID do host.

Os endereços IP classe B vão de 128.0.0.0 a 191.255.255.255, com uma máscara de sub-rede padrão de 255.255.0.0 (ou /16 em CIDR).

O endereçamento de classe B pode ter 16.384 (214) endereços de rede e 65.534 (216) endereços usáveis por rede.

Endereços IP classe C

Para os endereços IP classe C, os primeiros três octetos (24 bits/3 bytes) representam o ID de rede e o último octeto (8 bits/1 byte) é o ID do host.

Os endereços IP classe C vão de 192.0.0.0 a 223.255.255.255, com uma máscara de sub-rede padrão de 255.255.255.0 (ou /24 em CIDR).

A classe C responde por 2.097.152 (221) redes e 254 (28-2) endereços usáveis por rede.

Endereços IP classes D e E

As últimas duas classes são as classes D e E.

Os endereços IP de classe D são reservados para multicasts. Eles ocupam o intervalo de 224.0.0.0 a 239.255.255.255.

Os endereços IP de classe E são experimentais, sendo qualquer endereço a partir de 240.0.0.0.

O problema dos endereços IP com classes

O problema principal dos endereços IP com classes está no fato de não serem eficientes, podendo levar a muitos endereços IP desperdiçados.

Por exemplo, imagine que você é parte de uma grande organização da época. Sua empresa tem 1.000 funcionários, pertencendo, assim, à classe B.

Se você olhar acima, no entanto, verá que uma rede de classe B pode dar suporte a 65.534 endereços utilizáveis. Isso é muito mais do que sua organização provavelmente precisaria, mesmo que cada funcionário tivesse diversos dispositivos, cada um com um endereço exclusivo.

Também não haveria modo de sua organização fazer parte da classe C. Neste caso, não haveria endereços IP suficientes para ela.

Assim, embora os endereços IP com classes fossem usados na época em que os endereços IPv4 eram amplamente difundidos, tornou-se claro, rapidamente, que um sistema melhor seria necessário para garantir que não seriam consumidos todos os aproximadamente 4,2 bilhões de endereços utilizáveis.

Os endereços IP com classes não foram mais usados desde que foram substituídos pelo CIDR, em 1993. Eles são, em grande parte, estudados para entender a arquitetura inicial da internet e o motivo de as sub-redes serem importantes.

Espero que essa ficha informativa tenha sido uma referência útil para você

Se você a achou útil, peço que a compartilhe com seus amigos para que mais pessoas possam se beneficiar dela.

Além disso, se quiser, você pode entrar em contato com o autor pelo Twitter e dizer a ele o que pensou sobre o artigo.