Por que os endereços IP públicos não são sempre exibidos com sua máscara de sub-rede?

0

Foi-me dito que um endereço IP público sem sua máscara de sub-rede correspondente não tem sentido, porque não se pode saber como dividir o ID da rede do ID do host, o que faz todo o sentido para mim.

No entanto, na maioria das vezes eu vejo endereços IP (DNS, findmyip.com etc.) é apenas sobre ip sem o número cidr. Por exemplo, acabei de alimentar um site apenas com um endereço IP e ele me devolveu o nome de domínio correto.

O que estou perdendo? Eu estou supondo que existem alguns outros protocolos que só podem funcionar com endereços IP, mas eu não ouvi falar deles ainda.

Se a minha pergunta revela uma falta de compreensão básica de como as redes funcionam, os recursos são muito apreciados. Eu sou um desenvolvedor me ensinando todas essas coisas, e exceto tutoriais de 5 minutos ou mais de 1000 livros obscuros (Hi TCP Illustrated), não consigo encontrar o material que estou procurando.

    
por Radioreve 04.10.2017 / 12:25

3 respostas

3

A máscara de sub-rede é útil para o próprio host e para o equipamento de roteamento.

O seu PC não precisa de saber a máscara de sub-rede de um dispositivo remoto, apenas precisa de saber o endereço e comparar com o seu endereço próprio e a sua máscara de sub-rede saberá se o endereço é local ou remoto.

Se for local, os pacotes serão enviados diretamente, se for remoto, os pacotes serão enviados para o gateway padrão.

    
por 04.10.2017 / 12:35
2

Todos os sistemas que usam TCP / IP para conversar com outros sistemas consultam uma "Base de Informações de Avanço" local ou uma tabela de roteamento local que é mantida pelo sistema.

Uma entrada na tabela de roteamento é basicamente assim:

Destination Network / Gateway / Destination Subnet Mask / Metric

Aqui está minha tabela de roteamento atual:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 eth2
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 eth2
172.16.160.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 eth2
192.168.87.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet1

Cada vez que o sistema deseja enviar tráfego para um IP, ele pesquisa essa tabela. Se encontrar uma rede de destino que corresponda e se encaixe na máscara de sub-rede, ela enviará tráfego para fora do adaptador de rede identificado por Iface .

Todos esses adaptadores de rede estão "diretamente conectados" - é por isso que você vê o 0.0.0.0 para o gateway. Isso significa que se o sistema quiser enviar algo para 192.168.2.80, por exemplo, ele pode simplesmente enviá-lo diretamente para 192.168.2.80 através da interface eth2.

No entanto, por causa da máscara de sub-rede, 192.168.87.80 não sairia pela eth2, ela sairia pela vmnet1.

Se um IP couber em duas entradas, aquele com a maior máscara de sub-rede CIDR (a "mais específica") é usada. Se houver dois com a mesma máscara de sub-rede, a métrica é usada para quebrar o empate e, se for o caso, o sistema pode escolher um e ficar com ele ou equilibrar a carga entre eles.

por exemplo,

192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 eth2
192.168.2.0     0.0.0.0         255.255.255.240 U     100    0        0 ethX

255.255.255.240 é um CIDR / 28 e 255.255.255.0 é um CIDR / 24. Então, se as duas entradas existissem, algo saindo para 192.168.2.1 sairia da interface ethX, mas algo saindo para 192.168.2.241 sairia da interface eth2.

E se nada combinar? Em seguida, o gateway padrão é usado. Observe que ele tem a máscara de sub-rede "mais baixa" de 0.0.0.0 (que é uma barra / 0).

Então é para isso que serve a sub-rede. Dizendo ao sistema quais redes podem ser acessadas por qual interface. Seu sistema usa isso ao enviar o tráfego para fora (para determinar a diferença entre a Internet e a rede local) e os roteadores usam isso para encaminhar o tráfego.

Fora dessas situações, a máscara de sub-rede não é necessária. Não é necessário passar pela camada de roteamento de rede, basicamente. HTTP é a camada de aplicação.

    
por 04.10.2017 / 12:45
0

Ambas as respostas acima estão corretas - aqui está uma não técnica mais detalhada -

Um computador só precisa saber se um endereço IP pertence a um computador que se conecta diretamente a ele - e os computadores que passam por um hub / switch / wifi na mesma "lan") são considerados diretamente conectados.

Para qualquer outra coisa, o computador só precisa saber para onde enviar o pacote, ou seja, o endereço do roteador (que, por sua vez, sabe para onde enviar os pacotes). Quando você faz um traceroute, está vendo esse caminho.

A máscara de sub-rede é usada para agrupar máquinas que estão diretamente conectadas - assim, para máquinas que não estão diretamente conectadas, uma máscara de sub-rede não é necessária para alcançá-las.

Notavelmente, uma máscara de sub-rede também pode ser usada por um firewall ou outro software para especificar um grupo de endereços IP a serem tratados da mesma maneira - e é por isso que eles são relevantes fora de uma LAN - mas não necessários para a comunicação geral. Internet.

    
por 04.10.2017 / 17:35