
Disseram-me que um endereço IP público sem a máscara de sub-rede correspondente não tem sentido, porque não é possível 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 vejo endereços IP (DNS, findmyip.com etc.), trata-se apenas de ip sem o número cidr. Por exemplo, acabei de alimentar um site com apenas um endereço IP e ele me devolveu o nome de domínio correto.
O que estou perdendo ? Suponho que existam outros protocolos que só funcionam com endereços IP, mas ainda não ouvi falar deles.
Se a minha pergunta revelar uma falta de compreensão básica de como as redes funcionam, os recursos serão muito apreciados. Sou um desenvolvedor aprendendo tudo isso sozinho e, exceto tutoriais de 5 minutos ou mais de 1.000 livros obscuros (Oi TCP Illustrated), não consigo encontrar o material que procuro.
Responder1
Ambas as respostas acima estão corretas - aqui está uma resposta 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/wi-fi na mesma "lan") são considerados conectados diretamente.
Para qualquer outra coisa, o computador só precisa saber para onde enviar o pacote em seguida - ou seja, o endereço do roteador (que por sua vez sabe para onde enviar os pacotes em seguida). Quando você faz um traceroute você está vendo esse caminho.
A máscara de sub-rede é usada para agrupar máquinas que estão diretamente conectadas - portanto, para máquinas que não estão diretamente conectadas, não é necessária uma máscara de sub-rede 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 às vezes são relevantes fora de uma LAN - mas não são necessários para comunicação geral na Internet.
Responder2
Todos os sistemas que usam TCP/IP para se comunicar com outros sistemas consultam uma "Base de informações de encaminhamento" local ou uma tabela de roteamento local que é mantida pelo sistema.
Uma entrada da tabela de roteamento basicamente se parece com isto:
Rede de destino/gateway/máscara de sub-rede de destino/métrica
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 esta tabela. Se encontrar uma rede de destino que corresponda e se ajuste à máscara de sub-rede, ele enviará o tráfego para fora do adaptador de rede identificado porIface.
Todos esses adaptadores de rede estão "conectados diretamente" - é por isso que você vê 0.0.0.0 para gateway. Isso significa que se o sistema quiser enviar algo para 192.168.2.80, por exemplo, ele pode simplesmente enviar diretamente para 192.168.2.80 via interface eth2.
Porém, por causa da máscara de sub-rede, 192.168.87.80 não sairia pela eth2, mas sim pela vmnet1.
Se um IP couber em duas entradas, será usada aquela com a máscara de sub-rede CIDR maior (a "mais específica"). Se houver dois com a mesma máscara de sub-rede, a métrica é usada para desempate e, se for esse o momento, o sistema pode escolher um e mantê-lo ou balancear 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. Portanto, se as duas entradas existissem, algo que saísse para 192.168.2.1 sairia da interface ethX, mas algo que saísse para 192.168.2.241 sairia da interface eth2.
E se nada corresponder? Em seguida, o gateway padrão é usado. Observe que ela 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. Informar ao sistema quais redes podem ser acessadas por qual interface. Seu sistema usa isso ao enviar tráfego (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. Basicamente, não é necessário passar da camada de roteamento de rede. HTTP é a camada de aplicação.
Responder3
A máscara de sub-rede é útil para o próprio host e para o equipamento de roteamento.
Seu PC não precisa saber a máscara de sub-rede de um dispositivo remoto, ele só precisa saber o endereço e compará-lo com seuendereço próprioe os seusprópria máscara de sub-redeele 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.