Des lettres au support technique de Tucha, ces articles sont nés. Ainsi, récemment, un client nous a contacté pour nous demander de clarifier ce qui se passe lors de la connexion à l'intérieur d'un tunnel VPN entre le bureau de l'utilisateur et l'environnement dans le cloud, ainsi que lors de la connexion à l'extérieur du tunnel VPN. Par conséquent, l'intégralité du texte ci-dessous est une vraie lettre que nous avons envoyée à l'un des clients en réponse à sa question. Bien sûr, nous avons changé les adresses IP afin de ne pas anonymiser le client. Mais, oui, le support technique de Tucha est vraiment célèbre pour ses réponses complètes et ses lettres d'information. :-)
Bien sûr, nous comprenons que pour beaucoup, cet article ne sera pas une révélation. Mais, puisque les articles pour les administrateurs débutants apparaissent de temps en temps sur Habr, et aussi parce que cet article est apparu d'une vraie lettre à un vrai client, nous partagerons toujours cette information ici. Il y a une forte probabilité qu'il soit utile à quelqu'un.
Par conséquent, nous expliquons en détail ce qui se passe entre le serveur dans le cloud et le bureau s'ils sont connectés par un réseau de site à site. Notez que dans ce cas, une partie des services n'est disponible qu'au bureau, et une partie - de n'importe où sur Internet.
Nous expliquerons immédiatement que notre client souhaitait pouvoir venir au serveur
192.168.A.1 de n'importe où via RDP, se connecter à
AAA2: 13389 et à d'autres services - uniquement depuis le bureau
(192.168.B.0 / 24) connecté via VPN En outre, le client a été initialement configuré pour que la machine
192.168.B.2 du bureau soit également accessible via RDP de n'importe où, se connectant à
BBB1: 11111 . Nous avons aidé à organiser les connexions IPSec entre le cloud et le bureau, et le spécialiste informatique du client a commencé à poser des questions sur ce qui se passerait dans tel ou tel cas. Pour répondre à toutes ces questions, nous lui avons en fait écrit tout ce que vous pouvez lire ci-dessous.

Examinons maintenant ces processus plus en détail.
Première position
Quand quelque chose est envoyé de
192.168.B.0 / 24 à
192.168.A.0 / 24 ou de
192.168.A.0 / 24 à
192.168.B.0 / 24 , il entre dans le VPN. Autrement dit, ce paquet est en outre chiffré et transmis entre
BBB1 et
AAA1 , mais
192.168.A.1 voit exactement le paquet de
192.168.B.1 . Ils peuvent communiquer entre eux via n'importe quel protocole. Les réponses de retour sont transmises de la même manière via VPN, ce qui signifie que le paquet de
192.168.A.1 pour
192.168.B.1 sera envoyé en tant que datagramme ESP d'
AAA1 à
BBB1 , que le routeur déploiera de l'autre côté, enlève ce paquet et l'envoie à
192.168.B.1 en tant que paquet de
192.168.A.1 .
Exemple concret:
1)
192.168.B.1 accède à
192.168.A.1 , souhaite établir une connexion TCP avec
192.168.A.1: 3389 ;
2)
192.168.B.1 envoie une demande pour établir une connexion à partir de
192.168.B.1: 55555 (il sélectionne le port pour la rétroaction, ci-après nous utiliserons le numéro 55555 comme exemple du numéro de port que le système sélectionne lors de la génération de TCP- connexions) à
192.168.A.1: 3389 ;
3) le système d'exploitation qui s'exécute sur l'ordinateur avec l'adresse
192.168.B.1 décide de transférer ce paquet vers l'adresse de passerelle du routeur (
192.168.B.254 dans notre cas), car il existe d'autres itinéraires plus spécifiques pour
192.168.A.1 , il ne fait donc pas passer le paquet le long de la route par défaut (0.0.0.0/0);
4) pour cela, elle essaie de trouver l'adresse MAC pour l'adresse IP
192.168.B.254 dans la table de cache du protocole ARP. S'il n'est pas trouvé, il envoie à partir de l'adresse
192.168.B.1 une demande de diffusion qui-a au réseau
192.168.B.0 / 24 . Lorsque
192.168.B.254 lui renvoie son adresse MAC, le système lui envoie un paquet Ethernet et stocke ces informations dans sa table de cache;
5) le routeur reçoit ce paquet et décide où l'envoyer: il a pour politique de transmettre tous les paquets entre
192.168.B.0 / 24 et
192.168.A.0 / 24 sur une connexion VPN entre
BBB1 et
AAA1 ;
6) le routeur génère un datagramme ESP de
BBB1 à
AAA1 ;
7) le routeur décide à qui envoyer ce paquet, il l'envoie, disons, à
BBB254 (passerelle du fournisseur d'accès Internet), car il n'a pas de routes plus spécifiques vers
AAA1 que 0.0.0.0/0;
8) de la même manière que déjà mentionné, il trouve l'adresse MAC pour
BBB254 et envoie le paquet à la passerelle du fournisseur Internet;
9) Les fournisseurs d'accès Internet transmettent via leurs réseaux le datagramme ESP de
BBB1 à
AAA1 ;
10) le routeur virtuel sur
AAA1 reçoit ce datagramme, le déchiffre et reçoit un paquet de
192.168.B.1: 55555 pour
192.168.A.1: 3389 ;
11) le routeur virtuel vérifie à qui il doit être envoyé, trouve le réseau
192.168.A.0 / 24 dans la table de routage et l'envoie directement à
192.168.A.1 , car il possède une interface
192.168.A.254 / 24 ;
12) pour cela, le routeur virtuel trouve l'adresse MAC pour
192.168.A.1 et lui transmet ce paquet via le réseau Ethernet virtuel;
13)
192.168.A.1 reçoit ce paquet sur le port 3389, accepte d'établir une connexion et forme un paquet en réponse de
192.168.A.1: 3389 à
192.168.B.1: 55555 ;
14) son système envoie ce paquet à l'adresse de passerelle du routeur virtuel (
192.168.A.254 dans notre cas), car il n'a pas d'autres routes plus spécifiques pour
192.168.B.1 , par conséquent, il doit transmettre le paquet le long de la route par défaut (0.0.0.0/0);
15) de la même manière que dans les cas précédents, le système qui s'exécute sur le serveur avec l'adresse
192.168.A.1 trouve l'adresse MAC
192.168.A.254 , car il est sur le même réseau avec son interface
192.168.A.1 / 24 ;
16) le routeur virtuel reçoit ce paquet et décide où le transférer: il a pour politique de transmettre tous les paquets entre
192.168.A.0 / 24 et
192.168.B.0 / 24 via une connexion VPN entre
AAA1 et
BBB1 ;
17) le routeur virtuel génère un datagramme ESP de
AAA1 à
BBB1 ;
18) le routeur virtuel décide à qui ce paquet doit être envoyé, l'envoie à
AAA254 (la passerelle du fournisseur Internet, dans ce cas, c'est nous aussi), car il n'a pas de routes plus spécifiques vers
BBB1 que 0.0.0.0/0;
19) Les fournisseurs d'accès Internet transmettent via leurs réseaux un datagramme ESP de
AAA1 à
BBB1 ;
20) le routeur sur
BBB1 reçoit ce datagramme, le déchiffre et reçoit un paquet de
192.168.A.1: 3389 pour
192.168.B.1: 55555 ;
21) il comprend qu'il doit être transmis à
192.168.B.1 , car il est sur le même réseau que lui, donc, il a une entrée correspondante dans la table de routage qui l'oblige à envoyer des paquets pour l'ensemble
192.168.B.0 / 24 directement;
22) le routeur trouve l'adresse MAC pour
192.168.B.1 et lui envoie ce paquet;
23) le système d'exploitation sur l'ordinateur avec l'adresse
192.168.B.1 reçoit un paquet de
192.168.A.1: 3389 pour
192.168.B.1: 55555 et lance les étapes suivantes pour établir une connexion TCP.
Cet exemple est assez concis et simpliste (et ici vous pouvez vous rappeler un tas de détails) décrit ce qui se passe aux niveaux 2 à 4. Les niveaux 1, 5-7 ne sont pas pris en compte.
Deuxième position
Si quelque chose est envoyé spécifiquement à
AAA2 à partir de
192.168.B.0 / 24 , il ne va pas au VPN, mais directement. Autrement dit, si un utilisateur de l'adresse
192.168.B.1 accède à
AAA2: 13389 , ce paquet est
effacé de l'adresse
BBB1 , passe à
AAA2 , et là le routeur le reçoit et l'envoie à
192.168.A.1 .
192.168.A.1 ne sait rien de
192.168.B.1 , il voit un paquet de
BBB1 , car il l'a compris. Par conséquent, la réponse à cette demande suit la route générale, il en va exactement de même de l'adresse
AAA2 et va à
BBB1 , et ce routeur donne cette réponse à
192.168.B.1 , il voit la réponse de
AAA2 , à laquelle il s'est adressé.
Exemple concret:
1)
192.168.B.1 adresse
AAA2 , souhaite établir une connexion TCP avec
AAA2: 13389 ;
2)
192.168.B.1 envoie une demande d'établissement d'une connexion à partir de
192.168.B.1: 55555 (ce numéro, comme dans l'exemple précédent, peut être différent) vers
AAA2: 13389 ;
3) le système d'exploitation qui s'exécute sur l'ordinateur avec l'adresse
192.168.B.1 décide de transférer ce paquet vers l'adresse de passerelle du routeur (
192.168.B.254 dans notre cas), car il n'a pas d'autres itinéraires plus spécifiques pour
AAA2 , ce qui signifie qu'il envoie le paquet le long de la route par défaut (0.0.0.0/0);
4) pour cela, elle, comme nous l'avons mentionné dans l'exemple précédent, essaie de trouver l'adresse MAC pour l'adresse IP
192.168.B.254 dans la table de cache du protocole ARP. S'il n'est pas trouvé, il envoie à partir de l'adresse
192.168.B.1 une demande de diffusion qui-a au réseau
192.168.B.0 / 24 . Lorsque
192.168.B.254 lui renvoie son adresse MAC, le système lui envoie un paquet Ethernet et stocke ces informations dans sa table de cache;
5) le routeur reçoit ce paquet et décide où l'envoyer: il a pour politique de transmettre (en remplaçant l'adresse de retour) tous les paquets de
192.168.B.0 / 24 à d'autres nœuds Internet;
6) puisque cette politique implique que l'adresse de retour doit coïncider avec l'adresse la plus basse sur l'interface par laquelle ce paquet sera transmis, le routeur décide d'abord à qui exactement ce paquet doit être transmis, et lui, comme dans l'exemple précédent, doit l'envoyer à
BBB254 (passerelle de fournisseur de services Internet), car il n'a pas de routes plus spécifiques vers
AAA2 que 0.0.0.0/0;
7) par conséquent, le routeur remplace l'adresse de retour du paquet, désormais le paquet de
BBB1: 44444 (le numéro de port, bien sûr, peut être différent) à
AAA2: 13389 ;
8) le routeur se souvient de ce qu'il a fait, ce qui signifie que lorsqu'une
réponse est reçue de
AAA2: 13389 à
BBB1: 44444 , il saura qu'il doit changer l'adresse et le port du destinataire en
192.168.B.1: 55555 .
9) maintenant le routeur doit le transférer au réseau du fournisseur Internet via
BBB254 , donc, de la même manière que nous l'avons déjà mentionné, il trouve l'adresse MAC pour
BBB254 et envoie le paquet à la passerelle du fournisseur Internet;
10) Les fournisseurs d'accès Internet transfèrent un paquet de
BBB1 à
AAA2 sur leurs réseaux;
11) le routeur virtuel sur
AAA2 reçoit ce paquet sur le port 13389;
12) il existe une règle sur le routeur virtuel qui stipule que les paquets provenant de n'importe quel expéditeur vers ce port doivent être envoyés à
192.168.A.1: 3389 ;
13) le routeur virtuel trouve le réseau
192.168.A.0 / 24 dans la table de routage et l'envoie directement à
192.168.A. 1, car il possède une interface
192.168.A.254 / 24 ;
14) pour cela, le routeur virtuel trouve l'adresse MAC pour
192.168.A.1 et lui transmet ce paquet via le réseau Ethernet virtuel;
15)
192.168.A.1 reçoit ce paquet sur le port 3389, accepte d'établir une connexion et forme un paquet en réponse de
192.168.A.1: 3389 sur
BBB1: 44444 ;
16) son système envoie ce paquet à l'adresse de passerelle du routeur virtuel (
192.168.A.254 dans notre cas), car il n'a pas d'autres routes plus spécifiques pour
BBB1 , par conséquent, il doit transmettre le paquet le long de la route par défaut (0.0. 0,0 / 0);
17) de la même manière que dans les cas précédents, le système qui s'exécute sur le serveur avec l'adresse
192.168.A.1 trouve l'adresse MAC
192.168.A.254 , car il est sur le même réseau avec son interface
192.168.A.1 / 24 ;
18) Le routeur virtuel accepte ce paquet. Il convient de noter qu'il se souvient qu'il a reçu un paquet de
BBB1: 44444 sur
AAA2: 13389 et a changé l'adresse et le port du destinataire en
192.168.A.1: 3389 , par conséquent, il change le paquet de
192.168.A.1: 3389 en
BBB1: 44444 adresse de l'expéditeur sur
AAA2: 13389 ;
19) le routeur virtuel décide à qui ce paquet doit être envoyé, il l'envoie à
AAA254 (la passerelle du fournisseur Internet, dans ce cas, c'est nous aussi), car il n'a pas de routes plus spécifiques vers
BBB1 que 0.0.0.0/0;
20) Les fournisseurs d'accès Internet transfèrent un paquet de
AAA2 à
BBB1 sur leurs réseaux;
21) le routeur sur
BBB1 reçoit ce paquet et rappelle que lorsqu'il a envoyé le paquet de
192.168.B.1: 55555 à
AAA2: 13389 , il a changé son adresse et son port d'expéditeur en
BBB1: 44444 , ce qui signifie que c'est la réponse qui doit être transmise sur
192.168.B.1: 55555 (en fait, il y a plusieurs autres contrôles, mais nous n'y allons pas);
22) il comprend qu'ils doivent être envoyés directement à
192.168.B.1 , car il est sur le même réseau que lui, donc, il a une entrée correspondante dans la table de routage qui l'oblige à envoyer des paquets pour l'ensemble
192.168.B.0 / 24 directement;
23) le routeur trouve l'adresse MAC pour
192.168.B.1 et lui envoie ce paquet;
24) le système d'exploitation sur l'ordinateur avec l'adresse
192.168.B.1 reçoit un paquet de
AAA2: 13389 pour
192.168.B.1: 55555 et lance les étapes suivantes pour établir une connexion TCP.
Il convient de noter que dans ce cas, l'ordinateur avec l'adresse
192.168.B.1 ne sait rien du serveur avec l'adresse
192.168.A.1 , il ne communique qu'avec
AAA2 . De même, le serveur avec l'adresse
192.168.A.1 ne sait rien de l'ordinateur avec l'adresse
192.168.B.1 . Il pense qu'ils se sont connectés à lui depuis l'adresse
BBB1 , et il n'en sait rien de plus, pour ainsi dire.
Il convient également de noter que si cet ordinateur accède à
AAA2: 1540 , la connexion ne sera pas établie, car la redirection de connexion vers le port 1540 n'est pas configurée sur le routeur virtuel, même si sur un serveur du réseau virtuel
192.168.A.0 / 24 (par exemple, sur un serveur avec l'adresse
192.168.A.1 ) et certains services attendent une connexion sur ce port. Si l'utilisateur de l'ordinateur avec l'adresse
192.168.B.1 est absolument nécessaire pour établir une connexion avec ce service, il doit utiliser un VPN, c'est-à-dire contacter directement au
192.168.A.1: 1540 .
Il convient de souligner que toute tentative d'établir une connexion avec
AAA1 (à l'exception de la connexion IPSec de
BBB1 ne réussira pas. Toute tentative d'établir une connexion avec
AAA2 , à l'exception des connexions au port 13389, échouera également.
Notez également que si quelqu'un d'autre fait
appel à
AAA2 (par exemple, UDP), tout ce qui est indiqué dans les paragraphes 10-20 s'appliquera également à lui. Ce qui se passe avant et après cela dépend de ce qui se cache exactement derrière cela. Nous ne sommes pas propriétaires de ces informations, nous vous conseillons donc de consulter les administrateurs du site avec l'adresse de l'adresse.
Troisième position
Et vice versa, si quelque chose est envoyé de
192.168.A.1 vers un port configuré pour être transféré à l'intérieur vers BBB1 (par exemple, 11111), il n'entre pas non plus dans le VPN, mais se contente de
AAA1 et se retrouve dans
BBB1 , et que l'on est déjà en train de le transférer quelque part dans, disons,
192.168.B.2: 3389 . Il voit ce paquet non pas depuis
192.168.A.1 , mais depuis
AAA1 . Et, lorsque
192.168.B.2 répond, le paquet passe de
BBB1 à
AAA1, puis parvient à l'initiateur de connexion -
192.168.A.1 .
Exemple concret:
1)
192.168.A.1 adresse
BBB1 , souhaite établir une connexion TCP avec
BBB1: 11111 ;
2)
192.168.A.1 envoie une demande d'établissement d'une connexion à partir de
192.168.A.1: 55555 (ce numéro, comme dans l'exemple précédent, peut être différent) sur
BBB1: 11111 ;
3) le système d'exploitation qui s'exécute sur le serveur avec l'adresse
192.168.A.1 décide de transférer ce paquet vers l'adresse de passerelle du routeur (
192.168.A.254 dans notre cas), car il n'a pas d'autres itinéraires plus spécifiques pour
BBB1 , par conséquent, il envoie le paquet le long de la route par défaut (0.0.0.0/0);
4) pour cela, elle, comme nous l'avons mentionné dans les exemples précédents, essaie de trouver l'adresse MAC pour l'adresse IP
192.168.A.254 dans la table de cache du protocole ARP. S'il n'est pas trouvé, il envoie à partir de l'adresse
192.168.A.1 une demande de diffusion qui-a au réseau
192.168.A.0 / 24 . Lorsque
192.168.A.254 lui renvoie son adresse MAC, le système lui transmet un paquet Ethernet et entre ces informations dans sa table de cache;
5) le routeur virtuel reçoit ce paquet et décide où le transférer: il a pour politique de transmettre (en remplaçant l'adresse de retour) tous les paquets de
192.168.A.0 / 24 à d'autres nœuds Internet;
6) puisque cette politique suppose que l'adresse de retour doit coïncider avec l'adresse la plus basse sur l'interface par laquelle ce paquet sera transmis, le routeur virtuel décide d'abord à qui exactement ce paquet doit être transmis, et lui, comme dans l'exemple précédent, doit l'envoyer sur
AAA254 (la passerelle du fournisseur Internet, dans ce cas, c'est nous aussi), car il n'a pas de routes plus spécifiques vers
BBB1 que 0.0.0.0/0;
7) cela signifie que le routeur virtuel remplace l'adresse de retour du paquet, il s'agit désormais d'un paquet de
AAA1: 44444 (le numéro de port, bien sûr, peut être différent) à
BBB1: 11111 ;
8) le routeur virtuel se souvient de ce qu'il a fait, par conséquent, quand une
réponse est reçue de
BBB1: 11111 pour
AAA1: 44444 , il saura qu'il doit changer l'adresse et le port du destinataire en
192.168.A.1: 55555 .
9) maintenant, le routeur virtuel doit le transférer vers le réseau du fournisseur Internet via
AAA254 , ce qui signifie que, comme nous l'avons déjà mentionné, il trouve l'adresse MAC pour
AAA254 et envoie le paquet à la passerelle du fournisseur Internet;
10) Les fournisseurs d'accès Internet transfèrent sur leurs réseaux un paquet de
AAA1 à BBB1 ;
11) le routeur sur
BBB1 reçoit ce paquet sur le port 11111;
12) il existe une règle sur le routeur virtuel, qui stipule que les paquets reçus de tout expéditeur vers ce port doivent être transmis à
192.168.B.2: 3389 ;
13) le routeur trouve le réseau
192.168.B.0 / 24 dans la table de routage et l'envoie directement à
192.168.B.2 , car il possède une interface
192.168.B.254 / 24 ;
14) pour cela, le routeur virtuel trouve l'adresse MAC pour
192.168.B.2 et lui transmet ce paquet via le réseau Ethernet virtuel;
15)
192.168.B.2 reçoit ce paquet sur le port 3389, accepte d'établir une connexion et forme un paquet en réponse de
192.168.B.2: 3389 à
AAA1: 44444 ;
16) son système envoie ce paquet à l'adresse de passerelle du routeur (
192.168.B.254 dans notre cas), car il n'a pas d'autres routes plus spécifiques pour
AAA1 , par conséquent, il doit passer le paquet le long de la route par défaut (0.0.0.0 / 0);
17) de la même manière que dans les cas précédents, le système qui s'exécute sur l'ordinateur avec l'adresse
192.168.B.2 trouve l'adresse MAC
192.168.B.254 , car il est sur le même réseau avec son interface
192.168.B.2 / 24 ;
18) Le routeur accepte ce paquet. Il convient de noter qu'il se souvient avoir reçu un paquet de
AAA1 sur
BBB1: 11111 et changé l'adresse et le port du destinataire en
192.168.B.2: 3389.Par conséquent, il change l'adresse de l'expéditeur en un paquet de
192.168.B.2: 3389 pour
AAA1: 44444 sur
BBB1: 11111 ;
19) Le routeur décide à qui transférer ce paquet. Il l'envoie, disons, à
BBB254 (la passerelle du fournisseur Internet, dont nous ne connaissons pas l'adresse exacte), car il n'a pas de routes plus spécifiques vers
AAA1 que 0.0.0.0/0;
20) Les fournisseurs d'accès Internet transfèrent un paquet de
BBB1 à
AAA1 sur leurs réseaux;
21) le routeur virtuel sur
AAA1 reçoit ce paquet et rappelle que lorsqu'il a envoyé le paquet de
192.168.A.1: 55555 à
BBB1: 11111 , il a changé son adresse et son port d'expéditeur en
AAA1: 44444 . Donc, c'est la réponse qui doit être transmise à
192.168.A.1: 55555 (en fait, comme nous l'avons mentionné dans l'exemple précédent, il y a aussi quelques vérifications supplémentaires, mais cette fois nous n'y allons pas trop);
22) il comprend qu'il doit être envoyé directement à 192.168.A.1 , car il est sur le même réseau que lui, ce qui signifie qu'il a une entrée correspondante dans la table de routage qui l'oblige à envoyer des paquets pour l'ensemble de 192.168.A.0 / 24 directement;23) le routeur trouve l'adresse MAC pour 192.168.A.1 et lui envoie ce paquet;24) le système d'exploitation sur le serveur avec l'adresse 192.168.A.1 reçoit un paquet de BBB1: 1111 1 pour 192.168.A.1: 55555 et lance les étapes suivantes pour établir une connexion TCP.De la même manière que dans le cas précédent, dans ce cas le serveur avec l'adresse 192.168.A.1ne sait rien de l'ordinateur avec l'adresse 192.168.B.1 , il ne communique qu'avec BBB1 . L'ordinateur avec l'adresse 192.168.B.1 ne sait rien non plus sur le serveur avec l'adresse 192.168.A.1 . Il pense qu'ils se sont connectés à lui depuis l'adresse AAA1 , et le reste lui est caché.Conclusion
Voici comment cela se produit lors de la connexion à l'intérieur d'un tunnel VPN entre le bureau du client et l'environnement dans le cloud, ainsi que lors de la connexion à l'extérieur du tunnel VPN. Et si vous avez encore des questions ou avez besoin de notre aide pour résoudre les problèmes de cloud, veuillez contacter 24h / 24 et 7j / 7.