Какво се случва при свързванията вътре и извън VPN тунела

От писмата до техническата поддръжка на Tucha се раждат истински статии. Например, наскоро клиенти ни потърсиха с искане да обясним какво се случва при връзките в VPN тунел между офиса на потребителя и облачната среда, както и при връзките извън VPN тунела. Затова целият текст, представен по-долу, е истинско писмо, което изпратихме на един от клиентите в отговор на неговия въпрос. Разбира се, променихме IP адресите, за да не деанонимизираме клиента. Но да, техническата поддръжка на Tucha наистина е известна със своите задълбочени отговори и съдържателни писма. 🙂

Разбира се, разбираме, че за много хора тази статия няма да е като откритие. Но, тъй като на Habr от време на време се появяват статии за начинаещи администратори, и с оглед на факта, че тази статия произлиза от истинско писмо до реален клиент, ние все пак ще споделим тази информация и тук. Има голяма вероятност да е полезна за някого.
Затова подробно обясняваме какво се случва между сървъра в облака и офиса, ако те са свързани чрез site-to-site мрежа. Искаме да подчертаем, че в този случай част от услугите са достъпни само от офиса, а част — от всякъде в интернет.

Веднага ще обясним, че нашият клиент пожела на сървъра 192.168.A.1 да може да бъде достъпен отвсякъде по RDP, свързвайки се с A.A.A.2:13389, а останалите услуги — само от офиса (192.168.B.0/24), свързан чрез VPN. Клиентът също така е настроил, че до машината 192.168.B.2 в офиса може да се получава достъп по RDP отвсякъде, свързвайки се с B.B.B.1:11111. Помогнахме да организираме IPSec връзки между облака и офиса, и ИТ специалистът на клиента започна да задава въпроси относно какво ще се случи в различни ситуации. За да отговорим на всички тези въпроси, всъщност написахме това, което можете да прочетете по-долу.

Какво се случва при свързванията вътре и извън VPN тунела

А сега да разгледаме тези процеси по-подробно.

Позиция първа

Когато нещо се изпраща от 192.168.B.0/24 в или от , то попада в VPN. Тоест, този пакет се криптира допълнително и се предава между или от в 192.168.B.0/24B.B.B.1 A.A.A.1 и , новижда пакета именно от 192.168.A.1 192.168.B.1 . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът отще бъде изпратен като ESP датаграма от 192.168.A.1 за . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от ще бъде изпратен като ESP-датаграм от , но на A.A.A.1, която от другата страна на маршрутизатора ще се разположи, ще извади от нея пакета и ще го предаде на . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от както пакет от 192.168.A.1.

Конкретен пример:

1) . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от се обръща към 192.168.A.1, иска да установи TCP-соединение с 192.168.A.1:3389;

2) . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от изпраща заявка за установяване на свързване от 192.168.B.1:55555 (номерът на порта за обратна връзка избира сама, тук и по-нататък ще използваме номер 55555 като пример на такъв порт, който системата избира при формирането на TCP-соединение) на 192.168.A.1:3389;

3) операционната система, която работи на компютъра с адрес . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от, решава да предаде този пакет на гейтовия адрес на маршрутизатора (192.168.B.254 в нашия случай), защото няма други, по-специфични маршрути за 192.168.A.1, следователно, тя предава пакета по маршрута по подразбиране (0.0.0.0/0);

4) за това тя се опитва да намери MAC-адреса за IP-адреса 192.168.B.254 в кеш-таблицата на протокола ARP. Ако той не е открит, изпраща от адреса . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от широковещателна who-has заявка до мрежата 192.168.B.0/24. Когато 192.168.B.254 в отговор ѝ изпрати своя MAC-адрес, системата предава Ethernet-пакета за нея и вписва тази информация в своята кеш-таблица;

5) маршрутизаторът приема този пакет и решава накъде да го предаде: той има установена политика, според която трябва да предава всички пакети между 192.168.B.0/24 и или от по VPN-соединение между A.A.A.1 и , но;

6) маршрутизаторът формира ESP-датаграмма от A.A.A.1 на , но;

7) маршрутизаторът решава на кого да предаде този пакет, той го изпраща на, да кажем, B.B.B.254 (гейт на интернет доставчика), защото няма по-специфични маршрути към , но, от колкото 0.0.0.0/0, той няма;

8) точно както беше казано по-рано, той намира MAC-адреса за B.B.B.254 и предава пакета на гейта на интернет доставчика;

9) интернет доставчиците предават през собствените си мрежи ESP-датаграмма от A.A.A.1 на , но;

10) виртуалният маршрутизатор на , но приема тази датаграмма, я разшифрова и получава пакета от 192.168.B.1:55555 за 192.168.A.1:3389;

11) виртуалният маршрутизатор проверява на кого да го предаде, намира в таблицата за маршрути мрежата или от и го изпраща директно към 192.168.A.1, тъй като има интерфейс 192.168.A.254/24;

12) за това виртуалният маршрутизатор намира MAC-адреса за 192.168.A.1 и му предава този пакет през виртуалната Ethernet-мрежа;

13) 192.168.A.1 получава този пакет на порт 3389, приема да установи свързване и формира пакет в отговор от 192.168.A.1:3389 на 192.168.B.1:55555;

14) неговата система предава този пакет на гейтовия адрес на виртуалния маршрутизатор (192.168.A.254 в нашия случай), защото няма други, по-специфични маршрути за . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от, тя няма, следователно трябва да предаде пакета по маршрута по подразбиране (0.0.0.0/0);

15) както и в предишните случаи, системата, която работи на сървър с адрес 192.168.A.1, намира MAC-адреса 192.168.A.254, тъй като той е в същата мрежа с нейния интерфейс 192.168.A.1/24;

16) виртуалният маршрутизатор приема този пакет и решава къде да го предаде: той има политика, според която трябва да обработва всички пакети между или от и 192.168.B.0/24 по VPN-соединение между , но и A.A.A.1;

17) виртуалният маршрутизатор форматира ESP-датаграмата от , но за A.A.A.1;

18) виртуалният маршрутизатор решава на кого да предаде този пакет, изпраща го на A.A.A.254 (шлюзът на интернет доставчика, в този случай, това сме и ние), защото не съществуват по-специфични маршрути към A.A.A.1, от колкото 0.0.0.0/0, той няма;

19) интернет доставчиците предават ESP-датаграмата през своите мрежи с , но на A.A.A.1;

20) маршрутизаторът на A.A.A.1 приема тази датаграмма, я разшифрова и получава пакета от 192.168.A.1:3389 за 192.168.B.1:55555;

21) той разбира, че трябва да бъде предаден точно на . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от, тъй като той също е в същата мрежа, следователно, той има съответен запис в таблицата за маршрутизация, който го принуждава да изпраща пакети за цялата 192.168.B.0/24 напряко;

22) маршрутизаторът намира MAC-адреса за . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от и му предава този пакет;

23) операционната система на компютъра с адрес . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от приема пакета от 192.168.A.1:3389 за 192.168.B.1:55555 и инициира следващите стъпки за установяване на TCP-съединение.

В този пример е обяснено съвсем кратко и опростено (а тук можете да си спомните за много детайли), какво се случва на нива 2-4. Нивата 1, 5-7 не са разгледани.

Втора позиция

Ако от 192.168.B.0/24 се изпраща нещо точно на A.A.A.2, то отива не в VPN, а направо. Тоест, ако потребител с адрес . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от се обръща към A.A.A.2:13389, този пакет е натиснат с адрес A.A.A.1, преминава на A.A.A.2, а там маршрутизаторът го приема и предава на 192.168.A.1. 192.168.A.1 не знае нищо за . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от, той вижда пакета от A.A.A.1, тъй като той е натиснат. Следователно отговорът на този запит отива по общия маршрут, той по същия начин е натиснат с адрес A.A.A.2 и отива на A.A.A.1, а този маршрутизатор предава отговора на . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от, той вижда отговора от A.A.A.2, към който всъщност е бил адресиран.

Конкретен пример:

1) . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от се обръща към A.A.A.2, иска да установи TCP-соединение с A.A.A.2:13389;

2) . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от изпраща заявка за установяване на свързване от 192.168.B.1:55555 (този номер, както и в предишния пример, може да бъде различен) на A.A.A.2:13389;

3) операционната система, която работи на компютъра с адрес . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от, решава да предаде този пакет на гейтовия адрес на маршрутизатора (192.168.B.254 в нашия случай), защото няма други, по-специфични маршрути за A.A.A.2, той няма, следователно предава пакета по маршрута по подразбиране (0.0.0.0/0);

4) за това, както споменахме в предишния пример, той се опитва да намери MAC-адреса за IP адреса 192.168.B.254 в кеш-таблицата на протокола ARP. Ако той не е открит, изпраща от адреса . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от широковещателна who-has заявка до мрежата 192.168.B.0/24. Когато 192.168.B.254 в отговор ѝ изпрати своя MAC-адрес, системата предава Ethernet-пакета за нея и вписва тази информация в своята кеш-таблица;

5) маршрутизаторът приема този пакет и решава къде да го предаде: той има политика, според която трябва да натисне (замествайки обратния адрес) всички пакети от 192.168.B.0/24 към други узли в интернет;

6) тъй като тази политика предвижда, че обратният адрес трябва да съвпада с по-младия адрес на интерфейса, през който ще бъде предаден този пакет, маршрутизаторът първо решава на кого точно да предаде този пакет, а той, както в предишния пример, трябва да го изпрати на B.B.B.254 (гейт на интернет доставчика), защото няма по-специфични маршрути към A.A.A.2, от колкото 0.0.0.0/0, той няма;

7) следователно, маршрутизаторът подменя обратния адрес на пакета, оттук нататък пакетът от B.B.B.1:44444 (номерът на порта, разбира се, може да бъде друг) на A.A.A.2:13389;

8) маршрутизаторът запомня какво е направил, следователно, когато от A.A.A.2:13389 к B.B.B.1:44444 постъпи отговор, той ще знае, че трябва да промени адреса и порта на получателя на 192.168.B.1:55555.

9) сега маршрутизаторът трябва да го предаде на интернет доставчика чрез B.B.B.254, следователно, точно както вече споменахме, той намира MAC адреса за B.B.B.254 и предава пакета на гейта на интернет доставчика;

10) интернет доставчиците предават през своите мрежи пакета от A.A.A.1 на A.A.A.2;

11) виртуалният маршрутизатор на A.A.A.2 приема този пакет на порт 13389;

12) на виртуалния маршрутизатор има правило, което предвижда, че пакетите, които постъпват от всеки изпращач на този порт, трябва да бъдат предавани на 192.168.A.1:3389;

13) виртуалният маршрутизатор намира в таблицата за маршрутизиране мрежата или от и го изпраща директно 192.168.A.1, тъй като има интерфейс 192.168.A.254/24;

14) за това виртуалният маршрутизатор намира MAC адреса за 192.168.A.1 и му предава този пакет през виртуалната Ethernet-мрежа;

15) 192.168.A.1 получава този пакет на порт 3389, приема да установи свързване и формира пакет в отговор от 192.168.A.1:3389 на B.B.B.1:44444;

16) неговата система предава този пакет на шлюзовия адрес на виртуалния маршрутизатор (192.168.A.254 в нашия случай), защото няма други, по-специфични маршрути за A.A.A.1, тя няма, следователно трябва да предаде пакета по маршрута по подразбиране (0.0.0.0/0);

17) точно както и в предишните случаи, системата, която работи на сървъра с адреса 192.168.A.1, намира MAC-адреса 192.168.A.254, тъй като той е в същата мрежа с нейния интерфейс 192.168.A.1/24;

18) виртуалният маршрутизатор приема този пакет. Трябва да се отбележи, че той помни, че е получавал на A.A.A.2:13389 пакета от B.B.B.1:44444 и е променил адреса и порта на получателя на 192.168.A.1:3389, следователно, пакета от 192.168.A.1:3389 за B.B.B.1:44444 той променя адреса на изпращача на A.A.A.2:13389;

19) виртуалният маршрутизатор решава на кого да предаде този пакет, той го изпраща на A.A.A.254 (шлюзът на интернет доставчика, в този случай, това сме и ние), защото не съществуват по-специфични маршрути към A.A.A.1, от колкото 0.0.0.0/0, той няма;

20) интернет доставчиците предават през своите мрежи пакета с A.A.A.2 на A.A.A.1;

21) маршрутизаторът на A.A.A.1 приема този пакет и си спомня, че, когато е предавал пакета от 192.168.B.1:55555 за A.A.A.2:13389, е променял адреса и порта на изпращача на B.B.B.1:44444, следователно, това е отговор, който трябва да се предаде на 192.168.B.1:55555 (в действителност, там съществуват и още проверки, но това не е нашата тема);

