Entiendo cómo se utilizan las máscaras de subred para dividir una red en subredes, pero, ¿por qué cada computadora de la red necesita conocer la máscara de subred y no solo el enrutador?
Podría entenderlo si cada computadora estuviera físicamente conectada entre sí con un cable, pero todos los paquetes deben pasar por el enrutador de todos modos.
Digamos que tengo una computadora en una red 192.168.0.0/255.255.255.0
, que tiene la IP 192.168.0.1
.
Si esa computadora intenta comunicarse con una computadora fuera de la subred, digamos 192.168.1.1
, transmite el mensaje al enrutador, el enrutador identifica que la IP está fuera del rango de IP de la subred y, en lugar de transmitirla en la subred red, lo transmite a la red a la que está conectado (quizás otro enrutador).
if each computer were physically connected to each other with a wire
- debe recordar que tcp / ip se inventó en un momento en que este es el caso. Google10-base-2
. Existen otros protocolos que funcionan de manera diferente a tcp / ip, pero en los últimos 20 años IPv4 ganó la batalla de protocolos.Respuestas:
Sus suposiciones originales no son del todo correctas. Lo que llama un "enrutador" son dos dispositivos en uno: un enrutador de dos puertos conectado internamente a un conmutador Ethernet de múltiples puertos . (Aquí hay un diagrama de ejemplo ).
Esto significa que las computadoras están conectadas directamente en la capa 2 y pueden enviarse paquetes entre sí sin pasar por el núcleo del enrutador: simplemente se transmiten entre los puertos mediante el chip del conmutador. (El enrutador tiene su propio "puerto" en el conmutador).
Por lo tanto, si observa los paquetes con Wireshark, verá que usan directamente las direcciones MAC de los demás, mientras que los paquetes "externos" siempre tienen el MAC del enrutador como destino.
(Supongo que está hablando de los "enrutadores inalámbricos" típicos que se encuentran en la mayoría de los hogares, que son la causa habitual de este tipo de preguntas. Una red más grande tendría un enrutador separado con un puerto por subred y algunos interruptores separados (quizás uno maestro más uno por piso / habitación) y varias docenas de computadoras conectadas a esos interruptores).
Es casi lo mismo con las redes Wi-Fi, excepto que "switch" se reemplaza por "puente inalámbrico", también conocido como "punto de acceso". En ambos casos, las computadoras conectadas pueden enviarse paquetes directamente entre sí en la capa 2, sin pasar por el enrutador.
Comentarios:
Eso es de nuevo incorrecto. Los interruptores no tienen este conocimiento; su núcleo de conmutación funciona en la capa 2 y no sabe nada acerca de IP: reenvía tramas Ethernet basadas exclusivamente en el campo 'dirección MAC de destino'.
Por lo tanto, los hosts necesitan la máscara de subred para determinar qué dirección MAC usar como destino:
Si el par está dentro de la misma subred, se supone que está en el enlace por definición, por lo que la trama de Ethernet tendrá el MAC del par como destino.
Para pares fuera de la subred, la trama de Ethernet tendrá el MAC de la puerta de enlace como destino.
(Esto se aplica a la configuración predeterminada. Algunas redes de copos de nieve especiales alteran esto, por ejemplo, la mayoría de los sistemas operativos permiten agregar rutas "en enlace" adicionales para subredes adicionales; por el contrario, algunos conmutadores pueden configurarse respuestas ARP falsas de modo que incluso "en enlace "el tráfico es forzado a través de la puerta de enlace.)
fuente
¿Cómo sabe una computadora si una dirección de destino está en la misma subred en otra?
Comprobación de la dirección local y la máscara de subred .
Veamos un par de ejemplos:
Si mi computadora tiene la IP
192.168.0.1
y la máscara es255.0.0.0
, significa que cualquier dirección de192.0.0.0
a192.255.255.255
está en la misma subred. Los paquetes a todas esas otras computadoras no necesitan pasar por el enrutador, se pueden enviar directamente. Envíe un paquete ARP para obtener la dirección MAC de la computadora de destino y luego envíe el paquete.Pero, si mi equipo tiene la dirección IP
192.168.0.1
y la máscara es255.255.255.128
entonces los equipos de la misma subred IP son de adddress192.168.0.0
a192.168.0.127
solamente. Se puede llegar a ellos directamente (enviar ARP, buscar la dirección MAC, etc.). Cualquier otra dirección, por ejemplo, se192.168.0.200
debe alcanzar pasando por el enrutador.fuente
Algo no obvio sobre IP es que cada dispositivo IP es en sí mismo un enrutador .
Esto se puede ver en una PC normal con el comando "route print". Está conectado a dos redes: su segmento local de Ethernet o wifi y la red localhost. Cada paquete debe estar sujeto a una decisión sobre en qué red colocarlo.
Esto se hace más evidente si coloca su computadora en dos redes, digamos una "pública" y "privada". Ahora definitivamente necesita la máscara de subred para decidir en qué red enviar el paquete.
Muchas personas descubrirán accidentalmente que una PC con una sola conexión de red puede funcionar con una submáscara mal configurada: simplemente terminan enviando todo a la puerta de enlace.
fuente
Veo esto mencionado en algunas de las otras respuestas aquí, pero creo que podría ser más claro: en computadoras con múltiples interfaces de red, la máscara de subred se puede usar para determinar automáticamente en qué interfaz física enviar tráfico IP en función de la dirección IP de destino.
Si está enviando un paquete a un dispositivo en una LAN conectada a una de las interfaces, para saber en qué interfaz enviarlo (si no ha configurado una ruta explícitamente), la computadora puede verificar las interfaces para ver Si subnet_mask y destination_ip == subnet_mask y interface_ip (por
&
me refiero a nivel de bit-y y==
me refiero a la igualdad afirman), y si hay una coincidencia, seleccione dicha interfaz.De esa manera si tienes, por ejemplo:
Y envía un paquete a 192.168.2.123 y no tiene una ruta configurada, se puede determinar que la interfaz C debe usarse porque 255.255.255.0 y 192.168.2.123 == 255.255.255.0 y 192.168.2.97 .
Esto no sería posible si no se conociera la máscara de subred, por lo que tendría que tener una ruta configurada para cada dirección IP a la que envió datos.
fuente
TCP / IP podría haberse diseñado como usted sugiere: los nodos hoja enviarían todo al enrutador y lo reenviarían al destino, que podría estar en la misma subred que el remitente.
Pero este no sería un diseño óptimo, por dos razones:
Utiliza más ancho de banda: cada paquete entre dispositivos en la misma subred debe transmitirse dos veces: una desde el remitente al enrutador y otra vez desde el enrutador al receptor. En las redes donde el enrutador también es el conmutador de red, en realidad no se trata de un ancho de banda adicional, ya que de todos modos pasaría por el conmutador. Pero no todas las tecnologías de red funcionan así. El diseño original de Ethernet era una tecnología de bus, sin interruptor central ni repetidor.
Pone más carga en el enrutador. Incluso si el enrutador también es el conmutador, es un poco más de trabajo porque ha ido a la implementación de enrutamiento de capa 3, en lugar de la conmutación de capa 2 más simple.
Una filosofía general que incorpora el diseño de TCP / IP es que los nodos finales son dispositivos inteligentes, por lo que se supone que pueden hacer parte del trabajo. No tienen que conocer la topología de red completa como lo hacen los enrutadores troncales, pero saben lo suficiente sobre el entorno local para asumir parte de la tarea inicial de enrutamiento local vs remoto. No se necesita mucho código para implementar este enrutamiento inicial simple.
Además, los dispositivos que no son enrutadores no están necesariamente en una sola subred. Puede tener fácilmente varias tarjetas de red en una PC; muchas tienen Ethernet y WiFi. Y cada uno de ellos se puede conectar a una subred diferente, y se usan direcciones más máscaras de subred para determinar qué tarjeta de red usar. Si ejecuta máquinas virtuales, es probable que haya una subred virtual que las conecte al sistema host.
fuente
Si miramos una tabla de enrutamiento (esta es mi máquina de escritorio):
ruta ip
ruta
Cualquiera de las dos vistas transmite la misma información. Las máscaras de subred indican qué hosts son directamente accesibles en esa red, y otros hosts se encuentran utilizando una puerta de enlace. En particular, tenemos que saber que la puerta de enlace es accesible, de lo contrario no podríamos enviar paquetes para que se reenvíen.
En principio, podría enviar todo a través de su host de puerta de enlace. Eso se vería como
o
No lo he intentado, pero se puede usar para el reenvío forzado por MAC .
fuente
bueno, los dispositivos a los que las personas se refieren como enrutadores generalmente no son solo enrutadores ... por lo tanto, las personas a veces usan términos como NAPT Router, o Home Router, o Consumer Router, para sugerir que no se trata simplemente de un enrutador. Para señalar que no son solo enrutadores, estos dispositivos pueden hacer NAPT (que no es enrutamiento), y tienen un interruptor incorporado (un interruptor hace puente, que no es enrutamiento: distinciones entre un interruptor y un puente están un poco mal definidos: se puede decir que un puente a menudo tendría 2 puertos y conectaría diferentes medios de red (por ejemplo, ethernet y no ethernet), mientras que un conmutador tendría múltiples puertos y el mismo medio de red). Un interruptor hace un puente.
Si el conmutador se separara del "enrutador", de hecho, sería más claro. Cuando la dirección IP está en la misma red, el paquete
se dirige abaja el cable a lo que sigue físicamente, que es el conmutador, y finalmente se destina a otra computadora en la red (a menos que fuera un conmutador administrado y estuvieras conectado al conmutador, por ejemplo, telnet o http y el conmutador tenía su propia ip ), y dado que el paquete no está destinado a otra red, el paquete no llegará al enrutador. Cuando está destinado a una computadora en una red diferente, entonces, por supuesto, sigue yendo al conmutador, pero luego continúa al enrutador (el conmutador dirigió el paquete al enrutador y la dirección MAC de destino del paquete que llega a el conmutador habría sido la dirección MAC del enrutador), y la ruta lo enrutaría fuera de la interfaz correcta del enrutador.Con estas cosas típicamente llamadas enrutadores, que tienen conmutadores dentro de ellos (como, no los enrutadores cisco / juniper de estilo profesional), entonces el conmutador está dentro ... Pero esa es solo la ubicación del conmutador ... Sigue siendo eso cuando la IP está encendida la misma red, entonces el paquete se dirige al conmutador, no al enrutador. Y va solo al interruptor dentro del enrutador y no llega al enrutador.
¿Qué quieres decir aquí? Si todas las computadoras de una red completa estuvieran físicamente conectadas con un cable ... entonces supongo que no necesitarías un conmutador o enrutador. Lo que estás describiendo suena un poco como el ethernet original ... y si todos están conectados con un cable, probablemente no sería una red tan grande. Y de todos modos, no será un cable como estás acostumbrado. Tendría computadoras conectadas en el camino con "toques". Así que no sé por qué acabas de lanzar esa frase.
entonces quiere decir dejar de lado la idea de todas las computadoras conectadas con un cable sin enrutador.
Y no, incluso en la configuración de su hogar, no pasan por el enrutador cada vez. Incluso con su "enrutador doméstico", llámelo caja de internet. Ellos van al interruptor en ella.
al conmutador luego desde el conmutador va al enrutador
bueno, el enrutador identifica para qué interfaz de red es. Envía de una interfaz a otra interfaz. Una distinción, además de qué interfaz, sería si una red está directamente conectada o no. Podría enviar a un interruptor y luego a una computadora. O podría enviar a una computadora. O si la red no está conectada directamente, iría a otro enrutador.
y tu última oración fue
y luego, ¿de repente decidiste dejar de escribir?bueno, no lo diría así. Cada interfaz en el enrutador tiene un rango de IP diferente.
Pero, con su enrutador de consumidor o su enrutador doméstico, lo que sucede es que es como un enrutador con dos interfaces, una a su lado tiene un interruptor conectado. Y los puertos múltiples son puertos del conmutador.
Entonces, si piensa en términos de la parte del enrutador, no es como si esto estuviera dentro de la subred y fuera, porque potencialmente hay muchas redes. Hay uno en cada interfaz. Y el enrutador no lo va a transmitir de vuelta a la misma red de la que proviene. La razón por la cual llegó al enrutador en primer lugar es precisamente porque el conmutador (al que llegó primero) vio la dirección MAC y vio que esa no es la dirección MAC del enrutador.
La computadora que envió el paquete, verificará si la IP de destino del paquete está en su propia red o en la misma red, y luego, basándose en eso, elegirá la dirección MAC relevante. O la dirección MAC de la computadora a la que está destinada (eso es si la computadora está en la misma red). O (si la computadora está en otra interfaz del enrutador), entonces será la dirección MAC del enrutador. Supongo que eso podría responder el título de su pregunta directamente, en cuanto a por qué la computadora necesitaría conocer la máscara de subred ... En el sistema TCP / IP tal como está ... así es como funciona, la computadora selecciona la capa 2 correspondiente dirección, por ejemplo, para ethernet, la dirección MAC.
fuente
El ordenador / dispositivo hace uso de la máscara de subred con el fin de calcular la dirección IP de difusión.
Las interfaces IP que no están en modo promiscuo están configuradas para responder a la dirección de difusión IP, así como a su propia dirección IP.
fuente
Creé una cuenta solo para responder esto, ya que creo que otros están complicando demasiado el papel de una máscara de subred.
La máscara de subred determina con qué otras máquinas en una red se comunicará un host. Si un host se encuentra fuera de mi subred, intentaré hablar con esa máquina a través de mi puerta de enlace. Si ese host está dentro de mi subred, hablaré con ese host directamente (no se necesita puerta de enlace). Además, si una máquina fuera de la subred de un host intenta comunicarse con ella, esos paquetes caerán en oídos sordos y se caerán de inmediato.
¿Por qué es eso relevante para ti? Porque si no utilizáramos máscaras de red, si intenta hablar con el servidor DNS de Google (8.8.8.8) le exigiría a usted (y CADA otro host que habla con él) que conozca su dirección física (dirección MAC). Esto provocaría que su computadora y todos los demás necesiten crear una entrada ARP para cada máquina de Internet con la que hable. Perdería la memoria RAM y ralentizaría todas las redes, ya que la dirección física de las máquinas pasa mucho más de lo necesario.
fuente