Qué sucede con las conexiones dentro y fuera del túnel VPN

Los artículos auténticos surgen de los correos electrónicos enviados al equipo de soporte técnico de Tucha. Por ejemplo, un cliente nos contactó recientemente para solicitarnos una aclaración sobre qué sucede durante las conexiones dentro de un túnel VPN entre la oficina del usuario y el entorno de la nube, así como durante las conexiones fuera del túnel VPN. Por lo tanto, el texto a continuación es un correo electrónico real que enviamos a uno de nuestros clientes en respuesta a su pregunta. Por supuesto, hemos cambiado las direcciones IP para proteger el anonimato del cliente. Pero sí, el equipo de soporte técnico de Tucha es reconocido por sus respuestas detalladas y correos electrónicos informativos. 🙂

Por supuesto, entendemos que este artículo no será innovador para muchos. Sin embargo, dado que Habr publica ocasionalmente artículos para administradores principiantes, y dado que este artículo se inspiró en un correo electrónico real a un cliente real, compartiremos esta información aquí. Es muy probable que le sea útil.
Por lo tanto, explicaremos en detalle qué sucede entre un servidor en la nube y una oficina si están conectados mediante una red de sitio a sitio. Tenga en cuenta que algunos servicios solo son accesibles desde la oficina, mientras que otros lo son desde cualquier lugar de internet.

Permítanos explicarle de inmediato lo que nuestro cliente quería en el servidor. 192.168.A.1 Era posible venir desde cualquier lugar vía RDP, conectándose a AAA2:13389, y el acceso a otros servicios solo es posible desde la oficina. (192.168.B.0/24), conectado a través de VPN. El cliente también lo tenía configurado inicialmente para que el coche 192.168.B.2 En la oficina, también puedes usar RDP desde cualquier lugar, conectándote a BBB1:11111Ayudamos a configurar conexiones IPSec entre la nube y la oficina, y el especialista en TI del cliente empezó a preguntarse qué ocurriría en determinados escenarios. Para responder a todas estas preguntas, le redactamos el documento que puede leer a continuación.

Qué sucede con las conexiones dentro y fuera del túnel VPN

Ahora veamos estos procesos con más detalle.

Posición uno

Cuando algo se envía desde 192.168.B.0/24 в 192.168.A.0/24 o fuera 192.168.A.0/24 в 192.168.B.0/24, entra a la VPN. Es decir, este paquete se cifra adicionalmente y se transmite entre BBB1 и AAA1Sino 192.168.A.1 ve el paquete desde 192.168.B.1Pueden comunicarse entre sí mediante cualquier protocolo. Las respuestas de retorno se transmiten a través de la VPN de la misma manera, es decir, el paquete de 192.168.A.1 para 192.168.B.1 se enviará como un datagrama ESP desde AAA1 en BBB1, que el enrutador del otro lado desplegará, sacará ese paquete y se lo entregará a 192.168.B.1 como un paquete de 192.168.A.1.

Ejemplo concreto:

1) 192.168.B.1 apela a 192.168.A.1, quiere establecer una conexión TCP con 192.168.A.1:3389;

2) 192.168.B.1 envía una solicitud de conexión desde 192.168.B.1:55555 (elige el número de puerto para la retroalimentación en sí, de aquí en adelante usaremos el número 55555 como ejemplo del número de puerto que elige el sistema al formar una conexión TCP) 192.168.A.1:3389;

3) el sistema operativo que se ejecuta en la computadora con la dirección 192.168.B.1, decide reenviar este paquete a la dirección de puerta de enlace del enrutador (192.168.B.254 en nuestro caso), porque hay otras rutas más específicas para 192.168.A.1, no tiene uno, por lo que reenvía el paquete a través de la ruta predeterminada (0.0.0.0/0);

4) Para ello, intenta encontrar la dirección MAC de la dirección IP. 192.168.B.254 en la tabla de caché del protocolo ARP. Si no se encuentra, se envía desde la dirección 192.168.B.1 Difundir la consulta "quién tiene" a la red 192.168.B.0/24. Cuando 192.168.B.254 en respuesta, le envía su dirección MAC, el sistema le transmite un paquete Ethernet e ingresa esta información en su tabla de caché;

5) El enrutador recibe este paquete y decide dónde reenviarlo: tiene una política según la cual debe reenviar todos los paquetes entre 192.168.B.0/24 и 192.168.A.0/24 transferir a través de una conexión VPN entre BBB1 и AAA1;

6) el enrutador genera un datagrama ESP desde BBB1 en AAA1;

7) El enrutador decide a quién reenviar este paquete, lo envía a, digamos, BBB254 (puerta de enlace del ISP) porque hay rutas más específicas para AAA1, que 0.0.0.0/0, no tiene;

8) Tal como se dijo antes, encuentra la dirección MAC para BBB254 y transmite el paquete a la puerta de enlace del proveedor de Internet;

9) Los proveedores de Internet transmiten datagramas ESP desde BBB1 en AAA1;

10) enrutador virtual activado AAA1 recibe este datagrama, lo descifra y recibe el paquete de 192.168.B.1:55555 para 192.168.A.1:3389;

11) El enrutador virtual verifica a quién transferirlo, encuentra la red en la tabla de enrutamiento 192.168.A.0/24 y lo envía directamente a 192.168.A.1, ya que tiene una interfaz 192.168.A.254/24;

12) Para ello, el enrutador virtual encuentra la dirección MAC para 192.168.A.1 y le transmite este paquete a través de una red Ethernet virtual;

13). 192.168.A.1 recibe este paquete en el puerto 3389, acepta establecer una conexión y forma un paquete en respuesta a 192.168.A.1:3389 en 192.168.B.1:55555;

14) Su sistema reenvía este paquete a la dirección de puerta de enlace del enrutador virtual (192.168.A.254 en nuestro caso), porque hay otras rutas más específicas para 192.168.B.1, no tiene uno, por lo tanto debe reenviar el paquete a través de la ruta predeterminada (0.0.0.0/0);

15) Al igual que en los casos anteriores, el sistema que se ejecuta en el servidor con la dirección 192.168.A.1, encuentra la dirección MAC 192.168.A.254, ya que está en la misma red que su interfaz 192.168.A.1/24;

16) El enrutador virtual recibe este paquete y decide dónde reenviarlo: tiene una política según la cual debe reenviar todos los paquetes entre 192.168.A.0/24 и 192.168.B.0/24 transferir a través de una conexión VPN entre AAA1 и BBB1;

17) El enrutador virtual genera un datagrama ESP a partir de AAA1 para BBB1;

18) El enrutador virtual decide a quién reenviar este paquete y lo envía a AAA254 (el gateway del ISP, en este caso, también somos nosotros), porque hay rutas más específicas para BBB1, que 0.0.0.0/0, no tiene;

19) Los proveedores de Internet transmiten datagramas ESP a través de sus redes AAA1 en BBB1;

20) enrutador encendido BBB1 recibe este datagrama, lo descifra y recibe el paquete de 192.168.A.1:3389 para 192.168.B.1:55555;

21) entiende que debe ser transferido a 192.168.B.1, ya que está en la misma red que él, por lo tanto, tiene una entrada correspondiente en la tabla de enrutamiento, lo que lo obliga a enviar paquetes para toda la red. 192.168.B.0/24 directamente;

22) El enrutador encuentra la dirección MAC para 192.168.B.1 y le entrega este paquete;

23) el sistema operativo de la computadora con la dirección 192.168.B.1 acepta un paquete de 192.168.A.1:3389 para 192.168.B.1:55555 e inicia los siguientes pasos para establecer una conexión TCP.

Este ejemplo describe, de forma bastante concisa y simplificada (y aún quedan muchos detalles por recordar), lo que sucede en los niveles 2 a 4. Los niveles 1, 5 a 7 no se consideran.

Posición dos

Si con 192.168.B.0/24 algo se envía exactamente a AAA2No va a la VPN, sino directamente. Es decir, si el usuario de la dirección... 192.168.B.1 apela a AAA2:13389Este paquete se recibirá desde la dirección BBB1, pasa AAA2, y allí el enrutador lo recibe y lo transmite a 192.168.A.1. 192.168.A.1 No sabe nada sobre 192.168.B.1, ve un paquete de BBB1, ya que la recibió. Por lo tanto, la respuesta a esta solicitud sigue la ruta general; también se recibe de la dirección AAA2 y continúa BBB1, y ese enrutador envía esta respuesta a 192.168.B.1, él ve la respuesta desde AAA2, a quien se dirigió.

Ejemplo concreto:

1) 192.168.B.1 apela a AAA2, quiere establecer una conexión TCP con AAA2:13389;

2) 192.168.B.1 envía una solicitud de conexión desde 192.168.B.1:55555 (este número, como en el ejemplo anterior, puede ser diferente) AAA2:13389;

