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

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

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

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

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

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

Позиция едно

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

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

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

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

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

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

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

6) рутерът генерира ESP дейтаграма от BBB1 на AAA1;

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

8) точно както вече беше казано, намира MAC адреса за BBB254 и предава пакета към шлюза на ISP;

9) Интернет доставчиците предават ESP дейтаграма от BBB1 на AAA1;

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

11) виртуалният рутер проверява на кого да го предаде, намира мрежата в таблицата за маршрутизиране 192.168.A.0/24 и го изпраща директно на 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 в нашия случай), защото други, по-специфични маршрути за 192.168.B.1, няма, следователно трябва да предаде пакета по маршрута по подразбиране (0.0.0.0/0);

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

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

17) виртуалният рутер генерира ESP дейтаграма от AAA1 за BBB1;

18) виртуалният рутер решава на кого да изпрати този пакет, изпраща го AAA254 (ISP gateway, в този случай това сме и ние), защото има по-специфични маршрути до BBB1, отколкото 0.0.0.0/0, няма;

19) Интернет доставчиците предават ESP дейтаграма през своите мрежи с AAA1 на BBB1;

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

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

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

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

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

Позиция две

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

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

1) 192.168.B.1 апелира към AAA2, иска да установи TCP връзка с AAA2:13389;

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

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

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

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

6) тъй като тази политика предполага, че адресът за връщане трябва да съвпада с ниския адрес на интерфейса, през който този пакет ще бъде предаден, рутерът първо решава на кого точно да изпрати този пакет и той, както в предишния пример, трябва да го изпрати да се BBB254 (ISP gateway), защото има по-специфични маршрути до AAA2, отколкото 0.0.0.0/0, няма;

7) следователно рутерът замества адреса за връщане на пакета, оттук нататък пакетът е от BBB1:44444 (номерът на порт, разбира се, може да е различен) до AAA2:13389;

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

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

10) Интернет доставчиците предават пакети от BBB1 на AAA2;

11) включен виртуален рутер AAA2 получава този пакет на порт 13389;

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

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

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

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

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

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

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

19) виртуалният рутер решава на кого да изпрати този пакет, той го изпраща AAA254 (ISP gateway, в този случай това сме и ние), защото има по-специфични маршрути до BBB1, отколкото 0.0.0.0/0, няма;

20) Интернет доставчиците предават пакет с AAA2 на BBB1;

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

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

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

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

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

Трябва също да се отбележи, че ако този компютър има достъп AAA2:1540, връзката няма да бъде установена, тъй като пренасочването на връзката към порт 1540 не е конфигурирано на виртуалния рутер, дори и на някой сървър във виртуалната мрежа 192.168.A.0/24 (например на сървър с адрес 192.168.A.1) и има някои услуги, които чакат връзки на този порт. Ако потребител на компютър с адрес 192.168.B.1 Задължително е да се установи връзка с тази услуга, тя трябва да използва VPN, т.е. свържете се директно 192.168.A.1:1540.

Трябва да се подчертае, че всеки опит за установяване на връзка с AAA1 (с изключение на IPSec връзката от BBB1 няма да има успех. Всякакви опити за установяване на връзки с AAA2, с изключение на връзките към порт 13389, също няма да бъдат успешни.
Също така отбелязваме, че ако AAA2 Ако някой друг кандидатства (например CCCC), всичко посочено в параграфи 10-20 ще се отнася и за него. Какво се случва преди и след това зависи от това какво точно стои зад този CCCC Ние не разполагаме с такава информация, затова ви съветваме да се консултирате с администраторите на възела с адреса на CCCC

Позиция три

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

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

1) 192.168.A.1 апелира към BBB1, иска да установи TCP връзка с BBB1:11111;

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

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

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

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

6) тъй като тази политика предполага, че адресът за връщане трябва да съвпада с ниския адрес на интерфейса, през който този пакет ще бъде предаден, виртуалният рутер първо решава на кого точно да изпрати този пакет и той, както в предишния пример, трябва да изпрати то на AAA254 (ISP gateway, в този случай това сме и ние), защото има по-специфични маршрути до BBB1, отколкото 0.0.0.0/0, няма;

7) това означава, че виртуалният рутер замества адреса за връщане на пакета, отсега нататък това е пакет от AAA1:44444 (номерът на порт, разбира се, може да е различен) до BBB1:11111;

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

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

10) Интернет доставчиците предават пакети от AAA1 към BBB1;

11) включен рутер BBB1 получава този пакет на порт 11111;

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

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

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

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

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

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

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

19) рутерът решава на кого да изпрати този пакет. Той го изпраща, да речем, BBB254 (ISP gateway, чийто точен адрес не знаем), тъй като няма по-конкретни маршрути до AAA1, отколкото 0.0.0.0/0, няма;

20) Интернет доставчиците предават пакет с BBB1 на AAA1;

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

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

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

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

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

Продукция

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

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

Добавяне на нов коментар