Tikri straipsniai gimsta iš laiškų Tucha techninei pagalbai. Pavyzdžiui, klientas neseniai kreipėsi į mus su prašymu paaiškinti, kas vyksta prisijungiant VPN tunelyje tarp vartotojo biuro ir debesies aplinkos, taip pat prisijungiant už VPN tunelio ribų. Todėl visas toliau pateiktas tekstas yra tikras laiškas, kurį išsiuntėme vienam iš savo klientų, atsakydami į jo klausimą. Žinoma, IP adresai buvo pakeisti, kad nebūtų panaikintas kliento anonimiškumas. Bet taip, Tucha techninė pagalba tikrai garsėja išsamiais atsakymais ir informatyviais el. 🙂
Žinoma, suprantame, kad daugeliui šis straipsnis nebus apreiškimas. Tačiau kadangi Habr kartkartėmis pasirodo straipsniai pradedantiesiems administratoriams, taip pat kadangi šis straipsnis pasirodė iš tikro laiško tikram klientui, mes vis tiek pasidalinsime šia informacija čia. Didelė tikimybė, kad tai kažkam bus naudinga.
Todėl mes išsamiai paaiškiname, kas atsitinka tarp serverio debesyje ir biuro, jei jie yra sujungti tinklu iš vienos vietos į kitą. Atminkite, kad kai kurios paslaugos pasiekiamos tik biure, o kai kurios – iš bet kurios interneto vietos.
Iš karto paaiškinkime, ko mūsų klientas norėjo serveryje 192.168.A.1 galite atvykti iš bet kur per KPP, prisijungdami prie AAA2: 13389, o prieiga prie kitų paslaugų tik iš biuro (192.168.B.0/24), prijungtas per VPTKlientas taip pat iš pradžių sukonfigūravo automobilį taip, kad 192.168.B.2 biure taip pat buvo galima naudotis KPP iš bet kur, prisijungiant prie BBB1: 11111. Padėjome organizuoti IPSec ryšius tarp debesies ir biuro, o kliento IT specialistas pradėjo klausinėti, kas nutiks tuo ar kitu atveju. Norėdami atsakyti į visus šiuos klausimus, mes iš tikrųjų jam parašėme viską, ką galite perskaityti žemiau.

