Wat gebeurt er op verbindingen binnen en buiten de VPN-tunnel

Echte artikelen komen voort uit brieven aan de technische ondersteuning van Tucha. Zo benaderde een klant ons onlangs met het verzoek om opheldering te geven over wat er gebeurt tijdens verbindingen binnen de VPN-tunnel tussen het kantoor van de gebruiker en de cloudomgeving, maar ook tijdens verbindingen buiten de VPN-tunnel. Onderstaande tekst is dan ook een echte brief die wij naar een van onze klanten hebben gestuurd als antwoord op zijn vraag. Uiteraard zijn de IP-adressen gewijzigd om de klant niet te de-anonimiseren. Maar ja, de technische ondersteuning van Tucha staat echt bekend om zijn gedetailleerde antwoorden en informatieve e-mails. 🙂

Natuurlijk begrijpen we dat dit artikel voor velen geen openbaring zal zijn. Maar aangezien er af en toe artikelen voor beginnende beheerders op Habr verschijnen, en ook omdat dit artikel uit een echte brief aan een echte klant verscheen, zullen we deze informatie hier toch delen. De kans is groot dat het voor iemand nuttig zal zijn.
Daarom leggen we gedetailleerd uit wat er gebeurt tussen de server in de cloud en het kantoor als deze via een site-to-site netwerk zijn verbonden. Houd er rekening mee dat sommige diensten alleen toegankelijk zijn vanaf kantoor, en dat andere overal op internet toegankelijk zijn.

Laten we meteen uitleggen wat onze klant op de server wilde 192.168.A.1 je kunt overal vandaan komen via RDP, verbinding maken met AAA2:13389en toegang tot andere diensten alleen vanaf kantoor (192.168.B.0/24)verbonden via VPN. Ook had de klant in eerste instantie de auto geconfigureerd 192.168.B.2 op kantoor was het ook mogelijk om RDP overal te gebruiken en verbinding te maken BBB1:11111. We hielpen bij het organiseren van IPSec-verbindingen tussen de cloud en het kantoor, en de IT-specialist van de klant begon vragen te stellen over wat er in dit of dat geval zou gebeuren. Om al deze vragen te beantwoorden, hebben we hem in feite alles geschreven wat je hieronder kunt lezen.

Wat gebeurt er op verbindingen binnen en buiten de VPN-tunnel

Laten we deze processen nu in meer detail bekijken.

Positie één

Wanneer iets wordt verzonden vanaf 192.168.B.0/24 в 192.168.A.0/24 of van 192.168.A.0/24 в 192.168.B.0/24, komt het in de VPN terecht. Dat wil zeggen dat dit pakket bovendien wordt gecodeerd en ertussen wordt verzonden BBB1 и AAA1Maar 192.168.A.1 ziet het pakket er precies uit 192.168.B.1. Ze kunnen met elk protocol met elkaar communiceren. Retourantwoorden worden op dezelfde manier via de VPN verzonden, wat betekent dat het pakket afkomstig is van 192.168.A.1 voor 192.168.B.1 wordt verzonden als een ESP-datagram van AAA1 op BBB1, die de router aan die kant zal uitvouwen, haal dat pakket eruit en stuur het ernaar toe 192.168.B.1 als pakket van 192.168.A.1.

Specifiek voorbeeld:

1) 192.168.B.1 doet een beroep op 192.168.A.1, wil een TCP-verbinding tot stand brengen 192.168.A.1:3389;

2) 192.168.B.1 stuurt een verbindingsverzoek van 192.168.B.1:55555 (hij kiest zelf het poortnummer voor feedback; hierna gebruiken we het nummer 55555 als voorbeeld van het poortnummer dat het systeem selecteert bij het tot stand brengen van een TCP-verbinding) op 192.168.A.1:3389;

3) een besturingssysteem dat draait op een computer met het adres 192.168.B.1, besluit dit pakket door te sturen naar het gateway-adres van de router (192.168.B.254 in ons geval), omdat er andere, meer specifieke routes voor zijn 192.168.A.1, dit is niet het geval, daarom verzendt het het pakket via de standaardroute (0.0.0.0/0);

