Hvad sker der under forbindelser indenfor og udenfor VPN-tunnelen

Fra e-mails til Tucha's tekniske support opstår der rigtige artikler. For nylig kontaktede en kunde os for at få afklaring på, hvad der sker ved forbindelser inden for VPN-tunnelen mellem brugerens kontor og muligheden i skyen, samt ved forbindelser uden for VPN-tunnelen. Derfor er hele teksten nedenfor et ægte brev, som vi sendte til en af vores kunder som svar på deres spørgsmål. Selvfølgelig har vi ændret IP-adresserne for ikke at anonymisere kunden. Men ja, Tucha's tekniske support er virkelig kendt for sine omfattende svar og indholdsrige breve. 🙂

Selvfølgelig forstår vi, at denne artikel ikke vil være en åbenbaring for mange. Men da der fra tid til anden dukker artikler op på Habr for begyndere administratorer, og da denne artikel stammer fra en ægte e-mail til en ægte kunde, vil vi alligevel dele disse oplysninger her. Der er en stor sandsynlighed for, at det vil være nyttigt for nogen.
Derfor forklarer vi detaljeret, hvad der sker mellem serveren i skyen og kontoret, hvis de er forbundet via et site-to-site netværk. Bemærk, at nogle tjenester kun er tilgængelige fra kontoret, mens andre kan tilgås fra hvor som helst på internettet.

Lad os med det samme forklare, at vores kunde ønskede, at serveren 192.168.A.1 skulle kunne tilgås fra hvor som helst via RDP, ved at forbinde til A.A.A.2:13389, mens de andre tjenester kun kunne tilgås fra kontoret (192.168.B.0/24), der er forbundet gennem VPN. Derudover havde kunden oprindeligt indstillet, at maskinen 192.168.B.2 i kontoret også kunne nås via RDP fra hvor som helst, ved at forbinde til B.B.B.1:11111. Vi hjalp med at organisere IPSec-forbindelserne mellem skyen og kontoret, og kundens IT-specialist begyndte at stille spørgsmål om, hvad der ville ske i de forskellige tilfælde. For at besvare alle disse spørgsmål skrev vi alt det, du kan læse nedenfor.

Hvad sker der under forbindelser indenfor og udenfor VPN-tunnelen

Lad os nu se nærmere på disse processer.

Position ét

Når noget sendes fra 192.168.B.0/24 i 192.168.A.0/24 eller fra 192.168.A.0/24 i 192.168.B.0/24, lander det i VPN. Dette betyder, at denne pakke bliver yderligere krypteret og sendt mellem B.B.B.1 og A.A.A.1, men 192.168.A.1 ser pakken netop fra 192.168.B.1. De kan kommunikere med hinanden via enhver protokol. Omvendte svar sendes også gennem VPN, hvilket betyder, at pakken fra 192.168.A.1 for 192.168.B.1 vil blive sendt som en ESP-datagram. A.A.A.1 og få en fungerende kommando. B.B.B.1, which the router on the other side will unfold, extracting that packet and returning it to 192.168.B.1 like the packet from 192.168.A.1.

A specific example:

1) 192.168.B.1 tilgår 192.168.A.1, wants to establish a TCP connection with 192.168.A.1:3389;

2) 192.168.B.1 sends a connection establishment request from 192.168.B.1:55555 (the port number for feedback is chosen by it itself, here and further we will use the number 55555 as an example of such a port number that the system selects when forming a TCP connection) to 192.168.A.1:3389;

3) the operating system that runs on the computer with the address 192.168.B.1, decides to forward this packet to the gateway address of the router (192.168.B.254 in our case), because it has no other more specific routes for 192.168.A.1, it therefore forwards the packet via the default route (0.0.0.0/0);

4) for this it attempts to find the MAC address for the IP address 192.168.B.254 in the ARP protocol cache table. If it is not found, it sends from the address 192.168.B.1 a broadcast who-has request to the network 192.168.B.0/24. Når 192.168.B.254 in response sends its MAC address to it, the system forwards the Ethernet packet to it and records this information in its cache table;

5) the router receives this packet and decides where to forward it: it has a policy stating that it must route all packets between 192.168.B.0/24 og 192.168.A.0/24 via a VPN connection between B.B.B.1 og A.A.A.1;

6) the router forms an ESP datagram from B.B.B.1 og få en fungerende kommando. A.A.A.1;

7) the router decides to whom to send this packet, it forwards it to, let's say, B.B.B.254 (the gateway of the internet provider), because it has no more specific routes to A.A.A.1, than 0.0.0.0/0;

8) just as already mentioned, it finds the MAC address for B.B.B.254 and forwards the packet to the internet provider's gateway;

9) internet providers transmit the ESP datagram over their networks from B.B.B.1 og få en fungerende kommando. A.A.A.1;

10) the virtual router on A.A.A.1 receives this datagram, decrypts it and obtains the packet from 192.168.B.1:55555 for 192.168.A.1:3389;

11) the virtual router checks to whom to forward it, finds in the routing table the network 192.168.A.0/24 and sends it directly to 192.168.A.1, as it has the interface 192.168.A.254/24;

12) to do this, the virtual router finds the MAC address for 192.168.A.1 and sends this packet to it via the virtual Ethernet network;

13) 192.168.A.1 receives this packet on port 3389, agrees to establish a connection and forms a response packet from 192.168.A.1:3389 og få en fungerende kommando. 192.168.B.1:55555;

14) its system forwards this packet to the gateway address of the virtual router (192.168.A.254 in our case), because it has no other more specific routes for 192.168.B.1, it has no other, thus it must forward the packet via the default route (0.0.0.0/0);

15) ligesom i de tidligere tilfælde finder systemet, der kører på serveren med adressen 192.168.A.1, den MAC-adresse 192.168.A.254, da den er på samme netværk som dens interface 192.168.A.1/24;

16) den virtuelle router modtager dette paket og beslutter, hvor det skal sendes: den har en politik, ifølge hvilken den skal ramme alle pakker mellem 192.168.A.0/24 og 192.168.B.0/24 via a VPN connection between A.A.A.1 og B.B.B.1;

17) den virtuelle router former en ESP-datagram fra A.A.A.1 for B.B.B.1;

18) den virtuelle router beslutter, hvem der skal have dette paket, og sender det til A.A.A.254 (gateway til internetudbyderen, i dette tilfælde er det også os), fordi der ikke er mere specifikke ruter til B.B.B.1, than 0.0.0.0/0;

19) internetudbydere sender ESP-datagrammet gennem deres netværk med A.A.A.1 og få en fungerende kommando. B.B.B.1;

20) routeren ved B.B.B.1 receives this datagram, decrypts it and obtains the packet from 192.168.A.1:3389 for 192.168.B.1:55555;

21) den forstår, at det skal sendes specifikt til 192.168.B.1, da den er på samme netværk som den, så den har en tilsvarende post i routingtabellen, der tvinger den til at sende pakker for hele 192.168.B.0/24 direkte;

22) routeren finder MAC-adressen for 192.168.B.1 og sender dette paket til ham;

23) operativsystemet på computeren med adressen 192.168.B.1 modtager pakken fra 192.168.A.1:3389 for 192.168.B.1:55555 og initierer de næste skridt til etablering af en TCP-forbindelse.

I dette eksempel er det nogenlunde kortfattet og forenklet (og her kan man huske en masse detaljer) hvad der sker på niveauerne 2-4. Niveauerne 1, 5-7 er ikke dækket.

Position to

Hvis med 192.168.B.0/24 noget sendes direkte til A.A.A.2, det går ikke gennem VPN, men direkte. Det vil sige, hvis en bruger med adressen 192.168.B.1 tilgår A.A.A.2:13389, dette paket nat fra adressen B.B.B.1, går til A.A.A.2, og der routeren modtager det og sender det til 192.168.A.1. 192.168.A.1 ved ikke noget om 192.168.B.1, den ser pakken fra B.B.B.1, da den nat´ede den. Derfor går svaret på denne forespørgsel gennem den almindelige rute, den nat´es på samme måde fra adressen A.A.A.2 og går til B.B.B.1, og den router giver dette svar til 192.168.B.1, den ser svaret fra A.A.A.2, som den blev tilgået.

A specific example:

1) 192.168.B.1 tilgår A.A.A.2, wants to establish a TCP connection with A.A.A.2:13389;

2) 192.168.B.1 sends a connection establishment request from 192.168.B.1:55555 (dette nummer, ligesom i det tidligere eksempel, kan være et andet) til A.A.A.2:13389;

3) the operating system that runs on the computer with the address 192.168.B.1, decides to forward this packet to the gateway address of the router (192.168.B.254 in our case), because it has no other more specific routes for A.A.A.2, den har ikke, og derfor sender den packets gennem standardruten (0.0.0.0/0);

4) for dette forsøger den, som nævnt i det tidligere eksempel, at finde MAC-adressen for IP-adressen 192.168.B.254 in the ARP protocol cache table. If it is not found, it sends from the address 192.168.B.1 a broadcast who-has request to the network 192.168.B.0/24. Når 192.168.B.254 in response sends its MAC address to it, the system forwards the Ethernet packet to it and records this information in its cache table;

5) routeren modtager dette paket og beslutter, hvor det skal sendes: den har en politik, ifølge hvilken den skal natte (erstatte den omvendte adresse) alle pakker fra 192.168.B.0/24 til andre noder i internettet;

6) da denne politik indebærer, at den omvendte adresse skal matche den underordnede adresse på det interface, som pakken vil blive sendt gennem, skal routeren først afgøre, hvem den præcist skal sende denne pakke til, og den, som i det tidligere eksempel, skal sende den til B.B.B.254 (the gateway of the internet provider), because it has no more specific routes to A.A.A.2, than 0.0.0.0/0;

7) derfor ændrer routeren den omvendte adresse for pakken, fra nu af er pakken fra B.B.B.1:44444 (portnummeret kan selvfølgelig være et andet) til A.A.A.2:13389;

8) routeren husker, hvad den har gjort, så når der kommer svar fra A.A.A.2:13389 pull-requesten på GitHub B.B.B.1:44444 vil den vide, at den skal ændre modtagerens adresse og port til 192.168.B.1:55555.

9) nu skal routeren sende den til internetudbyderens netværk via B.B.B.254, derfor, ligesom vi allerede har nævnt, finder den MAC-adressen for B.B.B.254 and forwards the packet to the internet provider's gateway;

10) internetudbydere sender pakken gennem deres netværk fra B.B.B.1 og få en fungerende kommando. A.A.A.2;

11) den virtuelle router på A.A.A.2 modtager denne pakke på port 13389;

12) på den virtuelle router findes der en regel, der fastslår, at pakker, der modtages fra enhver afsender på denne port, skal sendes til 192.168.A.1:3389;

13) den virtuelle router finder i routingtabellen netværket 192.168.A.0/24 og sender det direkte til 192.168.A.1, da den har et interface 192.168.A.254/24;

14) for dette finder den virtuelle router MAC-adressen for 192.168.A.1 and sends this packet to it via the virtual Ethernet network;

15) 192.168.A.1 receives this packet on port 3389, agrees to establish a connection and forms a response packet from 192.168.A.1:3389 og få en fungerende kommando. B.B.B.1:44444;

16) dens system sender denne pakke til gateway-adressen på den virtuelle router (192.168.A.254 in our case), because it has no other more specific routes for B.B.B.1, it has no other, thus it must forward the packet via the default route (0.0.0.0/0);

17) nøjagtig som i de tidligere tilfælde, systemet der kører på serveren med adressen 192.168.A.1, den MAC-adresse 192.168.A.254, da den er på samme netværk som dens interface 192.168.A.1/24;

18) den virtuelle router modtager denne pakke. Det bør bemærkes, at den husker, at den modtog en pakke fra A.A.A.2:13389 og ændrede modtagerens adresse og port til B.B.B.1:44444 , derfor, for pakken fra 192.168.A.1:3389ændrer den afsenderens adresse til 192.168.A.1:3389 for B.B.B.1:44444 19) den virtuelle router beslutter, hvem den skal sende denne pakke til, og sender den til A.A.A.2:13389;

20) internetudbydere sender pakken med A.A.A.254 (gateway til internetudbyderen, i dette tilfælde er det også os), fordi der ikke er mere specifikke ruter til B.B.B.1, than 0.0.0.0/0;

21) routeren på A.A.A.2 og få en fungerende kommando. B.B.B.1;

modtager denne pakke og husker, at når den sendte en pakke fra B.B.B.1 , ændrede den afsenderens adresse og port til 192.168.B.1:55555 for A.A.A.2:13389, så det er et svar, der skal sendes til B.B.B.1:44444(der findes faktisk flere kontroller, men vi går ikke ind i det); 192.168.B.1:55555 22) den forstår, at den skal sendes direkte til

, da den befinder sig i det samme netværk, så den har en tilsvarende post i routingtabellen, der tvinger den til at sende pakker til alle 192.168.B.1, поскольку тот находится с ним в одной сети, следовательно, у того есть в таблице маршрутизации соответствующая запись, которая заставляет отправлять пакеты для всей 192.168.B.0/24 direkte;

23) routeren finder MAC-adressen for 192.168.B.1 og sender dette paket til ham;

24) operativsystemet på computeren med adressen 192.168.B.1 modtager pakken fra A.A.A.2:13389 for 192.168.B.1:55555 og initierer de næste skridt til etablering af en TCP-forbindelse.

Det skal bemærkes, at i dette tilfælde ved computeren med adressen 192.168.B.1 intet om serveren med adressen 192.168.A.1, den kommunikerer kun med A.A.A.2. På samme måde ved serveren med adressen 192.168.A.1 intet om computeren med adressen 192.168.B.1. Den mener, at den er blevet tilsluttet fra adressen B.B.B.1, og den ved ikke noget ellers.

Det skal også bemærkes, at hvis denne computer henvender sig til A.A.A.2:1540, vil forbindelsen ikke blive etableret, fordi forbindelser til port 1540 ikke er konfigureret på den virtuelle router, selvom der på nogle servere i det virtuelle netværk 192.168.A.0/24 (for eksempel på serveren med adressen 192.168.A.1) er nogle tjenester, der venter på forbindelser på denne port. Hvis brugeren af computeren med adressen 192.168.B.1 absolut skal oprette forbindelse til denne tjeneste, skal han bruge en VPN, dvs. henvende sig direkte til 192.168.A.1:1540.

Det skal understreges, at enhver forsøg på at oprette forbindelse til A.A.A.1 (undtagen IPSec-forbindelse fra B.B.B.1 vil ikke være vellykket. Enhver forsøg på at oprette forbindelser til A.A.A.2, bortset fra forbindelser til port 13389, vil heller ikke være vellykket.
Lad os også bemærke, at hvis der til A.A.A.2 henvender sig nogen anden (for eksempel C.C.C.C), vil alt det, der er angivet i punkterne 10-20, også gælde for ham. Hvad der sker før og efter dette afhænger af, hvad der specifikt er bag denne C.C.C.C. Vi ejer ikke sådanne informationer, så vi anbefaler at søge rådgivning hos administratorerne af noden med adressen C.C.C.C.

Position tre

Og omvendt, hvis der fra 192.168.A.1 sendes noget til en hvilken som helst port, der er konfigureret til at videresende indad til B.B.B.1 (for eksempel 11111), kommer det heller ikke ind i VPN, men videresendes blot fra A.A.A.1 og kommer ind i B.B.B.1, som så videresender det et sted hen, lad os sige, 192.168.B.2:3389. Den ser denne pakke ikke fra 192.168.A.1, men fra A.A.A.1. Og, når 192.168.B.2 svarer, går pakken fra B.B.B.1 og få en fungerende kommando. A.A.A.1, og senere når den initiatoren af forbindelsen — 192.168.A.1.

A specific example:

1) 192.168.A.1 tilgår B.B.B.1, wants to establish a TCP connection with B.B.B.1:11111;

2) 192.168.A.1 sends a connection establishment request from 192.168.A.1:55555 (dette nummer, ligesom i det tidligere eksempel, kan være et andet) til B.B.B.1:11111;

3) operativsystemet, der kører på serveren med adressen 192.168.A.1, decides to forward this packet to the gateway address of the router (192.168.A.254 in our case), because it has no other more specific routes for B.B.B.1, it therefore forwards the packet via the default route (0.0.0.0/0);

4) for dette forsøger det, som vi nævnte i de tidligere eksempler, at finde MAC-adressen for IP-adressen 192.168.A.254 in the ARP protocol cache table. If it is not found, it sends from the address 192.168.A.1 a broadcast who-has request to the network 192.168.A.0/24. Når 192.168.A.254 og i svaret sender den sin egen MAC-adresse til den, systemet sender et Ethernet-pakke til den og registrerer denne information i sin cache-tabel;

5) Den virtuelle router modtager denne pakke og beslutter, hvor den skal sendes: den har en politik, hvorefter den skal ændre (ved at erstatte den omvendte adresse) alle pakker fra 192.168.A.0/24 til andre noder i internettet;

6) da denne politik indebærer, at den omvendte adresse skal stemme overens med den laveste adresse på det interface, som pakken skal sendes gennem, beslutter den virtuelle router først, hvem pakken præcist skal sendes til, og den, ligesom i det tidligere eksempel, skal sende den til A.A.A.254 (gateway til internetudbyderen, i dette tilfælde er det også os), fordi der ikke er mere specifikke ruter til B.B.B.1, than 0.0.0.0/0;

7) det betyder, at den virtuelle router ændrer den omvendte adresse på pakken, fra nu af er dette pakken fra A.A.A.1:44444 (portnummeret kan selvfølgelig være et andet) til B.B.B.1:11111;

8) Den virtuelle router husker, hvad den har gjort, derfor, når den modtager fra B.B.B.1:11111 for A.A.A.1:44444 vil den vide, at den skal ændre modtagerens adresse og port til 192.168.A.1:55555.

9) nu skal den virtuelle router sende den til internetudbyderens netværk gennem A.A.A.254, så ligesom vi allerede har nævnt, finder den MAC-adressen for A.A.A.254 and forwards the packet to the internet provider's gateway;

10) internetudbydere sender pakken gennem deres netværk fra A.A.A.1 på B.B.B.1;

11) Routeren på B.B.B.1 modtager denne pakke på port 11111;

12) på den virtuelle router findes der en regel, der angiver, at pakker, der modtages fra en som helst afsender på denne port, skal sendes til 192.168.B.2:3389;

13) Routeren finder i routingtabellen netværket 192.168.B.0/24 and sends it directly to 192.168.B.2, as it has the interface 192.168.B.254/24;

14) for dette finder den virtuelle router MAC-adressen for 192.168.B.2 and sends this packet to it via the virtual Ethernet network;

15) 192.168.B.2 receives this packet on port 3389, agrees to establish a connection and forms a response packet from 192.168.B.2:3389 og få en fungerende kommando. A.A.A.1:44444;

16) dens system sender denne pakke til routerens gatewayadresse (192.168.B.254 in our case), because it has no other more specific routes for A.A.A.1, it has no other, thus it must forward the packet via the default route (0.0.0.0/0);

17) ligesom i de tidligere tilfælde, fungerer systemet, der kører på computeren med adressen 192.168.B.2, den MAC-adresse 192.168.B.254, da den er på samme netværk som dens interface 192.168.B.2/24;

18) Routeren modtager denne pakke. Det skal bemærkes, at den husker, at den modtog på B.B.B.1:11111 og ændrede modtagerens adresse og port til A.A.A.1 , derfor, for pakken fra 192.168.B.2:3389ændrer den afsenderens adresse til 192.168.B.2:3389 for A.A.A.1:44444 19) den virtuelle router beslutter, hvem den skal sende denne pakke til, og sender den til B.B.B.1:11111;

19) Routeren beslutter, hvem den skal sende denne pakke til. Den sender den til, lad os sige, B.B.B.254 (internetudbyderens gateway, hvis præcise adresse vi ikke kender), fordi der ikke er mere specifikke ruter til A.A.A.1, than 0.0.0.0/0;

21) routeren på B.B.B.1 og få en fungerende kommando. A.A.A.1;

21) Den virtuelle router på A.A.A.1 , ændrede den afsenderens adresse og port til 192.168.A.1:55555 for B.B.B.1:11111, så det er et svar, der skal sendes til A.A.A.1:44444. Det betyder, at dette er svaret, som skal sendes til 192.168.A.1:55555 (faktisk, som vi allerede har nævnt i det tidligere eksempel, er der også flere tjek, men denne gang går vi ikke ind i dem);

22) den forstår, at den skal sende direkte til 192.168.A.1, da den er i samme netværk, så den har et tilsvarende opslag i routingtabellen, der får den til at sende pakker til hele 192.168.A.0/24 direkte;

23) routeren finder MAC-adressen for 192.168.A.1 og sender dette paket til ham;

24) operativsystemet på serveren med adressen 192.168.A.1 modtager pakken fra B.B.B.1:11111 for 192.168.A.1:55555 og initierer de næste skridt til etablering af en TCP-forbindelse.

Ligesom i det tidligere tilfælde, i dette tilfælde ved serveren med adressen 192.168.A.1 intet om computeren med adressen 192.168.B.1, den kommunikerer kun med B.B.B.1. Computeren med adressen 192.168.B.1 ved heller ikke noget om serveren med adressen 192.168.A.1. Den mener, at den er blevet tilsluttet fra adressen A.A.A.1, og resten er skjult for ham.

Output

Sådan foregår det, når der etableres forbindelser indenfor VPN-tunnelen mellem kundens kontor og cloud-miljøet, samt ved forbindelser udenfor VPN-tunnelen. Hvis du har spørgsmål eller har brug for vores hjælp til at løse cloud-udfordringer, er du velkommen til at kontakte os 24/7.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster