Por que as máscaras de sub-rede são relevantes para o computador individual na rede?

48

Entendo como as máscaras de sub-rede são usadas para dividir uma rede em sub-redes, mas, por que todos os computadores na rede precisam conhecer a máscara de sub-rede e não apenas o roteador?

Eu poderia entender, se cada computador estivesse fisicamente conectado um ao outro por um fio, mas todos os pacotes precisariam passar pelo roteador de qualquer maneira.

Digamos que eu tenho um computador em uma rede 192.168.0.0/255.255.255.0, que tenha o IP 192.168.0.1.

Se esse computador tentar acessar um computador fora da sub-rede, digamos 192.168.1.1, transmitir a mensagem ao roteador, o roteador identificará que o IP está fora do intervalo de IP da sub-rede e, em vez de transmiti-lo na sub-rede transmite à rede à qual está conectado (talvez outro roteador).

Orpedo
fonte
31
Os computadores não precisam passar por um roteador para formar uma rede.
Overmind
11
@Overmind: Verdade, mas eles podem . As máscaras de rede de fato não são estritamente necessárias, são uma otimização para facilitar o trabalho do roteador.
MSalters
3
if each computer were physically connected to each other with a wire- você deve se lembrar que o TCP / IP foi inventado em um momento em que esse é realmente o caso. Google 10-base-2. Existem outros protocolos que funcionam de forma diferente do TCP / IP, mas nos últimos 20 anos o IPv4 venceu a batalha do protocolo.
slebetman
Você parece ter um mal-entendido de como as redes de computadores funcionam. Eu sugiro que você assista a este vídeo: youtube.com/watch?v=6i777lddg8s
InterLinked
@InterLinked com um narrador com uma voz tão assustadora? Nunca.
devorou ​​elysium

Respostas:

78

Suas suposições originais não estão totalmente corretas. O que você chama de "roteador" são dois dispositivos em um - um roteador de duas portas conectado internamente a um switch Ethernet de várias portas . (Aqui está um diagrama de exemplo ).

Isso significa que os computadores estão conectados diretamente na camada 2 e podem enviar pacotes um ao outro sem passar pelo núcleo do roteador - eles são simplesmente retransmitidos entre as portas pelo chip do switch. (O roteador tem sua própria "porta" no comutador.)

Portanto, se você observar os pacotes usando o Wireshark, verá que eles usam diretamente os endereços MAC um do outro, enquanto os pacotes "externos" sempre têm o MAC do roteador como destino.

(Suponho que você esteja falando dos típicos "roteadores sem fio" encontrados na maioria das residências, que são a causa comum desse tipo de pergunta. Uma rede maior teria um roteador separado com uma porta por sub-rede e alguns comutadores separados (talvez um mestre mais um por andar / sala) e várias dezenas de computadores conectados a esses comutadores.)

É praticamente o mesmo com as redes Wi-Fi, exceto que "switch" é substituído por "wireless bridge", também conhecido como "access point". Nos dois casos, os computadores conectados podem enviar pacotes diretamente um para o outro na camada 2, sem passar pelo roteador.


Comentários:

Quando afirmei roteador, realmente quis dizer switch. Meu erro. Meu ponto de vista é que cada computador em uma sub-rede não está conectado um ao outro, mas a um switch, que pode passar os pacotes para o destino correto. Um quadro Ethernet não contém a máscara de sub-rede, pois o switch já possui esse conhecimento e, portanto, não precisa dele para fazer a comutação correta.

Isso é novamente incorreto. Switches não possuem esse conhecimento; seu núcleo de comutação funciona na camada 2 e não sabe nada sobre IP - ele encaminha os quadros Ethernet puramente com base no campo 'endereço MAC de destino'.

Portanto, os hosts precisam da máscara de sub-rede para descobrir qual endereço MAC usar como destino:

  • Se o par estiver na mesma sub-rede, presume-se que ele esteja no link por definição - para que o quadro Ethernet tenha o MAC do par como destino.

  • Para pares fora da sub-rede, o quadro Ethernet terá o MAC do gateway como destino.

