Co se děje na připojeních uvnitř a vně tunelu VPN

Skutečné články se rodí z dopisů technické podpoře Tucha. Nedávno se na nás například obrátil klient s žádostí o objasnění toho, co se děje během připojení uvnitř VPN tunelu mezi kanceláří uživatele a cloudovým prostředím a také při připojení mimo tunel VPN. Celý text níže je tedy skutečným dopisem, který jsme zaslali jednomu z našich klientů jako odpověď na jeho dotaz. IP adresy byly samozřejmě změněny, aby nedošlo k deanonymizaci klienta. Ale ano, technická podpora Tucha je opravdu známá svými podrobnými odpověďmi a informativními e-maily. 🙂

Samozřejmě chápeme, že pro mnohé nebude tento článek zjevením. Ale protože se na Habru čas od času objevují články pro začínající administrátory a také protože tento článek vyšel ze skutečného dopisu skutečnému klientovi, budeme zde tyto informace stále sdílet. Je velká pravděpodobnost, že se to někomu bude hodit.
Proto podrobně vysvětlujeme, co se stane mezi serverem v cloudu a kanceláří, pokud jsou propojeny sítí site-to-site. Všimněte si, že některé služby jsou dostupné pouze z kanceláře a některé jsou dostupné odkudkoli na internetu.

Pojďme si rovnou vysvětlit, co náš klient na serveru chtěl 192.168.A.1 můžete přicházet odkudkoli prostřednictvím RDP a připojit se k AAA2:13389a přístup k dalším službám pouze z kanceláře (192.168.B.0/24)připojeno přes VPN. Klient měl také původně nastaveno, že auto 192.168.B.2 v kanceláři bylo také možné odkudkoli používat RDP, připojení k BBB1:11111. Pomohli jsme organizovat IPSec spojení mezi cloudem a kanceláří a IT specialista zákazníka se začal ptát, co by se v tom či onom případě stalo. Abychom odpověděli na všechny tyto otázky, napsali jsme mu vlastně vše, co si můžete přečíst níže.

Co se děje na připojeních uvnitř a vně tunelu VPN

Nyní se podívejme na tyto procesy podrobněji.

Pozice jedna

Když je něco odesláno z 192.168.B.0/24 в 192.168.A.0/24 nebo z 192.168.A.0/24 в 192.168.B.0/24, dostane se do VPN. To znamená, že tento paket je navíc šifrován a přenášen mezi sebou BBB1 и AAA1avšak 192.168.A.1 vidí balíček přesně od 192.168.B.1. Mohou spolu komunikovat pomocí libovolného protokolu. Zpětné odpovědi jsou přenášeny stejným způsobem přes VPN, což znamená, že paket z 192.168.A.1 pro 192.168.B.1 bude odeslán jako datagram ESP z AAA1 na BBB1, který router na té straně rozloží, vyjme z něj ten paket a odešle ho 192.168.B.1 jako balíček od 192.168.A.1.

Konkrétní příklad:

1) 192.168.B.1 apeluje na 192.168.A.1, chce navázat TCP spojení s 192.168.A.1:3389;

2) 192.168.B.1 odešle požadavek na připojení z 192.168.B.1:55555 (číslo portu pro zpětnou vazbu si volí sám; dále budeme číslo 55555 používat jako příklad čísla portu, který systém vybírá při vytváření TCP spojení) na 192.168.A.1:3389;

3) operační systém, který běží na počítači s adresou 192.168.B.1, rozhodne se předat tento paket na adresu brány routeru (192.168.B.254 v našem případě), protože jiné, konkrétnější trasy pro 192.168.A.1, nemá, proto přenáší paket výchozí cestou (0.0.0.0/0);

4) za tímto účelem se snaží najít MAC adresu pro IP adresu 192.168.B.254 v tabulce mezipaměti protokolu ARP. Pokud není detekován, odešle z adresy 192.168.B.1 vysílat kdo má požadavek do sítě 192.168.B.0/24. Kdy 192.168.B.254 v odezvě mu pošle svou MAC adresu, systém pro něj odešle ethernetový paket a zapíše tuto informaci do své cache tabulky;

5) router tento paket přijme a rozhodne se, kam ho předá: má sepsanou politiku, podle které musí všechny pakety mezi 192.168.B.0/24 и 192.168.A.0/24 přenos přes připojení VPN mezi BBB1 и AAA1;