22) той разбира, че трябва да бъде предаден директно на . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от, тъй като той е в една и съща мрежа с него, следователно, той има в таблицата за маршрутизиране съответната записка, която задължава да се изпращат пакети за целия 192.168.B.0/24 напряко;

23) маршрутизаторът намира MAC адреса за . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от и му предава този пакет;

24) операционната система на компютъра с адрес . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от приема пакета от A.A.A.2:13389 за 192.168.B.1:55555 и инициира следващите стъпки за установяване на TCP-съединение.

Следва да се отбележи, че в този случай компютърът с адрес . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от нищо не знае за сървъра с адрес 192.168.A.1, той комуникира само с A.A.A.2. По същия начин и сървърът с адрес 192.168.A.1 нищо не знае за компютъра с адрес . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от. Той смята, че се е свързало с него от адреса A.A.A.1, а повече той не знае, така да се каже.

Още следва да се отбележи, че в случай, че този компютър се обръща към A.A.A.2:1540, връзката няма да бъде установена, тъй като пробиването на връзки на порт 1540 не е конфигурирано на виртуалния маршрутизатор, дори ако на някакви сървъри във виртуалната мрежа или от (например, на сървъра с адрес 192.168.A.1) и има някакви услуги, които чакат за връзка на този порт. Ако на потребителя на компютъра с адрес . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от крайно необходимо да се свърже с тази услуга, той трябва да използва VPN, т.е. да се обръща директно на 192.168.A.1:1540.

Следва да се подчертае, че всички опити да се установи връзка с , но (освен IPSec връзката от страна на A.A.A.1 ) няма да бъдат успешни. Всички опити да се установят връзки с A.A.A.2, освен връзките с порт 13389, също ще бъдат неуспешни.
Също така отбелязваме, че в случай, че до A.A.A.2 се обърне някой друг (например, C.C.C.C), всичко, което е описано в точки 10-20, ще се отнася и за него. Какво се случва преди и след това зависи от това, какво точно се намира зад това C.C.C.C. Нямаме такава информация, затова съветваме да се обърнете за консултации към администраторите на възела с адрес C.C.C.C.

Позиция трета

И обратното, ако от 192.168.A.1 се изпраща нещо на някой порт, който е конфигуриран за пробиване вътре на B.B.B.1 (например, 11111), то също не попада в VPN, а просто минава от , но и попада в A.A.A.1, а той вече го предава някъде, да кажем, 192.168.B.2:3389. Той вижда този пакет не от 192.168.A.1, а от , но. И когато 192.168.B.2 отговаря, пакетът идва от A.A.A.1 на A.A.A.1, а по-късно попада при инициатора на връзката — 192.168.A.1.

Конкретен пример:

1) 192.168.A.1 се обръща към A.A.A.1, иска да установи TCP-соединение с B.B.B.1:11111;

2) 192.168.A.1 изпраща заявка за установяване на свързване от 192.168.A.1:55555 (този номер, както и в предишния пример, може да бъде различен) на B.B.B.1:11111;

3) операционната система, която работи на сървъра с адрес 192.168.A.1, решава да предаде този пакет на гейтовия адрес на маршрутизатора (192.168.A.254 в нашия случай), защото няма други, по-специфични маршрути за A.A.A.1, следователно, тя предава пакета по маршрута по подразбиране (0.0.0.0/0);

4) за това тя, както споменахме в предишните примери, се опитва да намери MAC адреса за IP адреса 192.168.A.254 в кеш-таблицата на протокола ARP. Ако той не е открит, изпраща от адреса 192.168.A.1 широковещателна who-has заявка до мрежата или от. Когато 192.168.A.254 в отговор изпраща своя MAC адрес, системата предава Ethernet пакет за него и записва тази информация в своя кеш-таблица;

5) виртуалният рутер приема този пакет и решава къде да го предаде: има установена политика, според която той трябва да замести (подменяйки обратния адрес) всички пакети от или от към други узли в интернет;

6) тъй като тази политика предполага, че обратният адрес трябва да съвпада с най-ниския адрес на интерфейса, през който ще бъде предаден този пакет, виртуалният рутер първо решава на кого точно да предаде този пакет, а той, както в предишния пример, трябва да го изпрати на A.A.A.254 (шлюзът на интернет доставчика, в този случай, това сме и ние), защото не съществуват по-специфични маршрути към A.A.A.1, от колкото 0.0.0.0/0, той няма;