4) hiervoor probeert het het MAC-adres voor het IP-adres te vinden 192.168.B.254 in de ARP-protocolcachetabel. Als het niet wordt gedetecteerd, wordt verzonden vanaf het adres 192.168.B.1 zend wie een verzoek heeft naar het netwerk 192.168.B.0/24... Wanneer 192.168.B.254 als reactie hierop stuurt het zijn MAC-adres, het systeem verzendt er een Ethernet-pakket voor en voert deze informatie in zijn cachetabel in;

5) de router ontvangt dit pakket en beslist waar het naartoe moet worden doorgestuurd: hij heeft een geschreven beleid volgens welke hij alle pakketten tussen 192.168.B.0/24 и 192.168.A.0/24 overdracht via een VPN-verbinding tussen BBB1 и AAA1;

6) de router genereert een ESP-datagram van BBB1 op AAA1;

7) de router beslist naar wie dit pakket moet worden verzonden, hij stuurt het bijvoorbeeld naar BBB254 (ISP gateway) omdat er meer specifieke routes naar toe zijn AAA1, dan 0.0.0.0/0, heeft het niet;

8) precies hetzelfde als al gezegd, het vindt het MAC-adres ervoor BBB254 en verzendt het pakket naar de ISP-gateway;

9) Internetproviders zenden een ESP-datagram uit BBB1 op AAA1;

10) virtuele router ingeschakeld AAA1 ontvangt dit datagram, decodeert het en ontvangt er een pakketje van 192.168.B.1:55555 voor 192.168.A.1:3389;

11) de virtuele router controleert aan wie hij het moet doorgeven en vindt het netwerk in de routeringstabel 192.168.A.0/24 en stuurt het rechtstreeks naar 192.168.A.1, omdat het een interface heeft 192.168.A.254/24;

12) hiervoor zoekt de virtuele router het MAC-adres op 192.168.A.1 en verzendt dit pakket naar hem via een virtueel Ethernet-netwerk;

13) 192.168.A.1 ontvangt dit pakket op poort 3389, stemt ermee in een verbinding tot stand te brengen en genereert als antwoord een pakket 192.168.A.1:3389 op 192.168.B.1:55555;

14) zijn systeem verzendt dit pakket naar het gateway-adres van de virtuele router (192.168.A.254 in ons geval), omdat er andere, meer specifieke routes voor zijn 192.168.B.1, dit is niet het geval en daarom moet het pakket via de standaardroute (0.0.0.0/0) worden verzonden;

15) hetzelfde als in eerdere gevallen, een systeem dat draait op een server met het adres 192.168.A.1, vindt het MAC-adres 192.168.A.254, omdat het zich met zijn interface op hetzelfde netwerk bevindt 192.168.A.1/24;

16) de virtuele router ontvangt dit pakket en beslist waar het naartoe moet worden doorgestuurd: hij heeft een schriftelijk beleid volgens welke hij alle pakketten tussen 192.168.A.0/24 и 192.168.B.0/24 overdracht via een VPN-verbinding tussen AAA1 и BBB1;

17) genereert de virtuele router een ESP-datagram AAA1 voor BBB1;

18) de virtuele router beslist naar wie dit pakket moet worden verzonden AAA254 (ISP-gateway, in dit geval zijn dat wij ook), omdat er specifiekere routes naar toe zijn BBB1, dan 0.0.0.0/0, heeft het niet;

19) Internetproviders zenden een ESP-datagram over hun netwerken uit AAA1 op BBB1;

20) router ingeschakeld BBB1 ontvangt dit datagram, decodeert het en ontvangt er een pakketje van 192.168.A.1:3389 voor 192.168.B.1:55555;

21) hij begrijpt dat het specifiek moet worden overgedragen aan 192.168.B.1, aangezien hij zich met hem op hetzelfde netwerk bevindt, heeft hij daarom een ​​corresponderende vermelding in de routeringstabel, wat hem dwingt pakketten te verzenden voor de hele 192.168.B.0/24 direct;

22) waar de router het MAC-adres voor vindt 192.168.B.1 en overhandigt hem dit pakket;