6) router generuje ESP datagram z BBB1 na AAA1;

7) router se rozhodne, komu tento paket pošle, pošle ho, řekněme, BBB254 (brána ISP), protože existují specifičtější cesty k AAA1, než 0.0.0.0/0, nemá;

8) přesně totéž, co již bylo řečeno, zjistí MAC adresu BBB254 a vysílá paket do ISP brány;

9) Poskytovatelé internetu přenášejí datagram ESP z BBB1 na AAA1;

10) virtuální router je zapnutý AAA1 přijme tento datagram, dešifruje jej a přijme paket od 192.168.B.1:55555 pro 192.168.A.1:3389;

11) virtuální router zkontroluje, komu to má předat, najde síť ve směrovací tabulce 192.168.A.0/24 a pošle to přímo na 192.168.A.1, protože má rozhraní 192.168.A.254/24;

12) za tímto účelem virtuální router najde MAC adresu 192.168.A.1 a předá mu tento paket prostřednictvím virtuální sítě Ethernet;

13) 192.168.A.1 přijme tento paket na portu 3389, souhlasí s navázáním spojení a jako odpověď vygeneruje paket 192.168.A.1:3389 na 192.168.B.1:55555;

14) jeho systém odešle tento paket na adresu brány virtuálního routeru (192.168.A.254 v našem případě), protože jiné, konkrétnější trasy pro 192.168.B.1, nemá, proto musí přenést paket výchozí cestou (0.0.0.0/0);

15) stejně jako v předchozích případech systém, který běží na serveru s adresou 192.168.A.1, najde MAC adresu 192.168.A.254, protože je ve stejné síti jako její rozhraní 192.168.A.1/24;

16) virtuální router tento paket přijme a rozhodne se, kam ho předá: má sepsanou politiku, podle které musí posílat všechny pakety mezi 192.168.A.0/24 и 192.168.B.0/24 přenos přes připojení VPN mezi AAA1 и BBB1;

17) virtuální router generuje datagram ESP AAA1 pro BBB1;

18) virtuální router rozhodne, komu tento paket pošle, pošle ho AAA254 (brána ISP, v tomto případě jsme to také my), protože existují specifičtější cesty BBB1, než 0.0.0.0/0, nemá;

19) Poskytovatelé internetu přenášejí datagram ESP přes své sítě s AAA1 na BBB1;

20) router je zapnutý BBB1 přijme tento datagram, dešifruje jej a přijme paket od 192.168.A.1:3389 pro 192.168.B.1:55555;

21) chápe, že by to mělo být převedeno konkrétně na 192.168.B.1, jelikož je s ním ve stejné síti, má tedy odpovídající záznam ve směrovací tabulce, který ho nutí posílat pakety za celý 192.168.B.0/24 přímo;

22) router najde MAC adresu pro 192.168.B.1 a předá mu tento balíček;

23) operační systém na počítači s adresou 192.168.B.1 obdrží balíček od 192.168.A.1:3389 pro 192.168.B.1:55555 a zahájí další kroky k navázání spojení TCP.

Tento příklad celkem výstižně a zjednodušeně (a zde si můžete vzpomenout na hromadu dalších detailů) popisuje, co se děje na úrovních 2-4. Úrovně 1, 5-7 se neberou v úvahu.

Pozice dvě

Pokud s 192.168.B.0/24 něco se posílá konkrétně AAA2, nejde to do VPN, ale přímo. Tedy pokud uživatel z adresy 192.168.B.1 apeluje na AAA2:13389, tento paket pochází z adresy BBB1, přechází dál AAA2a poté jej router přijme a odešle do 192.168.A.1. 192.168.A.1 o ničem neví 192.168.B.1, vidí balíček od BBB1, protože ho dostal. Odpověď na tento požadavek jde tedy po obecné trase, přichází z adresy stejným způsobem AAA2 a jde do BBB1a router odešle tuto odpověď na 192.168.B.1, vidí odpověď od AAA2, kterému se věnoval.

Konkrétní příklad:

1) 192.168.B.1 apeluje na AAA2, chce navázat TCP spojení s AAA2:13389;

2) 192.168.B.1 odešle požadavek na připojení z 192.168.B.1:55555 (toto číslo, stejně jako v předchozím příkladu, se může lišit) na AAA2:13389;

3) operační systém, který běží na počítači s adresou 192.168.B.1, rozhodne se předat tento paket na adresu brány routeru (192.168.B.254 v našem případě), protože jiné, konkrétnější trasy pro AAA2, žádnou nemá, což znamená, že přenáší paket výchozí cestou (0.0.0.0/0);

4) za tímto účelem, jak jsme zmínili v předchozím příkladu, se snaží najít MAC adresu pro IP adresu 192.168.B.254 v tabulce mezipaměti protokolu ARP. Pokud není detekován, odešle z adresy 192.168.B.1 vysílat kdo má požadavek do sítě 192.168.B.0/24. Kdy 192.168.B.254 v odezvě mu pošle svou MAC adresu, systém pro něj odešle ethernetový paket a zapíše tuto informaci do své cache tabulky;

5) router tento paket přijme a rozhodne se, kam ho předá: má sepsanou politiku, podle které musí přeposílat (nahrazením zpáteční adresy) všechny pakety od 192.168.B.0/24 do jiných internetových uzlů;

6) protože z této zásady vyplývá, že zpáteční adresa se musí shodovat s nízkou adresou na rozhraní, přes které bude tento paket přenášen, router nejprve rozhodne, komu přesně tento paket pošle, a ten jej, stejně jako v předchozím příkladu, musí odeslat. na BBB254 (brána ISP), protože existují specifičtější cesty k AAA2, než 0.0.0.0/0, nemá;

7) proto router nahradí zpáteční adresu paketu, od nynějška paket je BBB1:44444 (číslo portu se samozřejmě může lišit) na AAA2:13389;

8) router si pamatuje, co udělal, což znamená kdy AAA2:13389 к BBB1:44444 Přijde odpověď, bude vědět, že by měl změnit cílovou adresu a port na 192.168.B.1:55555.

9) nyní by to měl router předat do sítě ISP přes BBB254tedy, jak jsme již zmínili, najde MAC adresu pro BBB254 a vysílá paket do ISP brány;

10) Poskytovatelé internetu přenášejí pakety z BBB1 na AAA2;

11) virtuální router je zapnutý AAA2 přijme tento paket na portu 13389;

12) na virtuálním routeru existuje pravidlo, které stanoví, že pakety přijaté od jakéhokoli odesílatele na tomto portu by měly být přenášeny na 192.168.A.1:3389;

13) virtuální router najde síť ve směrovací tabulce 192.168.A.0/24 a pošle to přímo 192.168.A.1, protože má rozhraní 192.168.A.254/24;

14) za tímto účelem virtuální router najde MAC adresu 192.168.A.1 a předá mu tento paket prostřednictvím virtuální sítě Ethernet;

15) 192.168.A.1 přijme tento paket na portu 3389, souhlasí s navázáním spojení a jako odpověď vygeneruje paket 192.168.A.1:3389 na BBB1:44444;

16) jeho systém odešle tento paket na adresu brány virtuálního routeru (192.168.A.254 v našem případě), protože jiné, konkrétnější trasy pro BBB1, nemá, proto musí přenést paket výchozí cestou (0.0.0.0/0);

17) úplně stejný jako v předchozích případech, systém, který běží na serveru s adresou 192.168.A.1, najde MAC adresu 192.168.A.254, protože je ve stejné síti jako její rozhraní 192.168.A.1/24;

18) virtuální router tento paket přijme. Je třeba poznamenat, že si pamatuje, co dostal AAA2:13389 balíček od BBB1:44444 a změnil adresu a port svého příjemce na 192.168.A.1:3389, tedy balíček od 192.168.A.1:3389 pro BBB1:44444 změní adresu odesílatele na AAA2:13389;

19) virtuální router se rozhodne, komu tento paket pošle, pošle ho AAA254 (brána ISP, v tomto případě jsme to také my), protože existují specifičtější cesty BBB1, než 0.0.0.0/0, nemá;

20) Poskytovatelé internetu přenášejí paket s AAA2 na BBB1;

21) router je zapnutý BBB1 přijme tento paket a pamatuje si, že když paket odeslal 192.168.B.1:55555 pro AAA2:13389, změnil svou adresu a port odesílatele na BBB1:44444, pak je to odpověď, kterou je třeba odeslat 192.168.B.1:55555 (ve skutečnosti je tam několik dalších kontrol, ale tím se do hloubky nezabýváme);

22) chápe, že by měl být předán přímo 192.168.B.1, jelikož je s ním ve stejné síti, má tedy odpovídající záznam ve směrovací tabulce, který ho nutí posílat pakety za celý 192.168.B.0/24 přímo;

23) router najde MAC adresu pro 192.168.B.1 a předá mu tento balíček;

24) operační systém na počítači s adresou 192.168.B.1 obdrží balíček od AAA2:13389 pro 192.168.B.1:55555 a zahájí další kroky k navázání spojení TCP.

Je třeba poznamenat, že v tomto případě počítač s adresou 192.168.B.1 neví nic o serveru s adresou 192.168.A.1, komunikuje pouze s AAA2. Stejně tak server s adresou 192.168.A.1 neví nic o počítači s adresou 192.168.B.1. Domnívá se, že byl připojen z adresy BBB1a nic jiného, ​​abych tak řekl, nezná.

Je třeba také poznamenat, že pokud tento počítač přistupuje AAA2:1540, připojení nebude navázáno, protože přesměrování připojení na port 1540 není nakonfigurováno na virtuálním routeru, i když na žádném serveru ve virtuální síti 192.168.A.0/24 (například na serveru s adresou 192.168.A.1) a některé služby čekají na připojení na tomto portu. Pokud uživatel počítače s adresou 192.168.B.1 K této službě je bezpodmínečně nutné navázat spojení, musí využívat VPN, tzn. kontaktovat přímo 192.168.A.1:1540.

Je třeba zdůraznit, že jakýkoli pokus o navázání spojení s AAA1 (kromě připojení IPSec z BBB1 nebude úspěšný. Jakékoli pokusy o navázání spojení s AAA2, kromě připojení k portu 13389, také nebude úspěšné.
Upozorňujeme také, že pokud AAA2 Pokud požádá někdo jiný (například CCCC), bude se na něj vztahovat vše uvedené v odstavcích 10-20. Co se stane před a potom, závisí na tom, co přesně se za tímto CCCC skrývá. Takové informace nemáme, proto vám doporučujeme poradit se se správci uzlu s adresou CCCC

Pozice tři

A naopak, pokud s 192.168.A.1 něco je odesláno na nějaký port, který je nakonfigurován pro předávání směrem dovnitř do BBB1 (například 11111), také to neskončí ve VPN, ale jednoduše proudí z AAA1 a dostane se do BBB1a už to někde vysílá, řekněme, 192.168.B.2:3389. Vidí tento balíček ne od 192.168.A.1, a od AAA1. A kdy 192.168.B.2 odpovědi, balíček pochází BBB1 na AAA1, a později se dostane k iniciátoru připojení - 192.168.A.1.

Konkrétní příklad:

1) 192.168.A.1 apeluje na BBB1, chce navázat TCP spojení s BBB1:11111;

2) 192.168.A.1 odešle požadavek na připojení z 192.168.A.1:55555 (toto číslo, stejně jako v předchozím příkladu, se může lišit) na BBB1:11111;

3) operační systém, který běží na serveru s adresou 192.168.A.1, rozhodne se předat tento paket na adresu brány routeru (192.168.A.254 v našem případě), protože jiné, konkrétnější trasy pro BBB1, nemá, proto přenáší paket výchozí cestou (0.0.0.0/0);

4) za tímto účelem, jak jsme uvedli v předchozích příkladech, se snaží najít MAC adresu pro IP adresu 192.168.A.254 v tabulce mezipaměti protokolu ARP. Pokud není detekován, odešle z adresy 192.168.A.1 vysílat kdo má požadavek do sítě 192.168.A.0/24. Kdy 192.168.A.254 v odpovědi jí pošle svou MAC adresu, systém pro ni odešle ethernetový paket a zapíše tuto informaci do své tabulky cache;

5) virtuální router tento paket přijme a rozhodne se, kam ho předá: má sepsanou politiku, podle které musí přeposílat (nahrazením zpáteční adresy) všechny pakety od 192.168.A.0/24 do jiných internetových uzlů;

6) protože tato politika předpokládá, že zpáteční adresa se musí shodovat s nízkou adresou na rozhraní, přes které bude tento paket přenášen, virtuální router nejprve rozhodne, komu přesně tento paket pošle, a ten, jako v předchozím příkladu, musí odeslat to na AAA254 (brána ISP, v tomto případě jsme to také my), protože existují specifičtější cesty BBB1, než 0.0.0.0/0, nemá;

7) to znamená, že virtuální router nahradí návratovou adresu paketu, od této chvíle je to paket z AAA1:44444 (číslo portu se samozřejmě může lišit) na BBB1:11111;

8) virtuální router si pamatuje, co udělal, tedy kdy od BBB1:11111 pro AAA1:44444 Přijde odpověď, bude vědět, že by měl změnit cílovou adresu a port na 192.168.A.1:55555.

9) nyní by jej měl virtuální router předat do sítě ISP přes AAA254, takže jak jsme již zmínili, najde MAC adresu pro AAA254 a vysílá paket do ISP brány;

10) Poskytovatelé internetu přenášejí pakety z AAA1 až BBB1;

11) router je zapnutý BBB1 přijme tento paket na portu 11111;

12) na virtuálním routeru existuje pravidlo, které stanoví, že pakety, které dorazily od jakéhokoli odesílatele na tomto portu, by měly být přenášeny 192.168.B.2:3389;

13) router najde síť ve směrovací tabulce 192.168.B.0/24 a pošle to přímo na 192.168.B.2, protože má rozhraní 192.168.B.254/24;

14) za tímto účelem virtuální router najde MAC adresu 192.168.B.2 a předá mu tento paket prostřednictvím virtuální sítě Ethernet;

15) 192.168.B.2 přijme tento paket na portu 3389, souhlasí s navázáním spojení a jako odpověď vygeneruje paket 192.168.B.2:3389 na AAA1:44444;

16) jeho systém odešle tento paket na adresu brány routeru (192.168.B.254 v našem případě), protože jiné, konkrétnější trasy pro AAA1, nemá, proto musí přenést paket výchozí cestou (0.0.0.0/0);

17) stejným způsobem jako v předchozích případech systém, který běží na počítači s adresou 192.168.B.2, najde MAC adresu 192.168.B.254, protože je ve stejné síti jako její rozhraní 192.168.B.2/24;

18) router přijme tento paket. Je třeba poznamenat, že si pamatuje, co dostal BBB1:11111 balíček od AAA1 a změnil adresu a port svého příjemce na 192.168.B.2:3389, tedy balíček od 192.168.B.2:3389 pro AAA1:44444 změní adresu odesílatele na BBB1:11111;

19) router rozhodne, komu tento paket pošle. Pošle to, řekněme, BBB254 (ISP brána, jejíž přesnou adresu neznáme), protože neexistují žádné konkrétnější cesty AAA1, než 0.0.0.0/0, nemá;

20) Poskytovatelé internetu přenášejí paket s BBB1 na AAA1;

21) virtuální router je zapnutý AAA1 přijme tento paket a pamatuje si, že když paket odeslal 192.168.A.1:55555 pro BBB1:11111, změnil svou adresu a port odesílatele na AAA1:44444. To znamená, že toto je odpověď, na kterou je třeba poslat 192.168.A.1:55555 (ve skutečnosti, jak jsme zmínili v předchozím příkladu, existuje také několik dalších kontrol, ale tentokrát s nimi nezacházíme do hloubky);

22) chápe, že by měl být předán přímo 192.168.A.1, protože je s ním ve stejné síti, znamená to, že má odpovídající záznam ve směrovací tabulce, který ho nutí posílat pakety do celého 192.168.A.0/24 přímo;

23) router najde MAC adresu pro 192.168.A.1 a předá mu tento balíček;

24) operační systém na serveru s adresou 192.168.A.1 obdrží balíček od BBB1:11111 pro 192.168.A.1:55555 a zahájí další kroky k navázání spojení TCP.

Úplně stejné jako v předchozím případě, v tomto případě server s adresou 192.168.A.1 neví nic o počítači s adresou 192.168.B.1, komunikuje pouze s BBB1. Počítač s adresou 192.168.B.1 také neví nic o serveru s adresou 192.168.A.1. Domnívá se, že byl připojen z adresy AAA1a zbytek je před ním skrytý.

Výkon

Takto se děje vše pro připojení uvnitř tunelu VPN mezi kanceláří klienta a cloudovým prostředím a také pro připojení mimo tunel VPN. A pokud máte nějaké dotazy nebo potřebujete naši pomoc při řešení problémů s cloudem, kontaktujte nás 24x7.

Zdroj: www.habr.com

Přidat komentář