Como se calcula o prefixo, rede, sub-rede e números de host?

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?

Solução

Calculando o comprimento da máscara de rede (também chamado de prefixo):

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.

Calculando o endereço de rede:

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

Calculando o Endereço de Difusão:

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

Calculando sub-redes:

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.

Encontrar a máscara de sub-rede ou máscara de rede necessária:

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.

A maneira preguiçosa de dividir 128.42.0.0/21 em quatro sub-redes iguais:

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...

Calculando o número do anfitrião:

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

Calculando o número máximo possível de hosts em uma sub-rede:

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

Encontrar a máscara de rede máxima (hostmask mínima) que contém dois endereços IP:

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:

  • 128.42.5.17
  • 128.42.5.67

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.

Comentários (0)

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:

  • Endereço da rede: 195.70.16.156
  • Primeiro endereço utilizável: 195.70.16.157
  • Último endereço utilizável: 195.70.16.158
  • Endereço Broadcast: 195.70.16.159

Como atalho, você também pode usar esta fórmula. Ela funciona em sub-redes de qualquer tamanho:

  • Primeiro endereço utilizável = Endereço de rede + 1
  • Endereço de Broadcast = Próximo Endereço de Rede - 1
  • Último Endereço Utilizável = Endereço de Difusão - 1
Comentários (1)

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......
Comentários (0)