23) besturingssysteem op een computer met het adres 192.168.B.1 ontvangt een pakketje van 192.168.A.1:3389 voor 192.168.B.1:55555 en initieert de volgende stappen om een ​​TCP-verbinding tot stand te brengen.

Dit voorbeeld beschrijft heel beknopt en vereenvoudigd (en hier kun je nog een heleboel andere details onthouden) wat er gebeurt op de niveaus 2-4. Niveaus 1, 5-7 worden niet in aanmerking genomen.

Positie twee

Indien met 192.168.B.0/24 er wordt specifiek iets naar gestuurd AAA2, het gaat niet naar de VPN, maar rechtstreeks. Dat wil zeggen, als de gebruiker vanaf het adres komt 192.168.B.1 doet een beroep op AAA2:13389, dit pakketje komt van het adres BBB1, gaat door AAA2, en vervolgens ontvangt de router het en verzendt het naar 192.168.A.1. 192.168.A.1 weet er niets van 192.168.B.1, hij ziet een pakketje van BBB1, omdat hij hem heeft. Daarom volgt het antwoord op dit verzoek de algemene route, het komt op dezelfde manier van het adres AAA2 en gaat naar BBB1, en die router stuurt dit antwoord naar 192.168.B.1, hij ziet het antwoord van AAA2, tot wie hij zich richtte.

Specifiek voorbeeld:

1) 192.168.B.1 doet een beroep op AAA2, wil een TCP-verbinding tot stand brengen AAA2:13389;

2) 192.168.B.1 stuurt een verbindingsverzoek van 192.168.B.1:55555 (dit nummer kan, net als in het vorige voorbeeld, afwijken) op AAA2:13389;

3) een besturingssysteem dat draait op een computer met het adres 192.168.B.1, besluit dit pakket door te sturen naar het gateway-adres van de router (192.168.B.254 in ons geval), omdat er andere, meer specifieke routes voor zijn AAA2, deze heeft er geen, wat betekent dat het pakket via de standaardroute (0.0.0.0/0) wordt verzonden;

4) hiervoor probeert het, zoals we in het vorige voorbeeld vermeldden, het MAC-adres voor het IP-adres te vinden 192.168.B.254 in de ARP-protocolcachetabel. Als het niet wordt gedetecteerd, wordt verzonden vanaf het adres 192.168.B.1 zend wie een verzoek heeft naar het netwerk 192.168.B.0/24... Wanneer 192.168.B.254 als reactie hierop stuurt het zijn MAC-adres, het systeem verzendt er een Ethernet-pakket voor en voert deze informatie in zijn cachetabel in;

5) de router ontvangt dit pakket en beslist waar het naartoe moet worden doorgestuurd: hij heeft een schriftelijk beleid volgens welke hij alle pakketten moet doorsturen (ter vervanging van het retouradres) 192.168.B.0/24 naar andere internetknooppunten;

6) aangezien dit beleid inhoudt dat het retouradres moet overeenkomen met het lage adres op de interface waarmee dit pakket zal worden verzonden, beslist de router eerst naar wie dit pakket precies moet worden verzonden, en moet hij het, net als in het vorige voorbeeld, verzenden naar BBB254 (ISP gateway) omdat er meer specifieke routes naar toe zijn AAA2, dan 0.0.0.0/0, heeft het niet;

7) daarom vervangt de router het retouradres van het pakket, waar het pakket voortaan vandaan komt BBB1:44444 (poortnummer kan natuurlijk anders zijn). AAA2:13389;

8) de router onthoudt wat hij heeft gedaan, dus wanneer AAA2:13389 к BBB1:44444 Als er een antwoord komt, weet hij dat hij het bestemmingsadres en de poort moet wijzigen 192.168.B.1:55555.

9) nu moet de router het doorgeven aan het ISP-netwerk via BBB254vandaar dat het, zoals we al vermeldden, het MAC-adres voor vindt BBB254 en verzendt het pakket naar de ISP-gateway;

10) Internetproviders verzenden pakketten van BBB1 op AAA2;

11) virtuele router ingeschakeld AAA2 ontvangt dit pakket op poort 13389;

