Was passiert beim Verbinden innerhalb und außerhalb eines VPN-Tunnels?

Aus den Briefen an den technischen Support von Tucha gehen diese Artikel hervor. Vor kurzem hat uns ein Kunde mit der Bitte kontaktiert, zu klären, was passiert, wenn eine Verbindung innerhalb eines VPN-Tunnels zwischen dem Büro des Benutzers und der Umgebung in der Cloud sowie eine Verbindung außerhalb des VPN-Tunnels hergestellt wird. Daher ist der gesamte unten stehende Text ein echter Brief, den wir als Antwort auf seine Frage an einen der Kunden gesendet haben. Natürlich haben wir die IP-Adressen geändert, um den Client nicht zu anonymisieren. Aber der technische Support von Tucha ist wirklich berühmt für seine umfassenden Antworten und informativen Briefe. :-)

Natürlich verstehen wir, dass dieser Artikel für viele keine Offenbarung sein wird. Da jedoch auf Habr von Zeit zu Zeit Artikel für Anfänger von Administratoren erscheinen und dieser Artikel auch aus einem echten Brief an einen echten Kunden stammt, werden wir diese Informationen hier weitergeben. Es besteht eine hohe Wahrscheinlichkeit, dass es für jemanden nützlich ist.
Daher erklären wir im Detail, was zwischen dem Server in der Cloud und dem Büro passiert, wenn diese über ein Standort-zu-Standort-Netzwerk verbunden sind. Beachten Sie, dass in diesem Fall ein Teil der Dienste nur über das Büro und ein Teil über das Internet verfügbar ist.

Wir werden sofort erklären, dass unser Kunde sich gewünscht hat, von überall über RDP zum Server 192.168.A.1 zu gelangen und eine Verbindung zu AAA2: 13389 und anderen Diensten herzustellen - nur von dem Büro (192.168.B.0 / 24) aus , das über eine Verbindung hergestellt wurde VPN Außerdem wurde der Client ursprünglich so konfiguriert, dass auf den Computer 192.168.B.2 im Büro auch über RDP von überall aus zugegriffen werden kann, wobei eine Verbindung zu BBB1: 11111 hergestellt wird . Wir halfen bei der Organisation von IPSec-Verbindungen zwischen der Cloud und dem Büro, und der IT-Spezialist des Kunden begann, Fragen zu stellen, was in diesem oder jenem Fall passieren würde. Um all diese Fragen zu beantworten, haben wir ihm tatsächlich alles geschrieben, was Sie unten lesen können.


Betrachten Sie diese Prozesse nun genauer.


Erste Position


Wenn etwas von 192.168.B.0 / 24 nach 192.168.A.0 / 24 oder von 192.168.A.0 / 24 nach 192.168.B.0 / 24 gesendet wird, gelangt es in das VPN. Das heißt, dieses Paket wird zusätzlich zwischen BBB1 und AAA1 verschlüsselt und übertragen, aber 192.168.A.1 erkennt das Paket von 192.168.B.1 genau. Sie können über beliebige Protokolle miteinander kommunizieren. Die Rückantworten werden auf die gleiche Weise über VPN übertragen, das heißt, das Paket von 192.168.A.1 für 192.168.B.1 wird als ESP-Datagramm von AAA1 an BBB1 gesendet . Der Router auf der anderen Seite nimmt das Paket heraus und sendet es an 192.168.B.1 als Paket von 192.168.A.1 .

Konkretes Beispiel:

1) 192.168.B.1 greift auf 192.168.A.1 zu , möchte eine TCP-Verbindung mit 192.168.A.1: 3389 herstellen ;

2) 192.168.B.1 sendet eine Anforderung zum Herstellen einer Verbindung von 192.168.B.1: 55555 (er wählt den Port für die Rückmeldung aus. Im Folgenden wird die Nummer 55555 als Beispiel für die Portnummer verwendet, die das System beim Generieren von TCP- Verbindungen) zu 192.168.A.1: 3389 ;

3) das Betriebssystem, das auf dem Computer mit der Adresse 192.168.B.1 ausgeführt wird, beschließt, dieses Paket an die Gateway-Adresse des Routers (in unserem Fall 192.168.B.254 ) zu übertragen, da es für 192.168.A.1 andere, spezifischere Routen gibt, es leitet das Paket daher nicht entlang der Standardroute (0.0.0.0/0) weiter;

4) Sie versucht dazu, die MAC-Adresse für die IP-Adresse 192.168.B.254 in der Cache-Tabelle des ARP-Protokolls zu finden. Wird es nicht gefunden, sendet es von der Adresse 192.168.B.1 eine Broadcast-Wer-hat-Anfrage an das Netzwerk 192.168.B.0 / 24 . Wenn 192.168.B.254 seine MAC-Adresse an ihn zurücksendet, sendet das System ein Ethernet-Paket für ihn und speichert diese Informationen in seiner Cache-Tabelle.

5) Der Router empfängt dieses Paket und entscheidet, wohin es gesendet werden soll. Er legt fest, dass alle Pakete zwischen 192.168.B.0 / 24 und 192.168.A.0 / 24 über eine VPN-Verbindung zwischen BBB1 und AAA1 übertragen werden sollen .

6) Der Router generiert ein ESP-Datagramm von BBB1 bis AAA1 .

7) Der Router entscheidet, an wen er dieses Paket sendet. Er sendet es beispielsweise an BBB254 (Gateway des Internetproviders), da er keine spezifischeren Routen zu AAA1 als 0.0.0.0/0 hat.

8) findet auf die gleiche Weise wie bereits erwähnt die MAC-Adresse für BBB254 und sendet das Paket an das Gateway des Internetproviders;

9) Internetprovider übertragen über ihre Netze das ESP-Datagramm von BBB1 nach AAA1 ;

10) der virtuelle Router auf AAA1 empfängt dieses Datagramm, entschlüsselt es und empfängt ein Paket von 192.168.B.1: 55555 für 192.168.A.1: 3389 ;

11) der virtuelle Router prüft, an wen er gesendet werden soll, findet das Netzwerk 192.168.A.0 / 24 in der Routing-Tabelle und sendet es direkt an 192.168.A.1 , da es eine Schnittstelle 192.168.A.254 / 24 hat ;

12) dazu findet der virtuelle Router die MAC-Adresse für 192.168.A.1 und leitet dieses Paket über das virtuelle Ethernet-Netzwerk an ihn weiter;

13) 192.168.A.1 empfängt dieses Paket an Port 3389, stimmt dem Aufbau einer Verbindung zu und bildet ein Paket als Antwort von 192.168.A.1: 3389 auf 192.168.B.1: 55555 ;

14) Sein System sendet dieses Paket an die Gateway-Adresse des virtuellen Routers (in unserem Fall 192.168.A.254 ), da es keine anderen, spezifischeren Routen für 192.168.B.1 hat. Daher muss es das Paket entlang der Route übertragen Standard (0.0.0.0/0);

15) Das System, das auf dem Server mit der Adresse 192.168.A.1 ausgeführt wird, findet auf dieselbe Weise wie in den vorherigen Fällen die MAC-Adresse 192.168.A.254 , da es sich mit seiner Schnittstelle 192.168.A.1 / im selben Netzwerk befindet. 24 ;

16) Der virtuelle Router empfängt dieses Paket und entscheidet, wohin es gesendet werden soll. Er legt fest, dass alle Pakete zwischen 192.168.A.0 / 24 und 192.168.B.0 / 24 über eine VPN-Verbindung zwischen AAA1 und BBB1 übertragen werden sollen ;

17) der virtuelle Router erzeugt ein ESP-Datagramm von AAA1 bis BBB1 ;

18) der virtuelle Router entscheidet, an wen dieses Paket gesendet werden soll, sendet es an AAA254 (das Gateway des Internetproviders, in diesem Fall auch wir), da es keine spezifischeren Routen zu BBB1 als 0.0.0.0/0 hat;

19) Internetprovider übertragen über ihre Netze ein ESP-Datagramm von AAA1 bis BBB1 ;

20) der Router auf BBB1 empfängt dieses Datagramm, entschlüsselt es und empfängt ein Paket von 192.168.A.1: 3389 für 192.168.B.1: 55555 ;

21) er versteht, dass es an 192.168.B.1 gesendet werden sollte, da er sich mit ihm in demselben Netzwerk befindet, hat er daher einen entsprechenden Eintrag in der Routing-Tabelle, der ihn zwingt, Pakete für die gesamte 192.168.B.0 zu senden. 24 direkt;

22) der Router findet die MAC-Adresse für 192.168.B.1 und sendet ihm dieses Paket;

23) Das Betriebssystem auf dem Computer mit der Adresse 192.168.B.1 empfängt ein Paket von 192.168.A.1: 3389 für 192.168.B.1: 55555 und leitet die folgenden Schritte zum Herstellen einer TCP-Verbindung ein.

Dieses Beispiel ist ziemlich kurz und simpel (und hier können Sie sich an eine Reihe von Details erinnern) und beschreibt, was auf den Ebenen 2 bis 4 passiert. Stufen 1, 5-7 werden nicht berücksichtigt.

Zweite Position


Wenn etwas speziell an AAA2 von 192.168.B.0 / 24 gesendet wird, geht es nicht an das VPN, sondern direkt. Das heißt, wenn ein Benutzer von Adresse 192.168.B.1 auf AAA2: 13389 zugreift , wird dieses Paket von Adresse BBB1 ausgefranst, an AAA2 weitergeleitet , und dort empfängt der Router es und sendet es an 192.168.A.1 . 192.168.A.1 weiß nichts über 192.168.B.1 , er sieht ein Paket von BBB1 , weil er es verstanden hat. Daher geht die Antwort auf diese Anfrage entlang der allgemeinen Route, es geht genau die gleiche von der Adresse AAA2 und geht zu BBB1 , und dieser Router gibt diese Antwort an 192.168.B.1 , er sieht die Antwort von AAA2 , an die er adressiert hat.

Konkretes Beispiel:

1) 192.168.B.1 adressiert AAA2 , möchte eine TCP-Verbindung mit AAA2 herstellen: 13389 ;

2) 192.168.B.1 sendet eine Anforderung zum Herstellen einer Verbindung von 192.168.B.1: 55555 (diese Nummer kann sich wie im vorherigen Beispiel unterscheiden) zu AAA2: 13389 ;

3) Das Betriebssystem, das auf dem Computer mit der Adresse 192.168.B.1 ausgeführt wird, entscheidet sich für die Übertragung dieses Pakets an die Gateway-Adresse des Routers (in unserem Fall 192.168.B.254 ), da es keine anderen, spezifischeren Routen für AAA2 gibt. Dies bedeutet, dass das Paket auf der Standardroute (0.0.0.0/0) gesendet wird.

4) Dazu versucht sie, wie im vorigen Beispiel erwähnt, die MAC-Adresse für die IP-Adresse 192.168.B.254 in der Cache-Tabelle des ARP-Protokolls zu finden. Wird es nicht gefunden, sendet es von der Adresse 192.168.B.1 eine Broadcast-Wer-hat-Anfrage an das Netzwerk 192.168.B.0 / 24 . Wenn 192.168.B.254 seine MAC-Adresse an ihn zurücksendet, sendet das System ein Ethernet-Paket für ihn und speichert diese Informationen in seiner Cache-Tabelle.

5) Der Router empfängt dieses Paket und entscheidet, wohin es gesendet werden soll. Er hat die Richtlinie, dass alle Pakete von 192.168.B.0 / 24 an andere Internetknoten weitergeleitet werden müssen (wobei die Rücksendeadresse ersetzt wird).

6) Da diese Richtlinie impliziert, dass die Rücksprungadresse mit der niedrigsten Adresse auf der Schnittstelle übereinstimmen muss, über die dieses Paket übertragen wird, entscheidet der Router zuerst, an wen genau dieses Paket übertragen werden soll, und er sollte es wie im vorherigen Beispiel senden BBB254 (Internet Service Provider Gateway), da es keine spezifischeren Routen zu AAA2 als 0.0.0.0/0 gibt;

7) daher ersetzt der Router die Rücksendeadresse des Pakets, von nun an das Paket von BBB1: 44444 (die Portnummer kann natürlich unterschiedlich sein) bis AAA2: 13389 ;

8) Der Router merkt sich, was er getan hat. Wenn eine Antwort von AAA2: 13389 auf BBB1: 44444 eingeht , muss er die Adresse und den Port des Empfängers in 192.168.B.1: 55555 ändern.

9) Jetzt muss der Router ihn über BBB254 an das Netzwerk des Internetproviders übertragen. Daher findet er, wie bereits erwähnt, die MAC-Adresse für BBB254 und sendet das Paket an das Gateway des Internetproviders.

10) Internetprovider übertragen ein Paket von BBB1 zu AAA2 in ihren Netzen;

11) der virtuelle Router an AAA2 empfängt dieses Paket an Port 13389;

12) Auf dem virtuellen Router gibt es eine Regel, die festlegt, dass Pakete, die von einem Absender an diesen Port gesendet wurden, an 192.168.A.1: 3389 gesendet werden sollen.

13) Der virtuelle Router findet das Netzwerk 192.168.A.0 / 24 in der Routing-Tabelle und sendet es direkt an 192.168.A. 1, weil es eine Schnittstelle 192.168.A.254 / 24 hat ;

14) dazu findet der virtuelle Router die MAC-Adresse für 192.168.A.1 und leitet dieses Paket über das virtuelle Ethernet-Netzwerk an ihn weiter;

15) 192.168.A.1 empfängt dieses Paket an Port 3389, stimmt dem Aufbau einer Verbindung zu und bildet ein Paket als Antwort von 192.168.A.1: 3389 auf BBB1: 44444 ;

16) sein System sendet dieses Paket an die Gateway-Adresse des virtuellen Routers ( 192.168.A.254 in unserem Fall), da es keine anderen, spezifischeren Routen für BBB1 hat , daher muss es das Paket entlang der Standardroute (0.0. 0,0 / 0);

17) Das System, das auf dem Server mit der Adresse 192.168.A.1 ausgeführt wird, findet auf dieselbe Weise wie in den vorherigen Fällen die MAC-Adresse 192.168.A.254 , da es sich mit seiner Schnittstelle 192.168.A.1 in demselben Netzwerk befindet / 24 ;

18) Der virtuelle Router akzeptiert dieses Paket. Es sollte beachtet werden, dass er sich daran erinnert, dass er ein Paket von BBB1: 44444 auf AAA2: 13389 erhalten und die Empfängeradresse und den Port auf 192.168.A.1: 3389 geändert hat. Daher ändert er das Paket von 192.168.A.1: 3389 auf BBB1: 44444 Absenderadresse auf AAA2: 13389 ;

19) Der virtuelle Router entscheidet, an wen dieses Paket gesendet werden soll, und sendet es an AAA254 (das Gateway des Internetproviders, in diesem Fall auch an uns), da er keine spezifischeren Routen zu BBB1 als 0.0.0.0/0 hat.

20) Internetprovider übertragen ein Paket von AAA2 zu BBB1 in ihren Netzen;

21) Der Router von BBB1 empfängt dieses Paket und erinnert sich, dass er beim Senden des Pakets von 192.168.B.1: 55555 an AAA2: 13389 seine Adresse und seinen Absenderport in BBB1: 44444 geändert hat , was bedeutet, dass dies die Antwort ist, die gesendet werden muss am 192.168.B.1: 55555 (in der Tat gibt es mehrere weitere Schecks, aber wir gehen nicht darauf ein);

22) er versteht, dass sie direkt an 192.168.B.1 gesendet werden sollten, da er sich mit ihm in demselben Netzwerk befindet, hat er daher einen entsprechenden Eintrag in der Routing-Tabelle, der ihn zwingt, Pakete für die gesamte 192.168.B.0 / 24 zu senden direkt;

23) der Router findet die MAC-Adresse für 192.168.B.1 und sendet ihm dieses Paket;

24) Das Betriebssystem auf dem Computer mit der Adresse 192.168.B.1 empfängt ein Paket von AAA2: 13389 für 192.168.B.1: 55555 und leitet die folgenden Schritte zum Herstellen einer TCP-Verbindung ein.

Es ist zu beachten, dass in diesem Fall der Computer mit der Adresse 192.168.B.1 nichts über den Server mit der Adresse 192.168.A.1 weiß, sondern nur mit AAA2 kommuniziert. Ebenso weiß der Server mit der Adresse 192.168.A.1 nichts über den Computer mit der Adresse 192.168.B.1 . Er glaubt, dass sie sich über die Adresse BBB1 mit ihm verbunden haben , und er weiß sozusagen nichts mehr.

Wenn dieser Computer auf AAA2: 1540 zugreift, wird die Verbindung nicht hergestellt, da die Verbindungsweiterleitung an Port 1540 auf dem virtuellen Router nicht konfiguriert ist, selbst wenn sich Server im virtuellen Netzwerk 192.168.A.0 befinden / 24 (z. B. auf einem Server mit der Adresse 192.168.A.1 ) und einige Dienste warten auf eine Verbindung an diesem Port. Wenn der Benutzer des Computers mit der Adresse 192.168.B.1 unbedingt erforderlich ist, um eine Verbindung mit diesem Dienst herzustellen, muss er ein VPN verwenden, d. H. wenden Sie sich direkt an 192.168.A.1: 1540 .

Es sollte betont werden, dass alle Versuche, eine Verbindung mit AAA1 herzustellen (mit Ausnahme der IPSec-Verbindung von BBB1) , nicht erfolgreich sind. Alle Versuche, eine Verbindung mit AAA2 herzustellen , mit Ausnahme von Verbindungen zu Port 13389, schlagen ebenfalls fehl.
Beachten Sie auch, dass, wenn eine andere Person AAA2 anruft (z. B. UDP), alles, was in den Absätzen 10 bis 20 angegeben ist, auch für sie gilt. Was davor und danach passiert, hängt davon ab, was genau dahintersteckt. Wir besitzen solche Informationen nicht. Daher empfehlen wir Ihnen, die Site-Administratoren mit der Adresse der Adresse zu konsultieren.

Dritte Position


Und umgekehrt: Wenn etwas von 192.168.A.1 an einen Port gesendet wird, der so konfiguriert ist, dass es an BBB1 weitergeleitet wird (z. B. 11111), gelangt es auch nicht in das VPN, sondern blockiert nur AAA1 und landet in BBB1 und dieser überträgt es bereits irgendwo in, sagen wir, 192.168.B.2: 3389 . Er sieht dieses Paket nicht von 192.168.A.1 , sondern von AAA1 . Wenn 192.168.B.2 antwortet, wechselt das Paket von BBB1 zu AAA1 und gelangt später zum Verbindungsinitiator - 192.168.A.1 .

Konkretes Beispiel:

1) 192.168.A.1 adressiert BBB1 , möchte eine TCP-Verbindung mit BBB1 herstellen: 11111 ;

2) 192.168.A.1 sendet eine Anforderung zum Herstellen einer Verbindung von 192.168.A.1: 55555 (diese Nummer kann wie im vorherigen Beispiel unterschiedlich sein) an BBB1: 11111 ;

3) Das Betriebssystem, das auf dem Server mit der Adresse 192.168.A.1 ausgeführt wird, entscheidet sich für die Übertragung dieses Pakets an die Gateway-Adresse des Routers (in unserem Fall 192.168.A.254 ), da es keine anderen, spezifischeren Routen für BBB1 gibt. Daher wird das Paket auf der Standardroute (0.0.0.0/0) gesendet.

4) Dazu versucht sie, wie in den vorherigen Beispielen erwähnt, die MAC-Adresse für die IP-Adresse 192.168.A.254 in der Cache-Tabelle des ARP-Protokolls zu finden. Wird es nicht gefunden, sendet es von der Adresse 192.168.A.1 eine Broadcast-Wer-hat-Anfrage an das Netzwerk 192.168.A.0 / 24 . Wenn 192.168.A.254 seine MAC-Adresse an ihn zurücksendet , überträgt das System ein Ethernet-Paket für ihn und trägt diese Informationen in seine Cache-Tabelle ein.

5) Der virtuelle Router empfängt dieses Paket und entscheidet, wohin es übertragen werden soll. Er hat die Richtlinie, dass er alle Pakete von 192.168.A.0 / 24 an andere Internetknoten weiterleiten muss (wobei die Rücksprungadresse ersetzt wird).

6) Da diese Richtlinie davon ausgeht, dass die Rücksprungadresse mit der niedrigsten Adresse auf der Schnittstelle übereinstimmen muss, über die dieses Paket übertragen wird, entscheidet der virtuelle Router zuerst, an wen genau dieses Paket übertragen werden soll, und er sollte es wie im vorherigen Beispiel senden auf AAA254 (das Gateway des Internetproviders, in diesem Fall auch wir), weil es keine spezifischeren Routen zu BBB1 als 0.0.0.0/0 gibt;

7) es bedeutet, dass der virtuelle Router die Rücksendeadresse des Pakets ersetzt, von nun an handelt es sich um ein Paket von AAA1: 44444 (die Portnummer kann natürlich unterschiedlich sein) bis BBB1: 11111 ;

8) Der virtuelle Router merkt sich, was er getan hat. Wenn eine Antwort von BBB1: 11111 für AAA1: 44444 eingeht , weiß er, dass er die Adresse und den Port des Empfängers in 192.168.A.1: 55555 ändern sollte.

9) Jetzt muss der virtuelle Router ihn über AAA254 an das Netzwerk des Internetproviders übertragen , dh er findet, wie bereits erwähnt, die MAC-Adresse für AAA254 und sendet das Paket an das Gateway des Internetproviders.

10) Internetprovider übertragen in ihren Netzen ein Paket von AAA1 zu BBB1 ;

11) der Router an BBB1 empfängt dieses Paket an Port 11111;

12) Auf dem virtuellen Router gibt es eine Regel, die festlegt, dass Pakete, die von einem Absender an diesen Port gesendet werden, an 192.168.B.2: 3389 gesendet werden sollen.

13) Der Router findet das Netzwerk 192.168.B.0 / 24 in der Routing-Tabelle und sendet es direkt an 192.168.B.2 , da es eine Schnittstelle 192.168.B.254 / 24 hat .

14) dazu findet der virtuelle Router die MAC-Adresse für 192.168.B.2 und leitet dieses Paket über das virtuelle Ethernet-Netzwerk an ihn weiter;

15) 192.168.B.2 empfängt dieses Paket an Port 3389, stimmt dem Aufbau einer Verbindung zu und bildet ein Paket als Antwort von 192.168.B.2: 3389 auf AAA1: 44444 ;

16) Sein System sendet dieses Paket an die Gateway-Adresse des Routers (in unserem Fall 192.168.B.254 ), da es keine anderen, spezifischeren Routen für AAA1 hat. Daher muss es das Paket entlang der Standardroute (0.0.0.0) weiterleiten / 0);

17) Das System, das auf dem Computer mit der Adresse 192.168.B.2 ausgeführt wird, findet auf dieselbe Weise wie in den vorherigen Fällen die MAC-Adresse 192.168.B.254 , da es sich mit seiner Schnittstelle 192.168.B.2 in demselben Netzwerk befindet / 24 ;

18) Der Router akzeptiert dieses Paket. Es ist zu beachten, dass er sich daran erinnert, dass er ein Paket von AAA1 auf BBB1: 11111 erhalten und die Empfängeradresse und den Port in 192.168.B.2: 3389 geändert hat. Daher ändert er die Absenderadresse in ein Paket von 192.168.B.2: 3389 für AAA1: 44444 auf BBB1: 11111 ;

19) Der Router entscheidet, an wen dieses Paket weitergeleitet wird. Er sendet es beispielsweise an BBB254 (das Gateway des Internetproviders, dessen genaue Adresse wir nicht kennen), da es keine spezifischeren Routen zu AAA1 als 0.0.0.0/0 gibt.

20) Internetprovider übertragen ein Paket von BBB1 zu AAA1 in ihren Netzen;

21) Der virtuelle Router auf AAA1 empfängt dieses Paket und erinnert sich, dass er beim Senden des Pakets von 192.168.A.1: 55555 auf BBB1: 11111 seine Adresse und seinen Absenderport in AAA1: 44444 geändert hat . Dies ist also die Antwort, die an 192.168.A.1: 55555 gesendet werden muss (tatsächlich gibt es, wie wir im vorherigen Beispiel erwähnt haben, auch ein paar weitere Überprüfungen, aber diesmal gehen wir nicht darauf ein).

22) , 192.168.A.1 , , , , 192.168.A.0/24 ;

23) MAC- 192.168.A.1 ;

24) 192.168.A.1 BBB1:1111 1 192.168.A.1:55555 TCP-.

, , 192.168.A.1 192.168.B.1 , BBB1 . 192.168.B.1 192.168.A.1 . , AAA1 , .

Fazit


VPN- , VPN-. , 247.

Source: https://habr.com/ru/post/de477854/


All Articles