Uma máscara de sub-rede é uma "máscara", pois separa a parte da rede do endereço IP da parte do host. É uma operação de mascaramento binário, portanto, só pode haver certos valores para a máscara de sub-rede.
Considere apenas um octeto para um exemplo. Você tem 8 bits para um endereço IP em vez dos 32 bits (4 octetos * 8 bits / octeto = 32 bits) no espaço de endereços IPv4. Como você diria a um sistema qual parte do endereço é localmente importante? Aqui estão as escolhas:
SUBNET SUBNET BINARY NUMBER OF NUMBER OF SUBNET LENGTH MASK VALUE SUBNETS IP'S/SUBNET BOUNDARIES ------ ------ -------- --------- ----------- ---------- 0 0 00000000 1 (2^0) 256 (2^8) None (entire subnet is local) 1 128 10000000 2 (2^1) 128 (2^7) Every multiple of 128 (0-127, 128-255) 2 192 11000000 4 (2^2) 64 (2^6) Every multiple of 64 (0-63, 64-127, etc) 3 224 11100000 8 (2^3) 32 (2^5) Every multiple of 32 (0-31, 32-63, etc) 4 240 11110000 16 (2^4) 16 (2^4) Every multiple of 16 (0-15, 16-31, etc) 5 248 11111000 32 (2^5) 8 (2^3) Every multiple of 8 (0-7, 8-15, etc) 6 252 11111100 64 (2^6) 4 (2^2) Every multiple of 4 (0-3, 4-7, etc) 7 254 11111110 128 (2^7) 2 (2^1) Every multiple of 2 (0-1, 2-3, etc) 8 255 11111111 256 (2^8) 1 (2^0) All (every host is its own subnet)
Na prática, você perde dois IPs por sub-rede porque o primeiro IP é considerado o endereço de "rede" e o último IP é considerado o endereço "broadcast". Isso significa que você nunca pode rotear o tráfego para uma rede de máscara de sub-rede .254, pois ela possui apenas dois endereços possíveis e os dois já estão reservados (não há espaço extra para um endereço de gateway e um host). A menor sub-rede roteada possível está usando uma máscara de sub-rede .252, pois fornece espaço suficiente para os endereços de rede, gateway, host e broadcast.
No seu exemplo, você deseja separar as redes entre .12 e .105. Você não pode usar uma máscara de sub-rede 0, porque isso significa que eles estão na mesma sub-rede. Você não pode usar uma máscara de sub-rede 0,128 porque ambos, .12 e .105, no intervalo de sub-rede .0-127. Você pode usar uma máscara de sub-rede .192 porque .12 estaria na sub-rede .0-63, enquanto que .105 estaria na sub-rede .64-127.
Você pode usar uma máscara de sub-rede .224 porque .12 estaria na sub-rede .0-31, enquanto que .105 estaria na sub-rede .96-127. Você pode usar uma máscara de sub-rede 0,240 porque 0,12 estaria em 0,015, enquanto 0,105 estaria em 0,96-111. Você pode usar um .248 porque .12 estaria em .8-15 enquanto .105 estaria em .104-111.
Você não pode usar uma máscara de sub-rede .252, pois o .12 cai na parte do endereço "rede" da sub-rede .12-15. Você não pode usar uma sub-rede .254 ou .255, pois .252 é a menor sub-rede roteada possível.
Como um exercício paralelo, se você quiser calcular a maior sub-rede possível entre dois hosts, compare a similaridade de seus valores binários e isso lhe dará a resposta. Em seu exemplo, vamos analisar a similaridade binária de seus endereços IP, começando do bit mais à esquerda e indo para a direita até encontrarmos uma diferença:
152.46.69.12 10011000.00101110.01000101.00001100 152.46.69.105 10011000.00101110.01000101.01101001 ........ ........ ........ .xxxxxxx Subnet Length: 8 +8 +8 +1 = /25 Subnet Mask: 255 .255 .255 .128 = 255.255.255.128
Contando os bits semelhantes da esquerda para a direita, isso mostra que o maior comprimento de sub-rede possível é de 25 bits. Expresso na notação de máscara de sub-rede é 255.255.255.128 (/ 25 na notação CIDR). Qualquer máscara de sub-rede maior (255.255.255.192 ou / 26) separará esses hosts.