(Isso se aplica à configuração padrão. Algumas redes especiais de floco de neve alteram isso - por exemplo, a maioria dos sistemas operacionais permite adicionar rotas "on-link" extras para sub-redes adicionais; por outro lado, alguns comutadores podem ser configurados como respostas ARP falsas, de modo que mesmo "on-link" "o tráfego é forçado através do gateway.)

gravidade
fonte
Obrigado, enquanto o diagrama vinculado não estava claro para mim, sua explicação fazia sentido e eu aprendi algo novo.
Sir Adelaide
7
Quando um pacote é enviado para um endereço IP que não está no cache ARP, a máscara de sub-rede é usada para decidir se: 1. envia uma solicitação ARP para o endereço IP de destino e usa o resultado como o endereço MAC de destino para o pacote original; ou 2. use o endereço MAC do roteador como o endereço MAC de destino para o pacote original.
6
@ Orpedo: os switches não falam IP e não sabem nada sobre a estrutura de sub-rede; eles dependem inteiramente do campo MAC de destino. Portanto, a máscara de sub-rede é necessária para descobrir qual endereço MAC (ou seja, qual host do destinatário) colocar no quadro Ethernet em primeiro lugar.
grawity
2
Os comutadores @Orpedo são "roteadores Ethernet". Eles usam endereços Ethernet (endereços MAC) para descobrir para onde enviar pacotes Ethernet. Ao contrário dos roteadores IP que usam endereços IP para descobrir para onde enviar pacotes IP.
user253751
11
@Orpedo por razões históricas, normalmente executamos o IP pela Ethernet, portanto a carga útil do pacote Ethernet é um pacote IP e o endereço de destino do pacote Ethernet é o endereço Ethernet do próximo roteador IP. Também vai além. Se você executar o Tor sobre IP, a carga útil do pacote IP será um pacote Tor * e o endereço de destino do pacote IP do próximo roteador Tor. (* para a analogia para trabalhar você tem que contar TCP e Tor juntos)
user253751
32

Como um computador sabe se um endereço de destino está na mesma sub-rede ou em outro?

Verificando o endereço local e a máscara de sub-rede .

Vamos verificar alguns exemplos:

Se o meu computador tiver o IP 192.168.0.1e a máscara 255.0.0.0, significa que qualquer endereço de 192.0.0.0para 192.255.255.255está na mesma sub-rede. Os pacotes para todos os outros computadores não precisam passar pelo roteador, eles podem ser enviados diretamente. Envie um pacote ARP para obter o endereço MAC do computador de destino e, em seguida, envie o pacote.

Mas, se o meu computador tem o IP 192.168.0.1ea máscara é 255.255.255.128, em seguida, os computadores na mesma sub-rede são de adddress IP 192.168.0.0a 192.168.0.127única. Eles podem ser acessados ​​diretamente (envie ARP, encontre o endereço MAC, etc.). Qualquer outro endereço, por exemplo, 192.168.0.200deve ser alcançado passando pelo roteador.

jcbermu
fonte
11
Mas por que ele precisa saber se está na mesma sub-rede? Essa é a questão real aqui.
grawity
3
Se o destino estiver na mesma sub-rede, o computador enviará o pacote diretamente, caso contrário, ele será enviado ao roteador. Isso é tudo!!!!
jcbermu
@jcbermu Mas sua pergunta foi baseada na idéia de que, para a maioria das redes domésticas, os pacotes realmente passam pelo roteador de qualquer maneira - quando precisam ser enviados para fora e quando precisam ser redirecionados para qualquer outra sub-rede local dispositivos.
devorado elysium
11

Algo não óbvio sobre IP é que todo dispositivo IP é um roteador .

Isso pode ser visto em um PC normal com o comando "route print". Você está conectado a duas redes: o segmento Ethernet ou wifi local e a rede localhost. Todo pacote precisa estar sujeito a uma decisão sobre em qual rede colocá-lo.

Isso se torna mais aparente se você colocar o computador em duas redes, por exemplo, "pública" e "privada". Agora você definitivamente precisa da máscara de sub-rede para decidir em qual rede enviar o pacote.

Muitas pessoas descobrem acidentalmente que um PC com uma única conexão de rede pode funcionar com uma sub-máscara configurada incorretamente: eles acabam enviando tudo para o gateway.

pjc50
fonte
11
Acho que o argumento dele é que não é necessário que todo dispositivo seja um roteador. Todos os dispositivos que não são roteadores podem enviar tudo para o roteador e o encaminham para o destino, mesmo que esteja na mesma rede que o remetente.
Barmar
@ Barmar, você poderia citar quem e o que você está respondendo, caso contrário, seu comentário não faz sentido se, por exemplo, eles excluirem o comentário, o que pode ter acontecido no seu caso. O que você escreveu lá pode ser interessante se estiver vendo o contexto, você pode fornecer um barmar de contexto.
barlop
11
@ Barmar oh, bem, se esse é um ponto ou pergunta que você acha que não foi abordada - ... a resposta é que ter uma hierarquia - switch, roteador, ensina a carga no roteador. Mas o questionador ficou confuso com o pensamento incorreto de que todos os pacotes vão para o roteador de qualquer maneira, e isso estava na raiz da questão.
barlop
11
Configuração "iprouting": você pode desativar o encaminhamento, mas precisa ter uma tabela de roteamento para saber qual interface usar nos pacotes de saída, mesmo que as opções sejam apenas "lo" e "eth0". Re "envie tudo para o roteador": as vantagens de não fazer isso são mais claras nas redes de camada 2 compartilhadas, mas ninguém mais usa o 10base2.
Pjc50
11
@ Barmar: "Todos os dispositivos que não são do roteador podem enviar tudo para o roteador e o encaminham para o destino, mesmo que esteja na mesma rede que o remetente". Não. Errado. Não é assim que funciona. Em teoria, poderia. Na prática, não. Os roteadores podem tentar otimizar seus recursos simplesmente ignorando o tráfego que vai para a mesma sub-rede de onde o tráfego pode vir. Como é assim que (pelo menos alguns) os roteadores funcionam, outros dispositivos devem ser complexos o suficiente para saber que enviar tráfego para um roteador seria uma perda de tempo, ou então esses outros dispositivos não se comunicarão corretamente
TOOGAM
7

Vejo isso mencionado em algumas das outras respostas aqui, mas acho que poderia ser mais claro: em computadores com várias interfaces de rede, a máscara de sub-rede pode ser usada para determinar automaticamente em qual interface física enviar tráfego IP com base no endereço IP de destino.

Se você estiver enviando um pacote para um dispositivo em uma LAN conectada a uma das interfaces, para saber em qual interface enviá-lo (se você não configurou uma rota explicitamente), o computador poderá verificar as interfaces para ver se subnet_mask & destination_ip == subnet_mask & interface_ip ( &quero dizer bit a bit e e ==quero afirmar a igualdade), e se houver uma correspondência, escolha essa interface.

Dessa forma, se você tem, por exemplo:

  • Interface A com 192.168.1.42/24
  • Interface B com 10.0.0.15/24
  • Interface C com 192.168.2.97/24

E você envia um pacote para 192.168.2.123 e não possui uma rota configurada, pode ser determinado que a interface C deve ser usada porque 255.255.255.0 & 192.168.2.123 == 255.255.255.0 e 192.168.2.97 .

Isso não seria possível se a máscara de sub-rede não fosse conhecida e, portanto, seria necessário configurar uma rota para cada endereço IP para o qual você enviou dados.

Jason C
fonte
6

O TCP / IP poderia ter sido projetado como você sugere - os nós folha enviariam tudo para o roteador e o encaminhavam para o destino, que pode estar na mesma sub-rede que o remetente.

Mas esse não seria o design ideal, por dois motivos:

  1. Ele usa mais largura de banda: todos os pacotes entre dispositivos na mesma sub-rede devem ser transmitidos duas vezes: uma vez do remetente para o roteador e outra vez do roteador para o receptor. Nas redes em que o roteador também é o comutador de rede, na verdade não há largura de banda extra, pois ele passaria pelo comutador de qualquer maneira. Mas nem todas as tecnologias de rede funcionam assim. O design original da Ethernet era uma tecnologia de barramento, sem comutador ou repetidor central.

  2. Coloca mais carga no roteador. Mesmo que o roteador também seja o comutador, é um pouco mais trabalhoso, porque foi implementado no roteamento da Camada 3, em vez da comutação mais simples da Camada 2.

Uma filosofia geral que incorpora o design do TCP / IP é que os nós finais são dispositivos inteligentes e, portanto, supõe-se que eles possam executar parte do trabalho. Eles não precisam conhecer a topologia de rede completa, como os roteadores de backbone, mas sabem o suficiente sobre o ambiente local para executar algumas das tarefas iniciais de roteamento local versus remoto. Não é preciso muito código para implementar esse roteamento inicial simples.

Além disso, os dispositivos que não são roteadores não estão necessariamente em apenas uma sub-rede. Você pode facilmente ter várias placas de rede em um PC - muitas possuem Ethernet e WiFi. E cada um deles pode ser conectado a uma sub-rede diferente, e endereços e máscaras de sub-rede são usados ​​para determinar qual placa de rede usar. Se você executar máquinas virtuais, provavelmente haverá uma sub-rede virtual conectando-as ao sistema host.

Barmar
fonte
Enquanto isso, acho que as redes ATM foram projetadas dessa maneira (provavelmente como resultado de serem orientadas a circuitos) - não houve transmissão nem distinção entre roteadores e switches; topologia em árvore / estrela até o fim.
grawity
@grawity De fato, nos anos 70 e 80 houve uma grande diferença na filosofia entre as empresas de telecomunicações e os acadêmicos ao projetar suas redes. As empresas de telecomunicações eram usadas para redes inteligentes com nós terminais burros (por exemplo, telefones) e projetavam suas redes com comutação de circuitos gerenciada pelo núcleo.
Barmar
5

Se olharmos para uma tabela de roteamento (essa é a minha máquina desktop):

rota ip

default via 172.20.25.1 dev eth1 
172.20.25.0/24 dev eth1 proto kernel scope link src 172.20.25.33 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.1

rota

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.20.25.1     0.0.0.0         UG    0      0        0 eth1
172.20.25.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

Qualquer visualização transmite a mesma informação. As máscaras de sub-rede indicam quais hosts estão diretamente acessíveis nessa rede e outros hosts são encontrados usando um gateway. Em particular, precisamos saber que o gateway é acessível, caso contrário, não poderíamos enviar pacotes para o encaminhamento.

Você poderia, em princípio, enviar tudo via seu host de gateway. Isso pareceria

default via 172.20.25.1 dev eth1 
172.20.25.1 dev eth1 proto kernel scope link src 172.20.25.33 

ou

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         172.20.25.1     0.0.0.0         UG    0      0        0 eth1
172.20.25.1     0.0.0.0         255.255.255.255 U     0      0      

Eu não tentei isso, mas pode ser usado para encaminhamento forçado por MAC .

Toby Speight
fonte
O último método às vezes é usado deliberadamente; veja encaminhamento forçado do MAC .
grawity
2

Ok, entendo como as máscaras de sub-rede são usadas para dividir uma rede em sub-redes, mas minha pergunta é: por que todos os computadores da rede precisam conhecer a máscara de sub-rede e não apenas o roteador?

bem, os dispositivos que as pessoas chamam de roteadores geralmente não são apenas roteadores. Portanto, as pessoas às vezes usam termos como NAPT Router, Home Router ou Consumer Router, para sugerir que não é puramente um roteador. Para deixar claro que não são apenas roteadores, esses dispositivos podem executar o NAPT (que não é roteamento) e possuem um switch integrado (um switch faz a ponte, o que não está roteando) - distinções entre um switch e uma ponte não são tão bem definidos - pode-se dizer que uma ponte geralmente possui 2 portas e conecta diferentes meios de rede (por exemplo, ethernet e não ethernet), enquanto um switch tem várias portas e o mesmo meio de rede). Um switch faz uma ponte.