12) er is een regel op de virtuele router die bepaalt dat pakketten die worden ontvangen van een afzender op deze poort moeten worden verzonden naar 192.168.A.1:3389;

13) de virtuele router vindt het netwerk in de routeringstabel 192.168.A.0/24 en verzendt deze direct 192.168.A.1 omdat het een interface heeft 192.168.A.254/24;

14) hiervoor zoekt de virtuele router het MAC-adres op 192.168.A.1 en verzendt dit pakket naar hem via een virtueel Ethernet-netwerk;

15) 192.168.A.1 ontvangt dit pakket op poort 3389, stemt ermee in een verbinding tot stand te brengen en genereert als antwoord een pakket 192.168.A.1:3389 op BBB1:44444;

16) zijn systeem verzendt dit pakket naar het gateway-adres van de virtuele router (192.168.A.254 in ons geval), omdat er andere, meer specifieke routes voor zijn BBB1, dit is niet het geval en daarom moet het pakket via de standaardroute (0.0.0.0/0) worden verzonden;

17) precies hetzelfde als in eerdere gevallen, een systeem dat draait op een server met het adres 192.168.A.1, vindt het MAC-adres 192.168.A.254, omdat het zich met zijn interface op hetzelfde netwerk bevindt 192.168.A.1/24;

18) ontvangt de virtuele router dit pakket. Opgemerkt moet worden dat hij zich herinnert wat hij heeft ontvangen AAA2:13389 pakket vanaf BBB1:44444 en veranderde het adres en de poort van zijn ontvanger in 192.168.A.1:3389Daarom komt het pakket uit 192.168.A.1:3389 voor BBB1:44444 het verandert het afzenderadres in AAA2:13389;

19) De virtuele router beslist naar wie dit pakket moet worden verzonden AAA254 (ISP-gateway, in dit geval zijn dat wij ook), omdat er specifiekere routes naar toe zijn BBB1, dan 0.0.0.0/0, heeft het niet;

20) Internetproviders zenden een pakket uit met AAA2 op BBB1;

21) router ingeschakeld BBB1 ontvangt dit pakketje en onthoudt dat toen hij het pakketje verzond 192.168.B.1:55555 voor AAA2:13389, hij heeft zijn adres en afzenderpoort gewijzigd in BBB1:44444, dan is dit het antwoord waarnaar moet worden verzonden 192.168.B.1:55555 (in feite zijn er nog een aantal controles, maar daar gaan we niet diep op in);

22) hij begrijpt dat het rechtstreeks moet worden doorgegeven 192.168.B.1, aangezien hij zich met hem op hetzelfde netwerk bevindt, heeft hij daarom een ​​corresponderende vermelding in de routeringstabel, wat hem dwingt pakketten te verzenden voor de hele 192.168.B.0/24 direct;

23) waar de router het MAC-adres voor vindt 192.168.B.1 en overhandigt hem dit pakket;

24) besturingssysteem op een computer met het adres 192.168.B.1 ontvangt een pakketje van AAA2:13389 voor 192.168.B.1:55555 en initieert de volgende stappen om een ​​TCP-verbinding tot stand te brengen.

Opgemerkt moet worden dat in dit geval de computer het adres heeft 192.168.B.1 weet niets over de server met het adres 192.168.A.1, hij communiceert alleen met AAA2. Hetzelfde geldt voor de server met het adres 192.168.A.1 weet niets van de computer met het adres 192.168.B.1. Hij denkt dat hij verbonden was vanaf het adres BBB1, en hij weet verder niets, om zo te zeggen.

Er moet ook worden opgemerkt dat als deze computer toegang krijgt AAA2:1540, wordt de verbinding niet tot stand gebracht omdat het doorsturen van verbindingen naar poort 1540 niet is geconfigureerd op de virtuele router, zelfs niet op servers in het virtuele netwerk 192.168.A.0/24 (bijvoorbeeld op een server met het adres 192.168.A.1) en er zijn enkele services die wachten op verbindingen op deze poort. Als een computergebruiker met een adres 192.168.B.1 Het is absoluut noodzakelijk om een ​​verbinding met deze dienst tot stand te brengen, deze moet een VPN gebruiken, d.w.z. rechtstreeks contact opnemen 192.168.A.1:1540.

Benadrukt moet worden dat elke poging om een ​​verbinding tot stand te brengen met AAA1 (behalve voor de IPSec-verbinding van de BBB1 zal niet succesvol zijn. Elke poging om verbinding te maken met AAA2, behalve verbindingen met poort 13389, zullen ook niet succesvol zijn.
We merken ook op dat als dat wel het geval is AAA2 Als iemand anders een aanvraag indient (bijvoorbeeld CCCC), is alles aangegeven in de paragrafen 10-20 ook op hem van toepassing. Wat er voor en erna gebeurt, hangt af van wat er precies achter deze CCCC zit. Dergelijke informatie beschikken wij niet, daarom raden wij u aan om de beheerders van het knooppunt met het CCCC-adres te raadplegen

Positie drie

En omgekeerd, als met 192.168.A.1 er wordt iets naar een poort gestuurd die is geconfigureerd om naar BBB1 door te sturen (bijvoorbeeld 11111), het komt ook niet in de VPN terecht, maar stroomt eenvoudigweg van AAA1 en stapt erin BBB1, en hij verzendt het al ergens in bijvoorbeeld 192.168.B.2:3389. Hij ziet dit pakket er niet uit 192.168.A.1, Maar AAA1. En wanneer 192.168.B.2 antwoordt, het pakket komt vandaan BBB1 op AAA1, en komt later bij de verbindingsinitiator - 192.168.A.1.

Specifiek voorbeeld:

1) 192.168.A.1 doet een beroep op BBB1, wil een TCP-verbinding tot stand brengen BBB1:11111;

2) 192.168.A.1 stuurt een verbindingsverzoek van 192.168.A.1:55555 (dit nummer kan, net als in het vorige voorbeeld, afwijken) op BBB1:11111;

3) een besturingssysteem dat op een server met het adres draait 192.168.A.1, besluit dit pakket door te sturen naar het gateway-adres van de router (192.168.A.254 in ons geval), omdat er andere, meer specifieke routes voor zijn BBB1, dit is niet het geval, daarom verzendt het het pakket via de standaardroute (0.0.0.0/0);

4) hiervoor probeert het, zoals we in eerdere voorbeelden vermeldden, het MAC-adres voor het IP-adres te vinden 192.168.A.254 in de ARP-protocolcachetabel. Als het niet wordt gedetecteerd, wordt verzonden vanaf het adres 192.168.A.1 zend wie een verzoek heeft naar het netwerk 192.168.A.0/24... Wanneer 192.168.A.254 als reactie hierop stuurt hij haar zijn MAC-adres, het systeem verzendt daarvoor een Ethernet-pakket en voert deze informatie in de cachetabel in;

5) de virtuele router ontvangt dit pakket en beslist waar het naartoe moet worden doorgestuurd: hij heeft een geschreven beleid volgens welke hij alle pakketten moet doorsturen (ter vervanging van het retouradres) 192.168.A.0/24 naar andere internetknooppunten;

6) aangezien dit beleid ervan uitgaat dat het retouradres moet overeenkomen met het lage adres op de interface waarmee dit pakket zal worden verzonden, beslist de virtuele router eerst naar wie dit pakket precies moet worden verzonden, en moet hij, net als in het vorige voorbeeld, het aan AAA254 (ISP-gateway, in dit geval zijn dat wij ook), omdat er specifiekere routes naar toe zijn BBB1, dan 0.0.0.0/0, heeft het niet;

7) Dit betekent dat de virtuele router het retouradres van het pakket vervangt, vanaf nu is het een pakket AAA1:44444 (poortnummer kan natuurlijk anders zijn). BBB1:11111;

8) de virtuele router onthoudt wat hij deed, dus wanneer BBB1:11111 voor AAA1:44444 Als er een antwoord komt, weet hij dat hij het bestemmingsadres en de poort moet wijzigen 192.168.A.1:55555.

9) nu moet de virtuele router het doorgeven aan het ISP-netwerk via AAA254, dus zoals we al vermeldden, vindt het het MAC-adres voor AAA254 en verzendt het pakket naar de ISP-gateway;

