
Entiendo cómo se utilizan las máscaras de subred para dividir una red en subredes, pero, ¿por qué todas las computadoras de la red necesitan 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 transmitirlo en la subred, red, lo transmite a la red a la que está conectado (quizás otro enrutador).
Respuesta1
Sus suposiciones originales no son del todo correctas. Lo que usted llama un "enrutador" son dos dispositivos en uno: un enrutador de dos puertos conectado internamente a un enrutador de múltiples puertos.interruptor de Eternet. (Aquí hay un ejemplodiagrama.)
Esto significa que las computadorassonconectados directamente en la capa 2 y pueden enviarse paquetes entre sísinpasando por el núcleo del enrutador; simplemente el chip del conmutador los transmite entre los puertos. (El enrutador tiene su propio "puerto" en el conmutador).
Entonces, si observa los paquetes que usan Wireshark, verá que usan directamente las direcciones MAC de cada uno, mientras que los paquetes "externos" siempre tienen la MAC del enrutador como destino.
(Supongo que estás hablando de los típicos "routers inalámbricos" 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 unseparadoenrutador con un puerto por subred y algunos conmutadores separados (quizás uno maestro más uno por piso/habitación) y varias docenas de computadoras conectadas a esos conmutadores).
Es más o menos lo mismo con las redes Wi-Fi, excepto que "conmutador" 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,sinpasando por el enrutador.
Comentarios:
Cuando mencioné enrutador, en realidad me refiero a conmutador. Mi error. Mi punto es que cada computadora en una subred no está conectada entre sí, sino más bien a un conmutador, que luego puede pasar paquetes al destino correcto. Una trama Ethernet no contiene la máscara de subred, ya que el conmutador ya tiene este conocimiento y, por lo tanto, no lo necesita para realizar la conmutación correcta.
Eso es nuevamente incorrecto. Los conmutadores no tienen este conocimiento; su núcleo de conmutación funciona en la capa 2 y no sabecualquier cosasobre IP: reenvía tramas Ethernet basándose únicamente 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 enlacepor definición, por lo que la trama Ethernet tendrá la MAC del par como destino.
Para compañerosafuerala subred, la trama Ethernet tendrá lapuerta de enlaceMAC como destino.
(Esto se aplica a la configuración predeterminada. Algunas redes especiales modifican 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 estar configurados para falsificar respuestas ARP de modo que incluso "en enlace" "el tráfico se fuerza a través de la puerta de enlace).
Respuesta2
¿Cómo sabe una computadora si undirección de destino¿Está en la misma subred o en otra?
Revisando eldirección localy elmáscara de subred.
Veamos un par de ejemplos:
Si mi computadora tiene la IP 192.168.0.1
y la máscara es, 255.0.0.0
significa que cualquier dirección de 192.0.0.0
a 192.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 computadora tiene la IP 192.168.0.1
y la máscara, 255.255.255.128
entonces las computadoras en la misma subred son desde la dirección IP 192.168.0.0
hasta 192.168.0.127
solamente. Se puede contactar con ellos directamente (enviar ARP, buscar dirección MAC, etc.). A cualquier otra dirección, por ejemplo, 192.168.0.200
se debe llegar a través del enrutador.
Respuesta3
Algo que no es obvio acerca de IP es que cada dispositivo IPes en sí mismo un enrutador.
Esto se puede ver en una PC normal con el comando "ruta de impresión". Está conectado a dos redes: su segmento local Ethernet o wifi y la red localhost. Cada paquete debe estar sujeto a una decisión sobre en qué red colocarlo.
Esto se vuelve más evidente si conecta su computadora a dos redes, digamos una "pública" y una "privada". Ahora definitivamente necesitas la máscara de subred para decidir a qué red enviar el paquete.
Muchas personas descubrirán accidentalmente que una PC con una única conexión de red puede funcionar con una submáscara mal configurada: simplemente terminarán enviando todo a la puerta de enlace.
Respuesta4
TCP/IP podría haberse diseñado como usted sugiere: los nodos hoja enviarían todo al enrutador y este lo reenviaría 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 del remitente al enrutador y otra del enrutador al receptor. En redes donde el enrutador es también el conmutador de red, esto en realidad no es ningún ancho de banda adicional, ya que de todos modos iba a pasar 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 conmutador central ni repetidor.
Pone más carga en el enrutador. Incluso si el enrutador también es el conmutador, es un poco más trabajo porque tiene que pasar 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 realizar parte del trabajo. No necesitan conocer la topología completa de la red como lo hacen los enrutadores troncales, pero saben lo suficiente sobre el entorno local para asumir parte de la tarea inicial de enrutamiento local versus remoto. No se necesita mucho código para implementar este sencillo enrutamiento inicial.
Además, los dispositivos que no son enrutadores no están necesariamente en una sola subred. Puedes 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 las direcciones más máscaras de subred se utilizan 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.