Se o switch fosse separado do "roteador", seria mais claro. Quando o endereço IP estiver na mesma rede, o pacote será direcionado para desce o cabo até o próximo ponto fisicamente, que é o comutador e, em última análise, é destinado a outro computador na rede (a menos que fosse um comutador gerenciado e você estivesse se conectando ao comutador, por exemplo, telnet ou http e o comutador tivesse seu próprio IP ) e, como o pacote não é destinado a outra rede, ele não alcançará o roteador. Quando é destinado a um computador em uma rede diferente, é claro que ainda vai para o switch, mas continua depois para o roteador (o switch direcionou o pacote para o roteador e o endereço MAC de destino do pacote que chega ao o switch seria o endereço MAC do roteador) e a rota o encaminharia para a interface correta do roteador.

Com essas coisas normalmente chamadas de roteadores, que possuem comutadores dentro deles (como não os roteadores Cisco / Juniper de estilo profissional), o comutador fica dentro. Mas esse é apenas o local do comutador. Ainda é quando o IP está ativado Na mesma rede, o pacote é endereçado ao switch e não ao roteador. E vai apenas para o switch dentro do roteador e não chega ao roteador.

Eu podia entender, se cada computador estivesse fisicamente conectado um ao outro com um fio,

o que você quer dizer aqui .. Se todos os computadores em uma rede inteira estivessem fisicamente conectados com um fio, acho que você não precisaria de um switch ou roteador. O que você está descrevendo parece um pouco com a Ethernet original ... e se todos estiverem conectados com um fio, provavelmente não seria uma rede tão grande. De qualquer forma, não será um fio como você está acostumado. Teria computadores conectados ao longo do caminho com "torneiras". Então eu não sei por que você acabou de lançar essa frase.

