Šis straipsnis yra nemokamas vieno iš įrašų vertimas
Autoriui leidus (taip pat dėl aiškumo ir įdomumo) nuspalvinau nuorodomis ir papildžiau asmeniniais tyrimais.
įvedimas
Bent vienas jungiamosios poros vartotojas šiuo metu turi būti aktyviuoju režimu. NAT perėjimo mechanizmas bus naudingas, kai aktyvus režimas nėra sukonfigūruotas nė vienoje pusėje. Paprastai taip yra dėl ugniasienės arba NAT įrenginio, blokuojančios gaunamus ryšius.
Jei abu klientai yra aktyviame režime
Inicijuojantis klientas siunčia komandą su savo IP adresu ir prievadu
Jei vienas iš klientų yra pasyviajame režime
Per centrą – pasyvus klientas A siunčia komandą
Kaip serveris S aukščiau nurodytu atveju yra nuolatinės srovės šakotuvas
Jei abu klientai yra įjungti pasyviuoju režimu
Klientai už skirtingų NAT A и B prisijungė prie mazgo S.
Taip iš kliento pusės atrodo ryšys su šakotuvu A
Centras priima ryšius per prievadą 1511. Klientas A atlieka išeinančius ryšius iš savo privataus tinklo per prievadą 50758. Hubas savo ruožtu mato NAT įrenginio adresą, dirba su juo ir transliuoja jį klientams pagal jų identifikatorius.
Klientas A siunčia į serverį S pranešimas, kuriame prašoma padėti susisiekti su klientu B.
Hub: [Outgoing][178.79.159.147:1511] DRCM AAAA BBBB ADCS/0.10 1649612991
Taip pat pasyviuoju režimu klientas B, gavęs šią komandą, turi pranešti apie savo privatų prievadą, naudojamą prisijungti prie šakotuvo per NAT.
Hub: [Incoming][178.79.159.147:1511] DNAT BBBB AAAA ADCS/0.10 59566 1649612991
Gavęs šią informaciją klientas A iš karto bando užmegzti ryšį su klientu B ir praneša apie savo privatų uostą.
Hub: [Outgoing][178.79.159.147:1511] D<b>RNT</b> AAAA BBBB ADCS/0.10 <b>50758</b> 1649612991
Kokios palūkanos? Susidomėjimas yra to paties ryšio galinio taško perkėlimas sukuriant naują ryšį į viešąjį adresą per jau naudojamą privatų prievadą.
Bingo!
Žinoma, šiuo atveju klientas NAT B turi visas teises atmesti pirmą kliento užklausą prisijungti A, tačiau jo paties prašymas įsiveržia į būtent šio ryšio sukurtą „skylę“ ir ryšys užsimezga.
Iliustracija tinka visam procesui su įspėjimu
Epilogas
Rašant (pradinį) straipsnį, maždaug pusė nuolatinės srovės klientų dirba pasyviuoju režimu. Tai reiškia, kad ketvirtadalis visų galimų jungčių negali būti užmegztas.
Toliau
Šaltinis: www.habr.com