NAT Traversal brûke om brûkers te ferbinen yn passive modus

Dit artikel is in fergese oersetting fan ien fan 'e yngongen yn DC ++ ûntwikkeldersblog.

Mei tastimming fan de skriuwer (lykas foar de dúdlikens en ynteresse) haw ik it ynkleure mei keppelings en oanfolle mei wat persoanlik ûndersyk.

Ynlieding

Op syn minst ien brûker fan it ferbinende pear moat op dit stuit yn aktive modus wêze. It NAT-traversalmeganisme sil nuttich wêze as de aktive modus oan beide kanten net is konfigureare. Dit komt normaal troch in firewall of NAT-apparaat dat ynkommende ferbiningen blokkearret.

As beide kliïnten binne yn aktive modus

De inisjearjende kliïnt stjoert in kommando mei syn eigen IP-adres en poarte $ ConnectToMe nei in oare klant. Mei help fan dizze gegevens stelt de kliïnt dy't it kommando krige in ferbining mei de inisjatyfnimmer.

As ien fan de kliïnten is yn passive modus

Troch de hub, in passive klant A stjoert in kommando $RevConnectToMe aktive klant Bdy't dan reagearret mei it kommando $ConnectToMe.

NAT Traversal brûke om brûkers te ferbinen yn passive modus
As tsjinner S yn it gefal hjirboppe is der in DC hub

As beide kliïnten binne yn passive modus op ADC hub

Klanten efter ferskate NATs A и B kaam by de hub S.

NAT Traversal brûke om brûkers te ferbinen yn passive modus
Dit is hoe't de ferbining mei de hub sjocht fan 'e kant fan' e kliïnt A

De hub akseptearret ferbinings op haven 1511. Client A makket útgeande ferbinings út syn privee netwurk fia haven 50758. De hub, op syn beurt, sjocht it adres fan de NAT apparaat, wurket mei it en stjoert it nei kliïnten neffens harren identifiers.

Klant A stjoert nei tsjinner S berjocht freget om help by it ferbinen mei in klant B.

Hub: [Outgoing][178.79.159.147:1511] DRCM AAAA BBBB ADCS/0.10 1649612991

Ek yn passive modus, de kliïnt B, hawwen ûntfongen dit kommando, moat rapportearje syn privee haven brûkt om te ferbinen mei de hub fia NAT.

Hub: [Incoming][178.79.159.147:1511] DNAT BBBB AAAA ADCS/0.10 59566 1649612991

Nei ûntfangst fan dizze ynformaasje de klant A besiket fuortendaliks in ferbining te meitsjen mei de klant B en rapportearret syn eigen privee haven.

Hub:		[Outgoing][178.79.159.147:1511]	 	D<b>RNT</b> AAAA BBBB ADCS/0.10 <b>50758</b> 1649612991

Wat is de belangstelling? It belang is om it einpunt fan deselde ferbining te ferskowen troch in nije ferbining te meitsjen nei in iepenbier adres fia in al brûkte priveehaven.

NAT Traversal brûke om brûkers te ferbinen yn passive modus
Bingo!

Fansels, yn dit gefal de klant NAT B hat alle rjocht om it earste ferbiningsfersyk fan in kliïnt te wegerjen A, mar syn eigen fersyk rint yn 'e "gat" makke troch dizze tige ferbining, en de ferbining is fêstlein.

NAT Traversal brûke om brûkers te ferbinen yn passive modus
Yllustraasje geskikt foar it hiele proses mei de caveat dat protokol brûkt gjin iepenbiere havens iepene troch de sesje NATS, lykas privee adressen.

Epilogue

Op it momint fan it skriuwen fan it (orizjinele) artikel wurket sawat de helte fan 'e DC-kliïnten yn passive modus. Dat betsjut dat in kwart fan alle mooglike ferbinings net makke wurde kin.

Fierder DC ++ sil wêze kinne omgean NATmei help fan besteande ferbinings AS и BS om in direkte klant-kliïnt ferbining te meitsjen, sels as A и B binne yn passive modus.

Boarne: www.habr.com