mas todos os pacotes precisam passar pelo roteador de qualquer maneira.

então você quer deixar de lado a idéia de todos os computadores conectados a um fio sem roteador.

E não, mesmo em sua casa, eles não passam pelo roteador toda vez. Mesmo com o seu "roteador doméstico", chame-o de uma caixa de internet. Eles vão para o interruptor nele.

Digamos que eu tenho um computador em uma rede 192.168.0.0/255.255.255.0, que possui o IP 192.168.0.1.

Se esse computador tentar acessar um computador fora da sub-rede, digamos 192.168.1.1, ele transmite a mensagem ao roteador,

para o switch, em seguida, a partir do switch que vai para o roteador

o roteador identifica que o IP está fora do intervalo de IP da sub-rede e, em vez de transmiti-lo na sub-rede, transmite-o para a rede à qual está conectado (talvez outro roteador).

bem, o roteador identifica para qual interface de rede é. Ele envia de uma interface para outra interface. Uma distinção - além de qual interface, seria se uma rede está diretamente conectada ou não. Poderia enviar para um switch e depois para um computador. Ou poderia enviar para um computador. Ou, se a rede não estiver conectada diretamente, ela será direcionada para outro roteador.

e sua última frase foi

transmite a mensagem para o roteador,

e então o que, você de repente decidiu parar de escrever?

o roteador identifica que o IP está fora do intervalo de IP da sub-rede e, em vez de transmiti-lo na sub-rede, transmite-o para a rede à qual está conectado (talvez outro roteador).

bem, eu não colocaria assim. Cada interface no roteador tem um intervalo de IP diferente.

Mas, com o seu roteador consumidor ou roteador doméstico, o que acontece é que é como um roteador com duas interfaces, uma do seu lado possui um switch conectado a ele. E as várias portas são portas do switch.

Portanto, se você pensa em termos de parte do roteador, não é como se isto estivesse dentro da sub-rede e fora, porque há potencialmente muitas redes. Há um em cada interface. E o roteador não o estará transmitindo de volta para a mesma rede de onde veio. A razão pela qual alcançou o roteador em primeiro lugar é justamente porque o switch (que alcançou primeiro) viu o endereço MAC e, portanto, viu que esse não é o endereço MAC do roteador.

O computador que enviou o pacote verificará se o IP de destino do pacote está em sua própria rede ou na mesma rede e, com base nisso, escolherá o endereço MAC relevante. O endereço MAC do computador ao qual está destinado (ou seja, se o computador estiver na mesma rede). Ou (se o computador estiver em outra interface do roteador), será o endereço MAC do roteador. Eu acho que isso pode responder diretamente ao título da sua pergunta, por que o computador precisaria conhecer a máscara de sub-rede .. No sistema TCP / IP, como é .. é assim que funciona, o computador escolhe a camada relevante 2 endereço, por exemplo, para Ethernet, o endereço MAC.

barlop
fonte
11
Resposta bastante condecendente, mas tudo bem. Se você acha que essa foi minha última frase, seu navegador não está carregando a página inteira.
Orpedo
@ Orpedo ok eu não percebi isso. removi a linha perguntando se você parou de escrever e incluí e respondi ao restante desse parágrafo. Na verdade, esse parágrafo foi bastante engraçado, porque a resposta para ele aborda o assunto da sua pergunta.
Barlop
Re: switch vs ponte. O switch é normalmente usado para pontes transparentes, ou seja, pontes que possuem um banco de dados (Forwarding Information Base IIRC) que relacionam MACs e portas e preenchem o FIB aprendendo os MACs do MAC de origem em quadros Ethernet. Ao contrário de outros tipos de pontes, por exemplo, pontes proxy-ARP. Outro significado de switch é mais genérico, pode significar um dispositivo em qualquer camada, por exemplo, um switch L7 roteia conexões com base em metadados no nível do aplicativo, um roteador também pode ser chamado de switch L3, ... </ discurso lexicográfico>
Ninjalj 23/03
Re: um roteador que não transmite algo para a mesma rede de onde veio: na verdade ele pode, e também transmitirá um redirecionamento ICMP informando a origem: "ei, o alvo está na sua rede, você pode se comunicar diretamente com ele" .
Ninjalj 23/03
@ninjalj Suponho que, se você tiver um hub conectado ao roteador, o roteador receberá um pacote destinado à rede de onde veio. ) .. então o comutador não enviará um pacote ao roteador se o pacote estiver destinado a retornar por esse comutador à rede de onde se originou. E as caixas que combinam roteadores e switches, é claro, por definição, têm um switch. Não há caixas que combinem roteador e hub.
barlop
1

Mas por que a máscara de sub-rede é dada então para o cuputer / dispositivo, quando não precisa disso para nada? - Orpedo 22/03 às 13:45

O computador / dispositivo faz usar a máscara de sub-rede, a fim de calcular o endereço de broadcast IP.

As interfaces IP que não estão no modo promíscuo são configuradas para responder ao endereço de broadcast IP e ao seu próprio endereço IP.

Joe Inwap
fonte
Já marcou uma resposta, mas na verdade essa foi uma resposta bastante curta e útil.
Orpedo 29/03
11
Acredito que isso esteja quase totalmente errado. As interfaces de rede não sabem nada sobre IP; eles respondem (e se aplicam automaticamente) aos endereços MAC. É por isso que temos o ARP: para que, se eu souber o endereço IP de uma máquina na minha rede local, possa aprender o endereço MAC e usá-lo para se comunicar com a máquina. Bem, há um endereço MAC de broadcast, usado em todas as transmissões. O endereço IP de broadcast existe apenas para uniformidade.
G-Man diz 'Reinstate Monica'
-1

Criei uma conta apenas para responder a isso, pois acho que outras pessoas estão complicando demais o papel de uma máscara de sub-rede.

A máscara de sub-rede determina com que outras máquinas em uma rede um host se comunicará. Se um host estiver fora da minha sub-rede, tentarei conversar com essa máquina através do meu gateway. Se esse host estiver dentro da minha sub-rede, falarei com ele diretamente (nenhum gateway é necessário). Além disso, se uma máquina fora da sub-rede de um host tentar falar com ela, esses pacotes cairão em surdos e serão descartados imediatamente.

Por que isso é relevante para você? Como se não usássemos máscaras de rede, você tentaria falar com o servidor DNS do Google (8.8.8.8) exigiria que você (e TODOS os outros hosts que conversam com ele) soubessem seu endereço físico (endereço MAC). Isso resultaria no seu computador e em todos os outros que precisariam criar uma entrada ARP para todas as máquinas da Internet com as quais você fala. Isso desperdiçaria sua RAM e reduziria a velocidade de todas as redes, pois o endereço físico das máquinas é transmitido muito além do necessário.

Szeraax
fonte
Mencionei anteriormente o que aconteceria se não usássemos redes e gateways quando quis dizer o que aconteceria se não usássemos máscaras de rede. Se não usássemos gateways e redes ... a Internet seria uma rede plana gigante e, para falar com o servidor DNS do Google, você teria que transmitir o pacote por toda a Internet e ver se o Google respondeu. A internet quebraria imediatamente com todo mundo fazendo esse tipo de tráfego de transmissão.
Szeraax 24/03
11
Existem dois modos de trabalhar sem máscaras de sub-rede - o host tenta acessar tudo diretamente no L2 ou usa o gateway L3 para tudo. Você está assumindo que o primeiro seria a única opção, mas isso não é verdade - a pergunta original e todas as outras respostas são mais sobre o último modo, que é usado até na prática em algumas redes.
grawity