Exemplo:
IP: 128.42.5.4
Em binário: 10000000 00101010 0000010101 00000100
Sub-rede: 255.255.248.0
Como você poderia determinar o prefixo, rede, sub-rede e números de host?
Converter a representação ponto-decimal da máscara da rede em binário. Depois, conte o número de bits contíguos 1, começando pelo bit mais significativo do primeiro octeto (ou seja, o lado esquerdo do número binário).
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
-----------------------------------
I counted twenty-one 1s -------> /21
O prefixo de 128.42.5.4 com uma máscara de rede 255.255.248.0 é /21.
O endereço de rede é o E lógico dos respectivos bits na representação binária do endereço IP e da máscara de rede. Alinhe os bits em ambos os endereços e faça um AND lógico em cada par dos respectivos bits. Em seguida, converta os octetos individuais do resultado de volta para decimal.
Tabela lógica e verdadeira:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
----------------------------------- [Logical AND]
10000000 00101010 00000000 00000000 ------> 128.42.0.0
Como pode ver, o endereço de rede de 128.42.5.4/21 é 128.42.0.0
O endereço de transmissão converte todos os bits do host em 1s...
Lembre-se que o nosso endereço IP em decimal é:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
A máscara de rede é:
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
Isto significa que os nossos bits host são os últimos 11 bits do endereço IP, porque encontramos a máscara host invertendo a máscara de rede:
Host bit mask : 00000000 00000000 00000hhh hhhhhhhh
Para calcular o endereço de transmissão, forçamos todos os bits do host a serem 1s:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Host bit mask : 00000000 00000000 00000hhh hhhhhhhh
----------------------------------- [Force host bits]
10000000 00101010 00000111 11111111 ----> 128.42.7.255
Você tem't dado informação suficiente para calcular sub-redes para esta rede; como regra geral você constrói sub-redes realocando alguns dos bits da máquina como bits de rede para cada sub-rede. Muitas vezes há't uma maneira correta de subnetar um bloco... dependendo das suas restrições, pode haver várias maneiras válidas de subnetar um bloco de endereços.
Deixemos's assumir que partiremos 128.42.0.0/21 em 4 sub-redes que devem conter pelo menos 100 hospedeiros cada...
Neste exemplo, sabemos que você precisa de pelo menos um prefixo /25 para conter 100 hospedeiros; eu escolhi um /24 porque ele cai na fronteira de um octeto. Note que o endereço de rede de cada sub-rede toma emprestado os bits do host do bloco de rede pai.
Como é que eu sabia que eu precisava de pelo menos um /25 masklength para 100 hospedeiros? Calcule o prefixo fazendo backup no número de bits de host necessários para conter 100 hosts. É preciso 7 bits de host para conter 100 hosts. Oficialmente, isto é calculado com:
Bits anfitriões = Log2(Número de anfitriões) = Log2(100) = 6,643
Como os endereços IPv4 têm 32 bits de largura e estamos usando os bits do host (ou seja, bits menos significativos), basta subtrair 7 de 32 para calcular o prefixo mínimo de sub-rede para cada sub-rede... 32 - 7 = 25.
Como queremos apenas quatro sub-redes de todo o bloco 128.42.0.0/21, poderíamos usar as sub-redes /23. Eu escolhi /23 porque precisamos de 4 sub-redes... ou seja, dois bits a mais adicionados à máscara de rede.
Esta é uma resposta igualmente válida à restrição, usando sub-redes /23 de 128.42.0.0.0/21...
Isto é o que nós'já fizemos acima... apenas reutilizamos a máscara do host do trabalho que fizemos quando calculamos o endereço de transmissão de 128.42.5.4/21... Desta vez I'vai usar 1s ao invés de h
, porque precisamos executar um E lógico no endereço de rede novamente.
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Host bit mask : 00000000 00000000 00000111 11111111
----------------------------------- [Logical AND]
00000000 00000000 00000101 00000100 -----> 0.0.5.4
Para encontrar o número máximo de hosts, veja o número de bits binários no número do host acima. A maneira mais fácil de fazer isso é subtrair o comprimento da máscara de rede de 32 (número de bits em um endereço IPv4). Isto dá-lhe o número de bits do anfitrião no endereço. Nesse ponto...
Número máximo de hospedeiros = 2**(32 - netmask_length) - 2
A razão pela qual subtraímos 2 acima é porque os números de anfitriões all-ones e all-zeros são reservados. O número de anfitrião all-zeros é o número da rede; o número de anfitrião all-ones é o endereço de transmissão.
Usando a sub-rede de exemplo de 128.42.0.0/21 acima, o número de hospedeiros é...
Número máximo de hospedeiros = 2**(32 - 21) - 2 = 2048 - 2 = 2046
Suponha que alguém nos dá dois endereços IP e espera que encontremos a máscara de rede mais longa que contenha os dois; por exemplo, e se tivéssemos:
A coisa mais fácil a fazer é converter ambos para binário e procurar o maior número de bits de rede do lado esquerdo do endereço.
128.42.5.17 in binary: 10000000 00101010 00000101 00010001
128.42.5.67 in binary: 10000000 00101010 00000101 01000011
^ ^ ^
| | |
+--------- Network ---------+Host-+
(All bits are the same) Bits
Neste caso, a máscara de rede máxima (hostmask mínima) seria /25
NOTA: Se você tentar começar do lado direito, don'não seja enganado só porque você encontra uma coluna de bits correspondente; pode haver bits inigualáveis além desses bits correspondentes. Honestamente, a coisa mais segura a fazer é começar pelo lado esquerdo.
A resposta acima acerta perfeitamente no prego da cabeça. No entanto, quando comecei, precisei de alguns exemplos diferentes de algumas fontes para que realmente chegasse a casa. Portanto, se você'está interessado em outros exemplos, escrevi alguns posts no blog sobre o assunto - http://www.oznetnerd.com/category/subnetting/
Admins, se este post for considerado spam, por favor sinta-se à vontade para apagá-lo.
Edit: Conforme sugestão de YLearn's, I'tentará pegar as partes relevantes da Parte 1 da minha série, sem colar a entrada inteira aqui.
Let's use 195.70.16.159/30 como exemplo.
Como é um /30, sabemos que a parte do anfitrião vai estar no quarto octeto. Vamos's converter isso para binário:
128 64 32 16 8 4 2 1
SN SN SN SN SN SN H H
1 0 0 1 1 1 1 1
Agora para descobrir o endereço da rede, tudo o que fazemos é adicionar os bits SN que têm um 1 por baixo deles, juntos. (128 + 16 + 8 + 4 = 156).
Ao adicionar este 156 aos primeiros três octetos do endereço, ficamos com o Endereço da Rede 195.70.16.156.
Agora, como sabemos que o primeiro endereço utilizável é sempre o endereço de rede mais um, tudo o que precisamos fazer é fazer o seguinte cálculo: (156 + 1 = 157).
Isto dá-nos um Primeiro endereço utilizável de 195.70.16.157.
Agora vamos saltar por um momento o último endereço utilizável e encontrar o endereço de transmissão. Para descobrir o que é, tudo o que precisamos fazer é adicionar todos os bits H juntos (independentemente de serem um 1 ou um 0) e depois adicionar este número ao Endereço de Rede. (2 + 1 + 156 = 159).
Isto dá-nos um Endereço de Broadcast de 195.70.16.159.
E, por fim, vamos trabalhar no último endereço utilizável. Este processo é semelhante a encontrar o primeiro endereço utilizável, no entanto, em vez de adicionarmos um ao endereço de rede, na verdade subtraímos um do endereço de transmissão. (159 – 1 = 158).
Isto dá-nos um Último endereço utilizável de 195.70.16.158.
E aí o temos! O nosso temaplte está completo. Para referência fácil, aqui está de novo:
Como atalho, você também pode usar esta fórmula. Ela funciona em sub-redes de qualquer tamanho:
Exemplo:
IP: 128.42.5.4
Em binário: 10000000 00101010 0000010101 00000100
Sub-rede: 255.255.248.0
Como você poderia determinar o prefixo, rede, sub-rede e números de host?
32768 16384 8192 4096 2048 1024 512 256 ----> Binary
128 192 224 240 248 252 254 255 ----> Sunet Mask
/17 /18 /19 /20 /21 /22 /23 /24 ----> CIDR
32766 16382 8190 3094 2046 1022 510 254 ----> Host
128 64 32 16 8 4 2 1 ----> Binary
128 192 224 240 248 252 254 255 ----> Sunet Mask
/25 /26 /27 /28 /29 /30 /31 /32 ----> CIDR
126 62 30 14 6 2 * - ----> Host
128 64 32 16 8 4 2 1
10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001
Example
Network=192.168.1.0 /24;
Network Address with Subnet mask = 192.168.1.0 subnet 255.255.255.0
Ip address range 192.168.1.0----192.168.1.255
Fist available ip address 192.168.1.1;
Last available ip address 192.168.1.254;
Broadcast address = 192.168.1.255;
254 Host
Network=192.168.1.0 /25;
Network Address with Subnet mask = 192.168.1.0 subnet 255.255.255.128
Ip address range 192.168.1.0----192.168.1.128
Fist available ip address 192.168.1.1;
Last available ip address 192.168.1.126;
Broadcast address = 192.168.1.127;
126 Hosts
When the CIDR increased ex. /24. /25. the network will divided by the
binary number.
/25 increase network 0-128| 128- 256 | you will have 2 Networks
/26 increase network 0-64 | 64 - 128 | 128-192 | 192-256 you will have 4 Networks
.
.
.
/32......