10) Internetproviders verzenden pakketten van AAA1 tot BBB1;

11) router ingeschakeld BBB1 ontvangt dit pakket op poort 11111;

12) er is een regel op de virtuele router die bepaalt dat pakketten die afkomstig zijn van een afzender op deze poort moeten worden verzonden naar 192.168.B.2:3389;

13) de router vindt het netwerk in de routeringstabel 192.168.B.0/24 en stuurt het rechtstreeks naar 192.168.B.2, omdat het een interface heeft 192.168.B.254/24;

14) hiervoor zoekt de virtuele router het MAC-adres op 192.168.B.2 en verzendt dit pakket naar hem via een virtueel Ethernet-netwerk;

15) 192.168.B.2 ontvangt dit pakket op poort 3389, stemt ermee in een verbinding tot stand te brengen en genereert als antwoord een pakket 192.168.B.2:3389 op AAA1:44444;

16) zijn systeem verzendt dit pakket naar het gateway-adres van de router (192.168.B.254 in ons geval), omdat er andere, meer specifieke routes voor zijn AAA1, dit is niet het geval en daarom moet het pakket via de standaardroute (0.0.0.0/0) worden verzonden;

17) op dezelfde manier als in eerdere gevallen, een systeem dat op een computer met het adres draait 192.168.B.2, vindt het MAC-adres 192.168.B.254, omdat het zich met zijn interface op hetzelfde netwerk bevindt 192.168.B.2/24;

18) ontvangt de router dit pakket. Opgemerkt moet worden dat hij zich herinnert wat hij heeft ontvangen BBB1:11111 pakket vanaf AAA1 en veranderde het adres en de poort van zijn ontvanger in 192.168.B.2:3389Daarom komt het pakket uit 192.168.B.2:3389 voor AAA1:44444 het verandert het afzenderadres in BBB1:11111;

19) beslist de router naar wie dit pakket moet worden verzonden. Hij stuurt het naar bijvoorbeeld BBB254 (ISP-gateway, waarvan we het exacte adres niet weten), omdat er geen specifieke routes meer naar toe zijn AAA1, dan 0.0.0.0/0, heeft het niet;

20) Internetproviders zenden een pakket uit met BBB1 op AAA1;

21) virtuele router ingeschakeld AAA1 ontvangt dit pakketje en onthoudt dat toen hij het pakketje verzond 192.168.A.1:55555 voor BBB1:11111, hij heeft zijn adres en afzenderpoort gewijzigd in AAA1:44444. Dit betekent dat dit het antwoord is waar naartoe gestuurd moet worden 192.168.A.1:55555 (in feite zijn er, zoals we in het vorige voorbeeld al zeiden, nog een aantal controles, maar deze keer gaan we er niet dieper op in);

22) hij begrijpt dat het rechtstreeks moet worden doorgegeven 192.168.A.1, aangezien hij zich met hem op hetzelfde netwerk bevindt, betekent dit dat hij een overeenkomstige vermelding in de routeringstabel heeft die hem dwingt pakketten naar de hele 192.168.A.0/24 direct;

23) waar de router het MAC-adres voor vindt 192.168.A.1 en overhandigt hem dit pakket;

24) besturingssysteem op de server met het adres 192.168.A.1 ontvangt een pakketje van BBB1:11111 voor 192.168.A.1:55555 en initieert de volgende stappen om een ​​TCP-verbinding tot stand te brengen.

Precies hetzelfde als in het vorige geval, in dit geval de server met het adres 192.168.A.1 weet niets van de computer met het adres 192.168.B.1, hij communiceert alleen met BBB1. Computer met adres 192.168.B.1 weet ook niets over de server met het adres 192.168.A.1. Hij denkt dat hij verbonden was vanaf het adres AAA1, en de rest is voor hem verborgen.

Uitgang

Zo gebeurt alles voor verbindingen binnen de VPN-tunnel tussen het kantoor van de klant en de cloudomgeving, maar ook voor verbindingen buiten de VPN-tunnel. En als u vragen heeft of onze hulp nodig heeft bij het oplossen van cloudproblemen, neem 24x7 contact met ons op.

Bron: www.habr.com

Voeg een reactie