Para que serve o endereço de rede (x.x.x.0)? [duplicado]

25

Parece ser uma prática comum não usar o primeiro endereço em uma sub-rede, ou seja, o IP 192.168.0.0/24 ou um exemplo mais exótico seria 172.20.20.64/29 .

A ferramenta ipcalc que uso com frequência segue a mesma prática:

$ ipcalc -n -b 172.20.20.64/29
Address:   172.20.20.64         
Netmask:   255.255.255.248 = 29 
Wildcard:  0.0.0.7              
=>
Network:   172.20.20.64/29      
HostMin:   172.20.20.65         
HostMax:   172.20.20.70         
Broadcast: 172.20.20.71         
Hosts/Net: 6                     Class B, Private Internet

Mas por que o HostMin não é simplesmente 64 nesse caso? O endereço 64 é um endereço válido, certo? E seja qual for a resposta, o mesmo se aplica ao IPv6?

Talvez um pouco relacionado: também parece possível usar uma porta TCP 0 e uma porta UDP 0. Essas são válidas ou usadas em qualquer lugar?

    
por Shtééf 23.04.2010 / 16:55

8 respostas

14

Como Wesley, Chopper3 e Willy apontaram, a convenção moderna usa o primeiro endereço (todos os números de host zeros) para a sub-rede e o último endereço (todos os números de host) como o endereço de broadcast.

Por razões históricas, muitos sistemas operacionais tratam o primeiro endereço como uma transmissão. Por exemplo, ping x.x.x.0 do OS X, Linux e Solaris em minha rede local (/ 24) obtém respostas. O Windows não permite pingar o primeiro endereço por padrão, mas você pode ativá-lo usando o método WIP SetIPUseZeroBroadcast. Gostaria de saber se você poderia usar o .0 como endereço de host em uma rede totalmente Windows.

    
por 23.04.2010 / 19:54
24

Eu sei que este é um tópico antigo, mas eu estava pesquisando isso sozinho e não parei no "host zero não é usado porque é o número da rede" porque eu não conseguia ver por que isso importava. Mesmo que seja o número da rede, ele não deve impedi-lo de ser usado como um endereço válido, pois o mecanismo para determinar o número da rede (ANDing the netmask) ainda funcionará com ele para determinar o número da rede.

Não usar o endereço de todos os hosts porque coincide com o endereço de broadcast com o qual eu me sentia à vontade, já que é um endereço de destino válido, portanto, quando usado, seria impossível distinguir entre esses endereços.

A razão mais explicada pela qual não podemos usar o host zero é que ele também é um endereço de broadcast - embora a seção RFC1812 4.2.3.1 declare que um roteador recebe pacotes dirigido a ele "deve descartá-los silenciosamente" (sua ênfase - não minha). No entanto, o mesmo parágrafo permite que esses pacotes sejam tratados como uma transmissão.

Aqui está a subseção completa

   (2) SHOULD silently discard on receipt (i.e., do not even deliver to
    applications in the router) any packet addressed to 0.0.0.0 or {
    <Network-prefix>, 0 }.  If these packets are not silently
    discarded, they MUST be treated as IP broadcasts (see Section
    [5.3.5]).  There MAY be a configuration option to allow receipt
    of these packets.  This option SHOULD default to discarding
    them.
    
por 07.02.2012 / 16:08
20

Porque o primeiro endereço em uma sub-rede refere-se à própria sub-rede e é usado para fins de roteamento.

    
por 23.04.2010 / 17:12
7

No início dos dias da Internet, x.x.x.0 era usado como o endereço de transmissão de uma rede. Isso foi alterado posteriormente para x.x.x.255. Lembro-me de que havia opções no SunOS para configurar a transmissão como 0,0 ou 0,255 durante esse período. Então eu acho que por segurança, .0 e .255 sempre foram números reservados.

    
por 24.04.2010 / 01:01
6

O primeiro número em uma sub-rede é o próprio endereço da rede. então 192.168.0.0/24 é o número usado para se referir a essa sub-rede. Naturalmente, o último endereço é o endereço de transmissão para o qual as transmissões são enviadas e, em seguida, enviadas para todos os clientes dessa sub-rede. Na rede IP, você sempre remove 2 do endereço de broadcast para encontrar a quantidade total de endereços IP endereçáveis. 192.168.0.0/24 tem uma transmissão de 192.168.0.255 e, portanto, 253 endereços endereçáveis. 192.168.0.0/26 tem uma transmissão de 192.168.0.64 e, portanto, 62 endereços endereçáveis.

(Chop e Willy me venceram - mas estou mal-humorado e não sinto vontade de deletar meu post. =))

    
por 23.04.2010 / 17:14
3

x.x.x.0 (ou primeiro endereço em uma sub-rede) é o endereço de rede e é usado para identificar qual tráfego está na mesma sub-rede e que precisa ser roteado para uma rede diferente.

    
por 23.04.2010 / 17:12
3

Existem dois endereços IP reservados por bloco CIDR. Um é "o" número da rede e será mesmo (bit 0) desativado. O outro é o braodcast direcionado (transmissão de sub-rede) e terá a porção de host da rede definida para todos os números ímpares. Aqui está um exemplo da minha calculadora de sub-redes:

Network           Net Broadcast     CIDR Mask              UsableHosts 
192.168.254.0     192.168.254.31    27   255.255.255.224   30          AVL  isPrivate, isClassC
192.168.254.32    192.168.254.47    28   255.255.255.240   14          AVL  isPrivate, isClassC
192.168.254.48    192.168.254.55    29   255.255.255.248   6           AVL  isPrivate, isClassC
192.168.254.56    192.168.254.59    30   255.255.255.252   2           REQ 2  isPrivate, isClassC
192.168.254.60    192.168.254.63    30   255.255.255.252   2           REQ 2  isPrivate, isClassC
    
por 24.04.2010 / 12:28
2

O número do host 0 na cada sub-rede é reservado principalmente porque costumava ser um endereço de broadcast.

O RFC diz, parafraseado, deve descartar, mas, alternativamente, usar como broadcast, mas também utilizável como um número de host através de alguma opção não padrão.

Agora, octeto 0 como em xyz0 pode muito bem ser um número de host CIDR diferente de zero e perfeitamente válido, mas no passado ocasionalmente teria problemas em sites isolados devido a erros de implementação ( possivelmente código de classe completo restante) no HW ou SW do site.

Hoje, o octeto 0 funciona bem o suficiente para ser atribuído por ISPs e plataformas de nuvem, embora, sem dúvida, alguns serviços deliberadamente não o distribuam com base na experiência passada.

Curiosamente, tudo o que seria necessário para suportar o host 0 em qualquer site específico é o suporte dos dispositivos exatos presentes na sub-rede local ... uma vez que o pacote é agregado a montante, nem seria possível saber que ele realmente tinha (CIDR) host número 0 em uso. A WAN não se importaria nem um pouco.

Finalmente, se os hosts da sub-rede local usarem o número de host do all-1 para broadcasts e não especificar o número de host do all-0, você poderá deixar o roteador como padrão e ter uma estação "oculta" somente local . Isso pode ser útil para proteger sistemas embarcados, como roteadores de consumidores baratos propensos a hackers ...

    
por 04.01.2013 / 01:07