3) el sistema operativo que se ejecuta en la computadora con la dirección 192.168.B.1, decide reenviar este paquete a la dirección de puerta de enlace del enrutador (192.168.B.254 en nuestro caso), porque hay otras rutas más específicas para AAA2, no tiene uno, lo que significa que envía el paquete a través de la ruta predeterminada (0.0.0.0/0);

4) Para ello, como mencionamos en el ejemplo anterior, intenta encontrar la dirección MAC para la dirección IP 192.168.B.254 en la tabla de caché del protocolo ARP. Si no se encuentra, se envía desde la dirección 192.168.B.1 Difundir la consulta "quién tiene" a la red 192.168.B.0/24. Cuando 192.168.B.254 en respuesta, le envía su dirección MAC, el sistema le transmite un paquete Ethernet e ingresa esta información en su tabla de caché;

5) el enrutador recibe este paquete y decide dónde reenviarlo: tiene una política según la cual debe reenviar (reemplazando la dirección de retorno) todos los paquetes desde 192.168.B.0/24 a otros nodos de Internet;

6) dado que esta política implica que la dirección de retorno debe coincidir con la dirección inferior en la interfaz a través de la cual se transmitirá este paquete, el enrutador primero decide a quién exactamente transmitir este paquete y, como en el ejemplo anterior, debe enviarlo a BBB254 (puerta de enlace del ISP) porque hay rutas más específicas para AAA2, que 0.0.0.0/0, no tiene;

7) por lo tanto, el enrutador reemplaza la dirección de retorno del paquete, de ahora en adelante el paquete de BBB1:44444 (el número de puerto puede ser diferente, por supuesto) AAA2:13389;

8) El enrutador recuerda lo que hizo, por lo que cuando AAA2:13389 к BBB1:44444 Cuando llegue una respuesta, sabrá que debe cambiar la dirección y el puerto del destinatario a 192.168.B.1:55555.

9) Ahora el enrutador debe transmitirlo a la red del ISP a través de BBB254, así como ya mencionamos, encuentra la dirección MAC para BBB254 y transmite el paquete a la puerta de enlace del proveedor de Internet;

10) Los proveedores de Internet transmiten paquetes desde sus redes BBB1 en AAA2;

11) enrutador virtual activado AAA2 acepta este paquete en el puerto 13389;

12) Hay una regla en el enrutador virtual que estipula que los paquetes que llegan de cualquier remitente en este puerto deben reenviarse a 192.168.A.1:3389;

13) El enrutador virtual encuentra la red en la tabla de enrutamiento 192.168.A.0/24 y lo envía directamente 192.168.A.1, porque tiene una interfaz 192.168.A.254/24;

14) Para ello, el enrutador virtual encuentra la dirección MAC para 192.168.A.1 y le transmite este paquete a través de una red Ethernet virtual;

15). 192.168.A.1 recibe este paquete en el puerto 3389, acepta establecer una conexión y forma un paquete en respuesta a 192.168.A.1:3389 en BBB1:44444;

16) Su sistema reenvía este paquete a la dirección de puerta de enlace del enrutador virtual (192.168.A.254 en nuestro caso), porque hay otras rutas más específicas para BBB1, no tiene uno, por lo tanto debe reenviar el paquete a través de la ruta predeterminada (0.0.0.0/0);

17) Al igual que en los casos anteriores, el sistema que se ejecuta en el servidor con la dirección 192.168.A.1, encuentra la dirección MAC 192.168.A.254, ya que está en la misma red que su interfaz 192.168.A.1/24;

18) El enrutador virtual recibe este paquete. Cabe destacar que recuerda que lo recibió en AAA2:13389 paquete de BBB1:44444 y cambió la dirección y el puerto del destinatario a 192.168.A.1:3389, por lo tanto, el paquete de 192.168.A.1:3389 para BBB1:44444 cambia la dirección del remitente a AAA2:13389;

19) El enrutador virtual decide a quién reenviar este paquete y lo envía a AAA254 (el gateway del ISP, en este caso, también somos nosotros), porque hay rutas más específicas para BBB1, que 0.0.0.0/0, no tiene;

20) Los proveedores de Internet transmiten un paquete a través de sus redes AAA2 en BBB1;

21) enrutador encendido BBB1 recibe este paquete y recuerda que cuando transmitió el paquete desde 192.168.B.1:55555 para AAA2:13389, cambió su dirección de remitente y puerto a BBB1:44444Entonces esta es la respuesta que se debe transmitir. 192.168.B.1:55555 (de hecho, hay varios controles más allí, pero no entraremos en eso);

22) entiende que debe ser transferido directamente a 192.168.B.1, ya que está en la misma red que él, por lo tanto, tiene una entrada correspondiente en la tabla de enrutamiento, lo que lo obliga a enviar paquetes a toda la red. 192.168.B.0/24 directamente;

23) El enrutador encuentra la dirección MAC para 192.168.B.1 y le entrega este paquete;

24) el sistema operativo de la computadora con la dirección 192.168.B.1 acepta un paquete de AAA2:13389 para 192.168.B.1:55555 e inicia los siguientes pasos para establecer una conexión TCP.

Cabe señalar que en este caso el ordenador con la dirección 192.168.B.1 No sabe nada sobre el servidor con la dirección. 192.168.A.1, él sólo se comunica con AAA2Lo mismo ocurre con el servidor con la dirección 192.168.A.1 No sabe nada sobre la computadora con la dirección 192.168.B.1Él cree que estaba conectado desde la dirección. BBB1, y no sabe nada más, por así decirlo.

También debe tenerse en cuenta que si este equipo accede AAA2:1540, la conexión no se establecerá porque el reenvío de conexiones al puerto 1540 no está configurado en el enrutador virtual, incluso si está en algún servidor de la red virtual 192.168.A.0/24 (por ejemplo, en un servidor con la dirección 192.168.A.1) y hay algún servicio esperando una conexión en este puerto. Si un usuario de una computadora con la dirección 192.168.B.1 Es absolutamente necesario para establecer una conexión con este servicio, se debe utilizar una VPN, es decir contactar directamente 192.168.A.1:1540.

Cabe destacar que cualquier intento de establecer una conexión con AAA1 (excepto la conexión IPSec desde el lateral) BBB1 no tendrá éxito. Cualquier intento de establecer conexiones con AAA2, a excepción de las conexiones al puerto 13389, tampoco tendrán éxito.
También observamos que en el caso de que AAA2 Si otra persona (por ejemplo, CCCC) se pone en contacto contigo, todo lo descrito en los puntos 10-20 también les será aplicable. Lo que ocurra antes y después dependerá de qué esté detrás de este CCCC. No disponemos de esta información, por lo que recomendamos consultar con los administradores del nodo con la dirección CCCC.

Posición tres

Y viceversa, si con 192.168.A.1 cualquier cosa enviada a cualquier puerto que esté configurado para ser reenviado dentro de BBB1 (por ejemplo, 11111), tampoco ingresa a la VPN, sino que simplemente se envía desde AAA1 y se mete en BBB1, y ya lo transmite en algún lugar, digamos, 192.168.B.2:3389Él ve este paquete no desde 192.168.A.1y desde AAA1. Y cuando 192.168.B.2 respuestas, el paquete viene de BBB1 en AAA1, y luego llega al iniciador de la conexión - 192.168.A.1.

Ejemplo concreto:

1) 192.168.A.1 apela a BBB1, quiere establecer una conexión TCP con BBB1:11111;

2) 192.168.A.1 envía una solicitud de conexión desde 192.168.A.1:55555 (este número, como en el ejemplo anterior, puede ser diferente) BBB1:11111;

3) el sistema operativo que se ejecuta en el servidor con la dirección 192.168.A.1, decide reenviar este paquete a la dirección de puerta de enlace del enrutador (192.168.A.254 en nuestro caso), porque hay otras rutas más específicas para BBB1, no tiene uno, por lo que reenvía el paquete a través de la ruta predeterminada (0.0.0.0/0);

4) Para ello, como mencionamos en los ejemplos anteriores, intenta encontrar la dirección MAC para la dirección IP 192.168.A.254 en la tabla de caché del protocolo ARP. Si no se encuentra, se envía desde la dirección 192.168.A.1 Difundir la consulta "quién tiene" a la red 192.168.A.0/24. Cuando 192.168.A.254 en respuesta, envía su dirección MAC, el sistema le transmite un paquete Ethernet e ingresa esta información en su tabla de caché;

5) el enrutador virtual recibe este paquete y decide dónde reenviarlo: tiene una política según la cual debe reenviar (reemplazando la dirección de retorno) todos los paquetes desde 192.168.A.0/24 a otros nodos de Internet;

6) Dado que esta política supone que la dirección de retorno debe coincidir con la dirección inferior en la interfaz a través de la cual se transmitirá este paquete, el enrutador virtual primero decide a quién exactamente transmitir este paquete y, como en el ejemplo anterior, debe enviarlo a AAA254 (el gateway del ISP, en este caso, también somos nosotros), porque hay rutas más específicas para BBB1, que 0.0.0.0/0, no tiene;

7) Esto significa que el enrutador virtual reemplaza la dirección de retorno del paquete, de ahora en adelante es un paquete de AAA1:44444 (el número de puerto puede ser diferente, por supuesto) BBB1:11111;

8) El enrutador virtual recuerda lo que ha hecho, por lo tanto, cuando BBB1:11111 para AAA1:44444 Cuando llegue una respuesta, sabrá que debe cambiar la dirección y el puerto del destinatario a 192.168.A.1:55555.

9) Ahora el enrutador virtual debe transmitirlo a la red del ISP a través de AAA254, así como ya mencionamos, encuentra la dirección MAC para AAA254 y transmite el paquete a la puerta de enlace del proveedor de Internet;

10) Los proveedores de Internet transmiten paquetes desde sus redes AAA1 a BBB1;

11) enrutador encendido BBB1 acepta este paquete en el puerto 11111;

12) Hay una regla en el enrutador virtual que estipula que los paquetes que llegan de cualquier remitente en este puerto deben reenviarse a 192.168.B.2:3389;

13) El enrutador encuentra la red en la tabla de enrutamiento 192.168.B.0/24 y lo envía directamente a 192.168.B.2, ya que tiene una interfaz 192.168.B.254/24;

14) Para ello, el enrutador virtual encuentra la dirección MAC para 192.168.B.2 y le transmite este paquete a través de una red Ethernet virtual;

15). 192.168.B.2 recibe este paquete en el puerto 3389, acepta establecer una conexión y forma un paquete en respuesta a 192.168.B.2:3389 en AAA1:44444;

16) Su sistema reenvía este paquete a la dirección de puerta de enlace del enrutador (192.168.B.254 en nuestro caso), porque hay otras rutas más específicas para AAA1, no tiene uno, por lo tanto debe reenviar el paquete a través de la ruta predeterminada (0.0.0.0/0);

17) al igual que en los casos anteriores, el sistema que se ejecuta en el ordenador con la dirección 192.168.B.2, encuentra la dirección MAC 192.168.B.254, ya que está en la misma red que su interfaz 192.168.B.2/24;

18) El enrutador recibe este paquete. Cabe destacar que recuerda que lo recibió en BBB1:11111 paquete de AAA1 y cambió la dirección y el puerto del destinatario a 192.168.B.2:3389, por lo tanto, el paquete de 192.168.B.2:3389 para AAA1:44444 cambia la dirección del remitente a BBB1:11111;

19) El enrutador decide a quién reenviar este paquete. Lo envía, por ejemplo, a... BBB254 (la puerta de enlace del proveedor de Internet, cuya dirección exacta desconocemos), porque hay rutas más específicas para AAA1, que 0.0.0.0/0, no tiene;

20) Los proveedores de Internet transmiten un paquete a través de sus redes BBB1 en AAA1;

21) enrutador virtual activado AAA1 recibe este paquete y recuerda que cuando transmitió el paquete desde 192.168.A.1:55555 para BBB1:11111, cambió su dirección de remitente y puerto a AAA1:44444Así que esta es la respuesta que se debe transmitir. 192.168.A.1:55555 (de hecho, como mencionamos en el ejemplo anterior, también hay varias comprobaciones más, pero esta vez no entraremos en ellas);

22) entiende que debe ser transferido directamente a 192.168.A.1, dado que está en la misma red que él, significa que tiene una entrada correspondiente en la tabla de enrutamiento, lo que lo obliga a enviar paquetes a toda la red. 192.168.A.0/24 directamente;

23) El enrutador encuentra la dirección MAC para 192.168.A.1 y le entrega este paquete;

24) sistema operativo en el servidor con la dirección 192.168.A.1 acepta un paquete de BBB1:11111 para 192.168.A.1:55555 e inicia los siguientes pasos para establecer una conexión TCP.

Al igual que en el caso anterior, en este caso el servidor con la dirección 192.168.A.1 No sabe nada sobre la computadora con la dirección 192.168.B.1, él sólo se comunica con BBB1. Computadora con dirección 192.168.B.1 Tampoco sabe nada sobre el servidor con la dirección. 192.168.A.1Él cree que estaba conectado desde la dirección. AAA1, y el resto está oculto para él.

conclusión

Así funciona tanto para las conexiones dentro del túnel VPN entre la oficina del cliente y el entorno de nube, como para las conexiones fuera del túnel VPN. Si tiene alguna pregunta o necesita nuestra ayuda con tareas relacionadas con la nube, Contáctanos 24/7.

Fuente: habr.com

Compre alojamiento confiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra alojamiento web fiable con protección DDoS, servidores VPS VDS | ProHoster