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.