¿Cómo enruta un enrutador las conexiones?

¿Cómo enruta un enrutador las conexiones?

¿Cómo rastrea un enrutador las conexiones? Cuando envía una solicitud http, va al enrutador, que luego se envía a otro enrutador, etc. a través de Internet; pero entonces, ¿cómo sabe que debe ir al servidor? ¿Se reenvía el puerto a un equilibrador de carga? Finalmente, cuando el paquete regresa, ¿cómo saben los enemigos que deben regresar a la computadora porque el paquete fue enviado al enrutador y no a la computadora? ¿Es posible establecer una conexión a una PC controlada por un enrutador, desde fuera de ese enrutador? Es decir, ¿se puede dirigir un paquete a una PC que no esté conectada directamente a Internet?

Respuesta1

Estoy tratando de responder esta vieja pregunta con la esperanza de ayudar a alguien que busque algo como esto. Además, avíseme si cometí algún error.

Para que la información fluya desde su computadora a un servidor web en Internet, hay muchos componentes, dispositivos y algoritmos diferentes en juego, pero nos centraremos en los algoritmos de red que lo hacen posible.

Creo que existen principalmente dos tecnologías de Internet que desempeñan el papel más importante a la hora de hacer posible el flujo de información entre su computadora y un servidor web de Internet. El protocolo de enrutamiento y NAT.

Nos centraremos en el paquete IP, ya que es la unidad de datos en la que funcionan el protocolo de enrutamiento y NAT.

  1. Cuando el paquete IP enviado desde su navegador al servidor de Internet llega al enrutador doméstico, se inspecciona y su IP de origen cambia de la IP de la LAN local del remitente original a la IP pública del enrutador doméstico y luego se enruta al destino. PI. Esta traducción está registrada en eltabla de conexiones.Este es el trabajo de NAT.
  2. Si el destino es parte de la red de la IP pública del enrutador, entonces se envía a esa IP; de lo contrario, se evaluará con la tabla de enrutamiento para determinar una coincidencia. Si el enrutador no puede encontrar uno, reenvía el paquete a su propia puerta de enlace predeterminada. Este proceso continúa hasta que finalmente un enrutador encuentra una coincidencia.Aquí es donde entra en juego el protocolo de enrutamiento..
  3. Si no se encuentra ninguna ruta, se envía un mensaje ICMP Destino inalcanzable-Host inalcanzable al host de origen.
  4. Una vez que se encuentra el host final, acepta los paquetes IP que desencapsula, procesa la solicitud contenida en ellos y luego envía una respuesta. La respuesta tendrá en su IP de destino la IP del router de origen.
  5. La respuesta seguirá el mismo proceso seguido por la solicitud hasta llegar al emisor. Tenga en cuenta que cuando los paquetes toman una determinada ruta hacia su destino, NO necesariamente tienen que tomar la misma ruta de regreso.
  6. Una vez que llega a la IP de Internet de destino, el enrutador compara el tráfico entrante con su tabla de conexiones, realiza la traducción inversa y luego reenvía los paquetes a la máquina adecuada.

Así es como los paquetes IP fluyen desde el navegador al servidor web de destino.

Diagrama de flujo de seguimiento de conexión del enrutador

  • Hay 4 conexiones porque creo que la página que abrí utilizó 4 solicitudes diferentes para crear la página.
  • El cliente que inicia la conexión puede utilizar cualquier puerto de origen que esté disponible. Este puerto quedará reservado temporalmente en uso hasta que ambas máquinas acuerden cerrar la conexión. La IANA sugiere utilizar el rango de 49152 a 65535 para los llamados "puertos efímeros". Los servidores web generalmente se ejecutan en el puerto 80, el puerto predeterminado para el tráfico HTTP, por lo que los clientes enviarían sus solicitudes para ver una página web a ese puerto.
  • En el carril del enrutador doméstico es como una instantánea de la tabla de conexiones del enrutador.
  • En el carril del servidor SuperUser hay una instantánea de las conexiones establecidas con el servidor.

La tabla de conexiones garantiza la unicidad al utilizar principalmente la combinación de IP de origen, puerto de origen, IP de destino y puerto de destino. Obviamente, el factor más importante para determinar la unicidad es el puerto de origen, por lo que en caso de que un host interno diferente intente utilizar un puerto de origen existente, el enrutador cambia ese puerto y anota ese cambio en la tabla de conexiones.

Esto debería responder a todas sus preguntas excepto ésta,¿Es posible establecer una conexión con una PC controlada por un enrutador, desde fuera de ese enrutador? Es decir, ¿se puede dirigir un paquete a una PC que no esté conectada directamente a Internet?

Si conoce el puerto NAT utilizado en el enrutador para una IP de Internet específica y puede falsificar los paquetes IP y enviarlos al enrutador mientras el enrutador tiene su puerto NAT abierto, entonces, en teoría, debería ser posible, pero estoy seguro de que la mayoría de los enrutadores utilizan más parámetros para identificar la unicidad y autenticidad de los paquetes IP.

Utilicé las siguientes referencias para construir mi respuesta:

Respuesta2

Los enrutadores conectan redes a través de puertas de enlace o interfaces, de manera simplista:

Do I know where this packet should go?
  yes - is it one of mine?
    yes - send to appropriate interface.
    no  - send on to next gateway
  no  - return a packet saying unreachable

El enrutador de su hogar ejecutará un software de seguimiento de conexiones: mantendrá una lista de las conexiones con las que las máquinas de su red han estado hablando en Internet. Así conocerá las direcciones y puertos para devolver las respuestas.

Los paquetes TCP tienen un campo especial que puede contener la dirección de la máquina original. El enrutador utiliza algo llamado enmascaramiento para insertar su dirección de retorno, y la máquina de destino también la incluye. Esto puede ahorrar un poco de trabajo en el rastreador de conexiones, pero también revelar direcciones IP internas al servidor remoto.

Por otro lado, la devolución de paquetes UDP depende del módulo de seguimiento de conexiones del enrutador para devolver las respuestas a la máquina original. Era un problema difícil de resolver hasta hace unos años.

Las nuevas conexiones entrantes no tendrán ninguna entrada en el rastreador de conexiones, por lo que el enrutador no sabrá dónde enviarlas a menos que se le den instrucciones de reenvío específicas para ese tipo de paquete, y encontrará en todos los enrutadores una manera de poder especifique qué máquina de su red recibirá nuevas solicitudes para el puerto 80, por ejemplo.

TCP es un protocolo complejo y sorprendente controlado por estado, los paquetes no tienen que tomar las mismas rutas, pueden dividirse en partes más pequeñas, llegar desordenados, con corrección de errores solicitando que se reenvíen paquetes individuales, y el flujo de datos puede ser reensamblado con las aplicaciones en ambos extremos sin darse cuenta de ninguna dificultad, a menos que sean demasiado grandes para afectar el rendimiento. ¡Se han obtenido muchos doctorados a través de él!

Respuesta3

Para comprender el enrutamiento, primero debe comprender elmodelo OSIy también debes tener una comprensión deCIDR.

Esto será bastante básico:

Cuando un paquete sale de una computadora en una red doméstica estándar, la computadora sabe que es una red privada y entiende que el destino final está fuera de la red debido a CIDR, por lo que envía el paquete a la puerta de enlace predeterminada. La puerta de enlace predeterminada mira la IP y la envía a la cadena de enrutadores hasta que llega a la red de destino (según la información de IP en el encabezado del paquete), esa puerta de enlace luego la reenviará a la IP correcta en la red (a veces esto se basa en en el puerto en los detalles del paquete, a veces solo la IP, dependiendo del servidor/red del extremo remoto). Cuando se devuelve la información solicitada, su enrutador sabe a qué computadora va debido al puerto elegido para marcar la sesión y sabe a qué IP privada pertenece esa sesión. Hay mucho más, pero esta es una explicación de nivel bastante alto para comprender el concepto de enrutamiento. Estoy seguro de que otros me corregirán o agregarán algo más.

La respuesta a su pregunta se reduce a sí, es posible, solo necesita conocer la IP pública en el punto final y el puerto en el que se debe realizar la conexión. El enrutador será responsable de saber a qué computadora reenviar ese puerto para llegar al servidor en la red privada (según las reglas NAT).

Respuesta4

No estoy seguro de haber entendido esto correctamente, pero haré mi mejor suposición. Usted preguntó "¿Es posible establecer una conexión a una PC controlada por un enrutador?" Supongo que te refieres al acceso remoto. Puedes usar algo como vnc o escritorio remoto o eso. Si estás hablando de dos PC conectadas a través de Internet, consulta VPN. Si te refieres a que uno asigna una IP de otro, entonces esa sería una conexión de servidor/cliente y a través de una WAN tendría que ser algo así como una VPN.

El paquete TCP contiene la información del destino LAN dentro del paquete.

información relacionada