O TOOGAM tem uma excelente resposta para este.
No entanto, eu vou colocar meus dois centavos, é assim que eu usei para simplificá-lo para envolver minha mente em torno de sub-redes:
Veja os endereços IP em binário. Cada segmento de um endereço IP é composto de 8 bits ou um octeto, o que significa que você tem um intervalo de trabalho de 0 a 255, porque esse é o intervalo de números que 8 bits podem representar. Aqui estão alguns exemplos:
0.0.0.0 is 0000 0000.0000 0000.0000 0000.0000 0000
e
192.168.1.0 is 1100 0000.1010 1000.0000 0001.0000 0000
Você sabe que 192.168.1.0 é um endereço de classe C, certo? Na notação CIDR, isso significa que é uma rede / 24 e a máscara é 255.255.255.0. O que isto significa? Vamos olhar para o binário novamente - a máscara de rede em binário se parece com isso:
1111 1111.1111 1111.1111 1111.0000 0000
Todos os 1s são os bits do endereço real que são usados para identificar a rede, enquanto todos os 0s são usados para identificar um host específico na rede. O / 24 significa que 24 bits são usados para identificar a rede, vá em frente e conte-os.
Observe que toda rede tem um nome de rede (que é o PRIMEIRO endereço da rede, esse também é seu número de sub-rede ) e um endereço de transmissão (que é o último endereço da rede). Esses dois endereços estão reservados, você não pode usá-los para hosts.
Então, digamos que queremos dividir 192.168.1.0 em três sub-redes. Nós não podemos! Por quê? Vamos resolver isso. Se emprestarmos um bit, só podemos ter duas sub-redes porque um bit pode representar apenas números 0-1.
Veja o que quero dizer - se você quiser emprestar um bit, a máscara de sub-rede se torna
255.255.255.128
que, em binário, é
1111 1111.1111 1111.1111 1111.1000 0000
^This is your borrowed bit right here
Agora você tem uma rede / 25. Você está usando 25 bits para representar suas redes e os 7 bits restantes para identificar seus hosts. (Nota: Ao fazer cálculos de sub-rede, ajuda a parar de pensar sobre os pontos no endereço IP e apenas lidar com o binário. Você verá o que quero dizer depois.)
Isso só lhe dá duas sub-redes,
This part tells you which network it is!
vvvv vvvv vvvv vvvv vvvv vvvv v
192.168.1.0/25 1100 0000.1010 1000.0000 0001.0000 0000
^^^ ^^^^
This part tells you which host it is!
e
This part tells you which network it is!
vvvv vvvv vvvv vvvv vvvv vvvv v
192.168.1.128/25 1100 0000.1010 1000.0000 0001.1000 0000
^^^ ^^^^
This part tells you which host it is!
Os 7 bits restantes são reservados para identificar seus hosts, então você não pode usá-los. Você tem que emprestar dois bits, o que pode representar o número 0-3. Goste ou não, se você quiser três sub-redes, terá que dividir a rede em quatro sub-redes no mínimo.
Agora você tem uma rede / 26 com essas sub-redes:
192.168.1.0/26 1100 0000.1010 1000.0000 0001.0000 0000
192.168.1.64/26 1100 0000.1010 1000.0000 0001.0100 0000
192.168.1.128/26 1100 0000.1010 1000.0000 0001.1000 0000
192.168.1.192/26 1100 0000.1010 1000.0000 0001.1100 0000
^^
Look at these two bits! Watch how they go from 0 to 3 in binary.
Para obter a terceira rede, tudo o que você precisa fazer é olhar para seus bits emprestados e fazer um 2 ou um "10" em binário. Porquê 2? Porque estamos contando a partir de 0, não 1. Em seqüência, você tem "0, 1, 2, 3", então a terceira rede é "2".
Você apenas coloca esse "10" nos bits emprestados e pode obter a terceira rede. Por exemplo, digamos que eu tenha uma rede estranha como
10.10.254.0/23 0000 1010.0000 1010.1111 1110.0000 0000
e eu precisava dividi-lo em três sub-redes e encontrar o terceiro. Em outras palavras, eu precisaria transformá-lo em uma rede / 25 porque eu preciso de dois bits emprestados pelo menos. Então agora eu tenho
10.10.254.0/25 0000 1010.0000 1010.1111 1110.0000 0000
10.10.254.128/25 0000 1010.0000 1010.1111 1110.1000 0000
10.10.255.0/25 0000 1010.0000 1010.1111 1111.0000 0000
10.10.255.128/25 0000 1010.0000 1010.1111 1111.1000 0000
Your borrowed bits are here ^ ^
É super confuso se você olhar para os endereços IP decimais, não é? Isso é o que eu quis dizer antes, quando eu disse para trabalhar em binário e ignorar os pontos no endereço IP ao fazer cálculos de sub-rede.
Para obter o endereço de transmissão, basta preencher a parte "host" do seu endereço com 1s. Por exemplo, o endereço de broadcast de 192.168.1.128/26 é
Remember, this is the "host" part of your address, the first
26 bits represent the network
vv vvvv
192.168.1.191/26 1100 0000.1010 1000.0000 0001.1011 1111
See how the host portion is filled with 1s? ^^ ^^^^
Da mesma forma, para obter o intervalo utilizável, comece colocando 1 na última posição do nome da rede para obter o primeiro endereço utilizável, preencha a parte "host" com 1s e coloque 0 na última posição de o nome da rede para obter o último endereço utilizável.
Remember, this is the "host" part of your address, the first
26 bits represent the network
vv vvvv
1100 0000.1010 1000.0000 0001.1000 0001 192.168.1.129/26
First address: put a 1 here ^
1100 0000.1010 1000.0000 0001.1011 1110 192.168.1.190/26
^
Last address: fill the host part with 1s but put a 0 here
É claro que, eventualmente, você deve aprender como fazer isso, como o TOOGAM explicou, mas isso pode ser útil se você precisar visualizar as sub-redes.