Dabar pažvelkime į šiuos procesus išsamiau.
Padėkite vieną
Kai kas nors siunčiama iš 192.168.B.0/24 в 192.168.A.0/24 arba iš 192.168.A.0/24 в 192.168.B.0/24, jis patenka į VPN. Tai yra, šis paketas papildomai užšifruojamas ir perduodamas tarp BBB1 и AAA1Bet 192.168.A.1 pakuotę mato tiksliai iš 192.168.B.1. Jie gali bendrauti tarpusavyje naudodami bet kokį protokolą. Grąžinimo atsakymai perduodami tokiu pačiu būdu per VPN, o tai reiškia, kad paketas iš 192.168.A.1 už 192.168.B.1 bus siunčiama kaip ESP datagrama iš AAA1 apie BBB1, kurį maršrutizatorius išskleis toje pusėje, ištrauks iš jo tą paketą ir išsiųs į jį 192.168.B.1 kaip paketas iš 192.168.A.1.
Konkretus pavyzdys:
1) 192.168.B.1 kreipiasi į 192.168.A.1, nori užmegzti TCP ryšį su 192.168.A.1:3389;
2) 192.168.B.1 siunčia prisijungimo užklausą iš 192.168.B.1:55555 (jis pats pasirenka prievado numerį atsiliepimui; toliau kaip prievado numerio, kurį sistema pasirenka formuojant TCP ryšį, pavyzdį naudosime numerį 55555) 192.168.A.1:3389;
3) operacinė sistema, kuri veikia kompiuteryje su adresu 192.168.B.1, nusprendžia persiųsti šį paketą į maršrutizatoriaus šliuzo adresą (192.168.B.254 mūsų atveju), nes kiti, konkretesni maršrutai skirti 192.168.A.1, neturi, todėl paketą perduoda numatytuoju maršrutu (0.0.0.0/0);
4) tam ji bando rasti IP adreso MAC adresą 192.168.B.254 ARP protokolo talpyklos lentelėje. Jei neaptinkama, siunčiama iš adreso 192.168.B.1 transliuoti kas turi užklausą tinklui 192.168.B.0/24. Kai 192.168.B.254 atsakydama, ji siunčia jai savo MAC adresą, sistema perduoda jam Ethernet paketą ir įveda šią informaciją į savo talpyklos lentelę;
5) maršrutizatorius gauna šį paketą ir nusprendžia, kur jį persiųsti: turi rašytinę politiką, pagal kurią jis turi siųsti visus paketus tarp 192.168.B.0/24 и 192.168.A.0/24 perduoti per VPN ryšį tarp BBB1 и AAA1;
6) maršrutizatorius generuoja ESP datagramą iš BBB1 apie AAA1;
7) maršrutizatorius nusprendžia, kam siųsti šį paketą, jis siunčia jį, tarkime, BBB254 (IPT vartai), nes yra konkretesnių maršrutų AAA1, nei 0.0.0.0/0, jis neturi;
8) lygiai taip pat, kaip jau minėta, jis suranda MAC adresą BBB254 ir perduoda paketą į IPT šliuzą;
9) Interneto tiekėjai siunčia ESP datagramą iš BBB1 apie AAA1;
10) virtualus maršrutizatorius įjungtas AAA1 gauna šią datagramą, ją iššifruoja ir gauna paketą iš 192.168.B.1:55555 už 192.168.A.1:3389;
11) virtualus maršrutizatorius patikrina, kam jį perduoti, maršruto parinkimo lentelėje suranda tinklą 192.168.A.0/24 ir siunčia tiesiai į 192.168.A.1, nes turi sąsają 192.168.A.254/24;
12) tam virtualus maršrutizatorius suranda MAC adresą 192.168.A.1 ir perduoda jam šį paketą per virtualų Ethernet tinklą;
13) 192.168.A.1 gauna šį paketą per 3389 prievadą, sutinka užmegzti ryšį ir sugeneruoja paketą atsakydamas iš 192.168.A.1:3389 apie 192.168.B.1:55555;
14) jo sistema perduoda šį paketą į virtualaus maršrutizatoriaus šliuzo adresą (192.168.A.254 mūsų atveju), nes kiti, konkretesni maršrutai skirti 192.168.B.1, jis neturi, todėl turi perduoti paketą numatytuoju maršrutu (0.0.0.0/0);
15) tokia pati kaip ir ankstesniais atvejais, sistema, kuri veikia serveryje su adresu 192.168.A.1, suranda MAC adresą 192.168.A.254, nes jis yra tame pačiame tinkle su savo sąsaja 192.168.A.1/24;
16) virtualus maršrutizatorius gauna šį paketą ir nusprendžia, kur jį persiųsti: turi rašytinę politiką, pagal kurią jis turi siųsti visus paketus tarp 192.168.A.0/24 и 192.168.B.0/24 perduoti per VPN ryšį tarp AAA1 и BBB1;
17) virtualus maršrutizatorius generuoja ESP datagramą iš AAA1 už BBB1;
18) virtualus maršrutizatorius nusprendžia, kam siųsti šį paketą, siunčia jį AAA254 (IPT vartai, šiuo atveju, tai irgi mes), nes yra konkretesnių maršrutų BBB1, nei 0.0.0.0/0, jis neturi;
19) Interneto tiekėjai perduoda ESP datagramą savo tinklais su AAA1 apie BBB1;
20) maršrutizatorius įjungtas BBB1 gauna šią datagramą, ją iššifruoja ir gauna paketą iš 192.168.A.1:3389 už 192.168.B.1:55555;
21) jis supranta, kad jis turėtų būti perduotas konkrečiai 192.168.B.1, kadangi jis yra su juo tame pačiame tinkle, todėl jis turi atitinkamą įrašą maršruto parinkimo lentelėje, kuris verčia jį siųsti paketus visam 192.168.B.0/24 tiesiogiai;
22) maršrutizatorius suranda MAC adresą 192.168.B.1 ir paduoda jam šį paketą;
23) operacinė sistema kompiuteryje su adresu 192.168.B.1 gauna paketą iš 192.168.A.1:3389 už 192.168.B.1:55555 ir pradeda kitus veiksmus, kad užmegztų TCP ryšį.
Šis pavyzdys gana glaustai ir supaprastintai (ir čia galite prisiminti daugybę kitų detalių) aprašo, kas vyksta 2–4 lygiuose. 1, 5–7 lygiai neatsižvelgiami.
Antra pozicija
Jei su 192.168.B.0/24 kažkas specialiai siunčiama AAA2, jis patenka ne į VPN, o tiesiogiai. Tai yra, jei vartotojas iš adreso 192.168.B.1 kreipiasi į AAA2: 13389, šis paketas ateina iš adreso BBB1, pereina AAA2, tada maršrutizatorius jį priima ir perduoda į 192.168.A.1. 192.168.A.1 nieko nežino apie 192.168.B.1, jis mato paketą iš BBB1, nes jis jį gavo. Todėl atsakymas į šią užklausą eina bendru maršrutu, iš adreso ateina taip pat AAA2 ir eina į BBB1, o maršrutizatorius siunčia šį atsakymą 192.168.B.1, jis mato atsakymą iš AAA2, į kurį jis kreipėsi.
Konkretus pavyzdys:
1) 192.168.B.1 kreipiasi į AAA2, nori užmegzti TCP ryšį su AAA2: 13389;
2) 192.168.B.1 siunčia prisijungimo užklausą iš 192.168.B.1:55555 (šis skaičius, kaip ir ankstesniame pavyzdyje, gali skirtis) įjungta AAA2: 13389;
3) operacinė sistema, kuri veikia kompiuteryje su adresu 192.168.B.1, nusprendžia persiųsti šį paketą į maršrutizatoriaus šliuzo adresą (192.168.B.254 mūsų atveju), nes kiti, konkretesni maršrutai skirti AAA2, jo nėra, o tai reiškia, kad jis perduoda paketą numatytuoju maršrutu (0.0.0.0/0);
4) už tai, kaip minėjome ankstesniame pavyzdyje, jis bando rasti IP adreso MAC adresą 192.168.B.254 ARP protokolo talpyklos lentelėje. Jei neaptinkama, siunčiama iš adreso 192.168.B.1 transliuoti kas turi užklausą tinklui 192.168.B.0/24. Kai 192.168.B.254 atsakydama, ji siunčia jai savo MAC adresą, sistema perduoda jam Ethernet paketą ir įveda šią informaciją į savo talpyklos lentelę;
5) maršrutizatorius gauna šį paketą ir nusprendžia, kur jį persiųsti: turi rašytinę politiką, pagal kurią privalo persiųsti (pakeisdamas grąžinimo adresą) visus paketus iš 192.168.B.0/24 į kitus interneto mazgus;
6) kadangi ši politika reiškia, kad grąžinimo adresas turi sutapti su žemu adresu sąsajoje, per kurią šis paketas bus perduotas, maršrutizatorius pirmiausia nusprendžia, kam tiksliai siųsti šį paketą, ir jis, kaip ir ankstesniame pavyzdyje, turi jį išsiųsti. į BBB254 (IPT vartai), nes yra konkretesnių maršrutų AAA2, nei 0.0.0.0/0, jis neturi;
7) todėl maršrutizatorius pakeičia paketo grąžinimo adresą, nuo šiol paketas yra iš BBB1: 44444 (žinoma, prievado numeris gali skirtis) į AAA2: 13389;
8) maršrutizatorius prisimena, ką jis padarė, o tai reiškia, kada AAA2: 13389 к BBB1: 44444 Gautas atsakymas, jis žinos, kad turėtų pakeisti paskirties adresą ir prievadą į 192.168.B.1:55555.
9) dabar maršrutizatorius turėtų perduoti jį IPT tinklui per BBB254taigi, kaip jau minėjome, jis suranda MAC adresą BBB254 ir perduoda paketą į IPT šliuzą;
10) Interneto tiekėjai perduoda paketus iš BBB1 apie AAA2;
11) virtualus maršrutizatorius įjungtas AAA2 gauna šį paketą per prievadą 13389;
12) virtualiame maršrutizatoriuje yra taisyklė, numatanti, kad paketai, gauti iš bet kurio siuntėjo šiuo prievadu, turi būti perduodami 192.168.A.1:3389;
13) virtualus maršrutizatorius suranda tinklą maršruto parinkimo lentelėje 192.168.A.0/24 ir siunčia tiesiogiai 192.168.A.1, nes turi sąsają 192.168.A.254/24;
14) tam virtualus maršrutizatorius suranda MAC adresą 192.168.A.1 ir perduoda jam šį paketą per virtualų Ethernet tinklą;
15) 192.168.A.1 gauna šį paketą per 3389 prievadą, sutinka užmegzti ryšį ir sugeneruoja paketą atsakydamas iš 192.168.A.1:3389 apie BBB1: 44444;
16) jo sistema perduoda šį paketą į virtualaus maršrutizatoriaus šliuzo adresą (192.168.A.254 mūsų atveju), nes kiti, konkretesni maršrutai skirti BBB1, jis neturi, todėl turi perduoti paketą numatytuoju maršrutu (0.0.0.0/0);
17) lygiai tokia pati, kaip ir ankstesniais atvejais, sistema, kuri veikia serveryje su adresu 192.168.A.1, suranda MAC adresą 192.168.A.254, nes jis yra tame pačiame tinkle su savo sąsaja 192.168.A.1/24;
18) virtualus maršrutizatorius gauna šį paketą. Reikia pažymėti, kad jis prisimena, ką gavo AAA2: 13389 paketas iš BBB1: 44444 ir pakeitė jo gavėjo adresą bei prievadą į 192.168.A.1:3389, todėl pakuotė iš 192.168.A.1:3389 už BBB1: 44444 ji pakeičia siuntėjo adresą į AAA2: 13389;
19) virtualus maršrutizatorius nusprendžia, kam siųsti šį paketą, jis jį siunčia AAA254 (IPT vartai, šiuo atveju, tai irgi mes), nes yra konkretesnių maršrutų BBB1, nei 0.0.0.0/0, jis neturi;
20) Interneto tiekėjai perduoda paketą su AAA2 apie BBB1;
21) maršrutizatorius įjungtas BBB1 gauna šį paketą ir prisimena tai, kai išsiuntė paketą iš 192.168.B.1:55555 už AAA2: 13389, jis pakeitė savo adresą ir siuntėjo prievadą į BBB1: 44444, tada tai yra atsakymas, kurį reikia išsiųsti 192.168.B.1:55555 (tiesą sakant, ten yra dar keli patikrinimai, bet į tai nesigilinsime);
22) jis supranta, kad jis turėtų būti perduotas tiesiogiai 192.168.B.1, kadangi jis yra su juo tame pačiame tinkle, todėl jis turi atitinkamą įrašą maršruto parinkimo lentelėje, kuris verčia jį siųsti paketus visam 192.168.B.0/24 tiesiogiai;
23) maršrutizatorius suranda MAC adresą 192.168.B.1 ir paduoda jam šį paketą;
24) operacinė sistema kompiuteryje su adresu 192.168.B.1 gauna paketą iš AAA2: 13389 už 192.168.B.1:55555 ir pradeda kitus veiksmus, kad užmegztų TCP ryšį.
Pažymėtina, kad šiuo atveju kompiuteris su adresu 192.168.B.1 nieko nežino apie serverį su adresu 192.168.A.1, jis bendrauja tik su AAA2. Taip pat serveris su adresu 192.168.A.1 nieko nežino apie kompiuterį su adresu 192.168.B.1. Jis mano, kad buvo prijungtas iš adreso BBB1, o jis, taip sakant, nieko daugiau nežino.
Taip pat reikėtų pažymėti, kad jei šis kompiuteris prisijungs AAA2: 1540, ryšys nebus užmegztas, nes ryšio persiuntimas į 1540 prievadą nesukonfigūruotas virtualiame maršrutizatoriuje, net jei jokiuose virtualaus tinklo serveriuose 192.168.A.0/24 (pavyzdžiui, serveryje su adresu 192.168.A.1) ir yra keletas paslaugų, kurios laukia prisijungimo prie šio prievado. Jei kompiuterio vartotojas, turintis adresą 192.168.B.1 Būtina užmegzti ryšį su šia paslauga, ji turi naudoti VPN, t.y. susisiekti tiesiogiai 192.168.A.1:1540.
Reikia pabrėžti, kad bet koks bandymas užmegzti ryšį su AAA1 (išskyrus IPSec ryšį iš BBB1 nepasiseks. Bet kokie bandymai užmegzti ryšius su AAA2, išskyrus prisijungimus prie 13389 prievado, taip pat nebus sėkmingas.
Taip pat atkreipiame dėmesį, kad jei AAA2 Jeigu kreipiasi kas nors kitas (pavyzdžiui, CCCC), jam taip pat galioja viskas, kas nurodyta 10-20 punktuose. Kas vyksta prieš ir po to priklauso nuo to, kas tiksliai slypi už šio CCCC Tokios informacijos neturime, todėl patariame pasikonsultuoti su CCCC adresu turinčio mazgo administratoriais
Trečioji pozicija
Ir atvirkščiai, jei su 192.168.A.1 kažkas siunčiama į kokį nors prievadą, kuris sukonfigūruotas persiųsti į vidų į BBB1 (pavyzdžiui, 11111), jis taip pat nepatenka į VPN, o tiesiog patenka iš AAA1 ir patenka į BBB1, ir jis jau perduoda tai kažkur, tarkime, 192.168.B.2:3389. Jis mato šį paketą ne iš 192.168.A.1, bet AAA1. Ir kada 192.168.B.2 atsako, siuntinys ateina iš BBB1 apie AAA1, ir vėliau patenka į ryšio iniciatorių - 192.168.A.1.
Konkretus pavyzdys:
1) 192.168.A.1 kreipiasi į BBB1, nori užmegzti TCP ryšį su BBB1: 11111;
2) 192.168.A.1 siunčia prisijungimo užklausą iš 192.168.A.1:55555 (šis skaičius, kaip ir ankstesniame pavyzdyje, gali skirtis) įjungta BBB1: 11111;
3) operacinė sistema, kuri veikia serveryje su adresu 192.168.A.1, nusprendžia persiųsti šį paketą į maršrutizatoriaus šliuzo adresą (192.168.A.254 mūsų atveju), nes kiti, konkretesni maršrutai skirti BBB1, neturi, todėl paketą perduoda numatytuoju maršrutu (0.0.0.0/0);
4) tam, kaip minėjome ankstesniuose pavyzdžiuose, ji bando rasti IP adreso MAC adresą 192.168.A.254 ARP protokolo talpyklos lentelėje. Jei neaptinkama, siunčiama iš adreso 192.168.A.1 transliuoti kas turi užklausą tinklui 192.168.A.0/24. Kai 192.168.A.254 atsakydamas jis siunčia jai savo MAC adresą, sistema perduoda jam Ethernet paketą ir įveda šią informaciją į savo talpyklos lentelę;
5) virtualus maršrutizatorius gauna šį paketą ir nusprendžia, kur jį persiųsti: turi rašytinę politiką, pagal kurią privalo persiųsti (pakeisdamas grąžinimo adresą) visus paketus iš 192.168.A.0/24 į kitus interneto mazgus;
6) kadangi ši politika daro prielaidą, kad grąžinimo adresas turi sutapti su žemu adresu sąsajoje, per kurią šis paketas bus perduotas, virtualus maršrutizatorius pirmiausia nusprendžia, kam tiksliai siųsti šį paketą, ir jis, kaip ir ankstesniame pavyzdyje, turi išsiųsti tai ant AAA254 (IPT vartai, šiuo atveju, tai irgi mes), nes yra konkretesnių maršrutų BBB1, nei 0.0.0.0/0, jis neturi;
7) tai reiškia, kad virtualus maršrutizatorius pakeičia paketo grąžinimo adresą, nuo šiol tai yra paketas iš AAA1: 44444 (žinoma, prievado numeris gali skirtis) į BBB1: 11111;
8) virtualus maršrutizatorius prisimena, ką jis padarė, taigi, kada nuo BBB1: 11111 už AAA1: 44444 Gautas atsakymas, jis žinos, kad turėtų pakeisti paskirties adresą ir prievadą į 192.168.A.1:55555.
9) dabar virtualus maršrutizatorius turėtų perduoti jį IPT tinklui per AAA254, taigi, kaip jau minėjome, jis suranda MAC adresą AAA254 ir perduoda paketą į IPT šliuzą;
10) Interneto tiekėjai perduoda paketus iš AAA1 į BBB1;
11) maršrutizatorius įjungtas BBB1 gauna šį paketą per prievadą 11111;
12) virtualiame maršrutizatoriuje yra taisyklė, numatanti, kad paketai, atkeliavę iš bet kurio siuntėjo šiuo prievadu, turi būti perduodami į 192.168.B.2:3389;
13) maršrutizatorius suranda tinklą maršruto parinkimo lentelėje 192.168.B.0/24 ir siunčia tiesiai į 192.168.B.2, nes turi sąsają 192.168.B.254/24;
14) tam virtualus maršrutizatorius suranda MAC adresą 192.168.B.2 ir perduoda jam šį paketą per virtualų Ethernet tinklą;
15) 192.168.B.2 gauna šį paketą per 3389 prievadą, sutinka užmegzti ryšį ir sugeneruoja paketą atsakydamas iš 192.168.B.2:3389 apie AAA1: 44444;
16) jo sistema perduoda šį paketą į maršrutizatoriaus šliuzo adresą (192.168.B.254 mūsų atveju), nes kiti, konkretesni maršrutai skirti AAA1, jis neturi, todėl turi perduoti paketą numatytuoju maršrutu (0.0.0.0/0);
17) taip pat, kaip ir ankstesniais atvejais, sistema, kuri veikia kompiuteryje su adresu 192.168.B.2, suranda MAC adresą 192.168.B.254, nes jis yra tame pačiame tinkle su savo sąsaja 192.168.B.2/24;
18) maršrutizatorius gauna šį paketą. Reikia pažymėti, kad jis prisimena, ką gavo BBB1: 11111 paketas iš AAA1 ir pakeitė jo gavėjo adresą bei prievadą į 192.168.B.2:3389, todėl pakuotė iš 192.168.B.2:3389 už AAA1: 44444 ji pakeičia siuntėjo adresą į BBB1: 11111;
19) maršrutizatorius nusprendžia, kam siųsti šį paketą. Jis siunčia, tarkim, BBB254 (IPT šliuzas, kurio tikslaus adreso nežinome), nes nėra konkretesnių maršrutų į AAA1, nei 0.0.0.0/0, jis neturi;
20) Interneto tiekėjai perduoda paketą su BBB1 apie AAA1;
21) virtualus maršrutizatorius įjungtas AAA1 gauna šį paketą ir prisimena tai, kai išsiuntė paketą iš 192.168.A.1:55555 už BBB1: 11111, jis pakeitė savo adresą ir siuntėjo prievadą į AAA1: 44444. Tai reiškia, kad tai yra atsakymas, kurį reikia siųsti 192.168.A.1:55555 (tiesą sakant, kaip minėjome ankstesniame pavyzdyje, yra ir dar keli patikrinimai, tačiau šį kartą į juos nesigiliname);
22) jis supranta, kad jis turėtų būti perduotas tiesiogiai 192.168.A.1, kadangi jis yra tame pačiame tinkle su juo, tai reiškia, kad jis turi atitinkamą įrašą maršruto parinkimo lentelėje, kuris verčia jį siųsti paketus visam 192.168.A.0/24 tiesiogiai;
23) maršrutizatorius suranda MAC adresą 192.168.A.1 ir paduoda jam šį paketą;
24) operacinė sistema serveryje su adresu 192.168.A.1 gauna paketą iš BBB1: 11111 už 192.168.A.1:55555 ir pradeda kitus veiksmus, kad užmegztų TCP ryšį.
Lygiai taip pat, kaip ir ankstesniu atveju, šiuo atveju serveris su adresu 192.168.A.1 nieko nežino apie kompiuterį su adresu 192.168.B.1, jis bendrauja tik su BBB1. Kompiuteris su adresu 192.168.B.1 taip pat nieko nežino apie serverį su adresu 192.168.A.1. Jis mano, kad buvo prijungtas iš adreso AAA1o visa kita nuo jo paslėpta.
Produkcija
Taip viskas vyksta ryšiams VPN tunelyje tarp kliento biuro ir debesies aplinkos, taip pat ryšiams už VPN tunelio ribų. Ir jei turite klausimų arba reikia mūsų pagalbos sprendžiant debesų problemas,
Šaltinis: www.habr.com