7) следователно, виртуалният рутер подменя обратния адрес на пакета, оттук нататък това е пакет от A.A.A.1:44444 (номерът на порта, разбира се, може да бъде друг) на B.B.B.1:11111;

8) виртуалният рутер запомня, че е направил това, следователно, когато от B.B.B.1:11111 за A.A.A.1:44444 постъпи отговор, той ще знае, че трябва да промени адреса и порта на получателя на 192.168.A.1:55555.

9) сега виртуалният рутер трябва да го предаде в мрежата на интернет доставчика през A.A.A.254, следователно, точно както вече споменахме, той намира MAC адреса за A.A.A.254 и предава пакета на гейта на интернет доставчика;

10) интернет доставчиците предават през своите мрежи пакета от A.A.A.1 на B.B.B.1;

11) рутерът на A.A.A.1 приема този пакет на порт 11111;

12) на виртуалния рутер съществува правило, което предвижда, че пакетите, постъпили от някой подател на този порт, трябва да се предават на 192.168.B.2:3389;

13) рутерът намира в таблицата за маршрутизиране мрежата 192.168.B.0/24 и го изпраща директно към 192.168.B.2, тъй като има интерфейс 192.168.B.254/24;

14) за това виртуалният маршрутизатор намира MAC адреса за 192.168.B.2 и му предава този пакет през виртуалната Ethernet-мрежа;

15) 192.168.B.2 получава този пакет на порт 3389, приема да установи свързване и формира пакет в отговор от 192.168.B.2:3389 на A.A.A.1:44444;

16) неговата система предава този пакет на шлюзовия адрес на рутера (192.168.B.254 в нашия случай), защото няма други, по-специфични маршрути за , но, тя няма, следователно трябва да предаде пакета по маршрута по подразбиране (0.0.0.0/0);

17) точно както и в предишните случаи, системата, която работи на компютъра с адреса 192.168.B.2, намира MAC-адреса 192.168.B.254, тъй като той е в същата мрежа с нейния интерфейс 192.168.B.2/24;

18) рутерът приема този пакет. Следва да се отбележи, че той помни, че е получавал на B.B.B.1:11111 пакета от , но и е променил адреса и порта на получателя на 192.168.B.2:3389, следователно, пакета от 192.168.B.2:3389 за A.A.A.1:44444 той променя адреса на изпращача на B.B.B.1:11111;

19) рутерът решава на кого да предаде този пакет. Той го изпраща на, да речем, B.B.B.254 (шлюза на интернет доставчика, точният адрес на който не знаем), защото няма по-специфични маршрути към , но, от колкото 0.0.0.0/0, той няма;

20) интернет доставчиците предават през своите мрежи пакета с A.A.A.1 на , но;

21) виртуалният рутер на , но приема този пакет и си спомня, че, когато е предавал пакета от 192.168.A.1:55555 за B.B.B.1:11111, е променял адреса и порта на изпращача на A.A.A.1:44444. Следователно, това е отговорът, който трябва да се предаде на 192.168.A.1:55555 (всъщност, както споменахме в предишния пример, там също има още няколко проверки, но и този път не се задълбочаваме в тях);

22) той разбира, че следва да се предаде директно на 192.168.A.1, тъй като той е в една и съща мрежа с него, следователно, той има запис в таблицата за маршрутизиране, който го кара да изпраща пакети за цялата или от напряко;

23) маршрутизаторът намира MAC адреса за 192.168.A.1 и му предава този пакет;

24) операционната система на сървъра с адрес 192.168.A.1 приема пакета от B.B.B.1:11111 за 192.168.A.1:55555 и инициира следващите стъпки за установяване на TCP-съединение.

Точно както в предишния случай, в този случай сървърът с адреса 192.168.A.1 нищо не знае за компютъра с адрес . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от, той комуникира само с A.A.A.1. Компютърът с адреса . Те могат да комуникират помежду си по всякакви протоколи. Обратните отговори също така се предават през VPN, което означава, че пакетът от също не знае нищо за сървъра с адреса 192.168.A.1. Той смята, че се е свързало с него от адреса , но, а останалото от него е скрито.

Извод

Ето как всичко се случва при свързването в VPN тунела между офиса на клиента и облачната среда, както и при свързванията извън VPN тунела. А ако имате въпроси или се нуждаете от нашата помощ за решения в облака, не се колебайте да се свържете с нас 24/7.

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster