O problema: você recebe um endereço e um prefixo, como 192.168.10.77/26, e precisa saber em qual rede ele está, onde essa rede termina e quais endereços você pode distribuir. Uma calculadora de sub-redes diz isso. O problema é que a calculadora também confirma tranquilamente um erro de digitação, e você não percebe. Aprenda a fazer à mão uma vez e você vai pegar o erro em cerca de dez segundos.
Eu uso um único método para qualquer comprimento de prefixo. Ele se chama método do tamanho do bloco e exige uma subtração e um pouco de contagem.
A ideia
Uma sub-rede é um bloco de endereços consecutivos. O tamanho do bloco é uma potência de dois, e todo bloco começa em um múltiplo do seu próprio tamanho. Esse é o truque inteiro. Pense em uma longa fileira de caixas de correio numeradas de 0 a 255, fixadas na parede em grupos. Cada grupo tem o mesmo número de caixas, e um grupo sempre começa onde o anterior terminou. Seu trabalho é descobrir em qual grupo o seu endereço mora.
O procedimento
- Encontre o octeto interessante. É o octeto em que a máscara não é nem 255 nem 0. Para /26 é o quarto octeto. Para /20 é o terceiro.
- Anote o valor da máscara nesse octeto. O tamanho do bloco é 256 menos esse valor.
- Liste os múltiplos do tamanho do bloco: 0, 64, 128, 192 para um bloco de 64.
- Encontre o maior múltiplo que seja menor ou igual ao valor do seu endereço nesse octeto. Esse é o endereço de rede (os octetos à esquerda permanecem como estão, os octetos à direita ficam 0).
- O próximo múltiplo, menos 1, é o último endereço do bloco. Esse é o endereço de broadcast (os octetos à direita viram 255).
- Os hosts utilizáveis vão de rede mais 1 até broadcast menos 1.
Se você não tem os valores de máscara decorados, eles são poucos. No octeto interessante, os valores são 128, 192, 224, 240, 248, 252 para 1 a 6 bits de máscara nesse octeto. Os tamanhos de bloco são 128, 64, 32, 16, 8, 4. Aprenda essa linha e você já fez a maior parte do caminho.
Exemplo um: 192.168.10.77/26
Um /26 é 255.255.255.192. O octeto interessante é o quarto, e o valor é 192. O tamanho do bloco é 256 - 192 = 64.
Múltiplos de 64: 0, 64, 128, 192. O número 77 está entre 64 e 128, então:
Network: 192.168.10.64
Broadcast: 192.168.10.127
Usable: 192.168.10.65 to 192.168.10.126
Hosts: 62
A quantidade de hosts é o tamanho do bloco menos 2, porque o primeiro endereço identifica a rede e o último é o broadcast. Esquecer essa subtração é o deslize mais comum que vejo.
Exemplo dois: cruzando um octeto, 172.16.45.200/20
Um /20 é 255.255.240.0. O octeto interessante agora é o terceiro, com valor 240. O tamanho do bloco é 256 - 240 = 16, e a contagem acontece no terceiro octeto.
Múltiplos de 16: 0, 16, 32, 48. O terceiro octeto do nosso endereço é 45, que fica entre 32 e 48. O quarto octeto, 200, não importa para encontrar o bloco.
Network: 172.16.32.0
Broadcast: 172.16.47.255
Usable: 172.16.32.1 to 172.16.47.254
Hosts: 4094
Repare que .0 e .255 no quarto octeto são endereços de host perfeitamente normais aqui, desde que estejam no meio do bloco. Por exemplo, 172.16.40.0 é um host válido nessa sub-rede. Quem aprendeu subnetting só em redes /24 costuma se surpreender com isso. Os únicos dois endereços reservados são o primeiro e o último do bloco inteiro.
A quantidade de hosts: 12 bits de host, 2 elevado a 12 é 4096, menos 2 é 4094.
Dividindo um bloco em blocos menores
O mesmo método funciona ao contrário quando você está planejando. Digamos que você tenha 192.168.10.0/24 e queira quatro sub-redes iguais. Quatro sub-redes precisam de 2 bits extras, então o prefixo vira /26 e o tamanho do bloco é 64:
192.168.10.0/26 hosts .1 to .62
192.168.10.64/26 hosts .65 to .126
192.168.10.128/26 hosts .129 to .190
192.168.10.192/26 hosts .193 to .254
Todo endereço inicial é um múltiplo de 64, e essa é a sua verificação de sanidade. Se você anotar um /26 que começa em .50, tem algo errado, porque .50 não é múltiplo de 64. Um roteador vai recusar isso ou, pior, tratar silenciosamente como algo diferente do que você pretendia.
No home lab, é também assim que decido o tamanho de cada VLAN. Um segmento de IoT com trinta dispositivos não precisa de um /24. Um /26 dá 62 hosts e deixa espaço para crescer, e o domínio de broadcast menor é um pequeno bônus.
Conferindo sua resposta em binário
Quando um resultado parece estranho, confira em binário apenas o octeto interessante. Pegue o 45 do exemplo /20: 45 é 00101101. A máscara nesse octeto é 240, que é 11110000. Mantenha os quatro bits de cima do endereço e zere o resto: 00100000, que é 32. Isso bate com o endereço de rede que encontramos. O método do tamanho do bloco é só essa operação sem escrever os bits.
Erros comuns
- Esquecer o menos 2 na contagem de hosts. Um /30 tem 4 endereços e 2 hosts utilizáveis, e por isso era a escolha tradicional para um link ponto a ponto. (Muitos dispositivos modernos também suportam /31 em links ponto a ponto, mas verifique seu equipamento antes de contar com isso.)
- Usar o octeto errado. Se o prefixo é /20, o trabalho acontece no terceiro octeto, e o tamanho do bloco não é de 16 endereços, e sim de 16 valores do terceiro octeto, ou seja, 4096 endereços.
- Contar os blocos a partir de 1 em vez de 0. O primeiro bloco começa em 0.
- Ler o broadcast como o início da próxima rede. O broadcast é um a menos que o próximo múltiplo, não igual a ele.
- Confiar na calculadora sem uma verificação de sanidade. Se o endereço de rede não é múltiplo do tamanho do bloco, a resposta está errada.
Por que se dar ao trabalho
Já vi sub-redes sobrepostas causarem uma tarde inteira de roteamento estranho, e a causa foi uma máscara digitada com um bit errado. Quando planejo um link site-to-site, como duas casas em 192.168.10.0/24 e 192.168.20.0/24, quero provar a olho que nada se sobrepõe antes de mexer em qualquer configuração. Fazer subnetting à mão permite isso no verso de um envelope. É chato, e chato é o que eu quero de um plano de endereçamento.
Um próximo passo: pegue 10.20.37.150/21 e calcule a rede, o broadcast e a faixa utilizável no papel, sem calculadora. Depois confira na nossa calculadora e veja se você concorda.
Have a question about this guide?
Create a free account to ask the community and join the discussion. Members who run the real thing answer every day.
0 comments
Open in the forumSign in to comment.