Përdorimi i NAT Traversal për lidhjen e përdoruesve në modalitetin pasiv

Kyë kjo artikull paraqet një përkthim të lirë të një prej postimeve në blogun e zhvilluesve të DC++.

Me lejen e autorit (ashtu si dhe për qartësi dhe interesi) e kam pasuruar atë me lidhje dhe e kam kompletuar me disa analiza personale.

Hyrje

Aktualisht, së paku një përdorues nga dy që po lidhen duhet të jetë në modin aktiv. Mekanizmi i "kalimit" të NAT-it do të jetë i dobishëm në rast se asnjëra nga palët nuk ka të konfiguruar modin aktiv. Kjo ndodh zakonisht për shkak të bllokimit të lidhjeve hyrëse nga firewall-i ose pajisja NAT.

Nëse të dy klientët janë në modin aktiv

Klienti iniciator dërgon komandën $ConnectToMe të përmbajë adresën e tij IP dhe portin, tek klienti tjetër. Duke përdorur këto të dhëna, klienti që merr komandën vendos lidhjen me iniciatorin.

Nëse një nga klientët është në modin pasiv

Përmes hub-it, klienti pasiv A dërgon komandën $RevConnectToMe tek klienti aktiv B, i cili më pas përgjigjet me komandën $ConnectToMe.

Përdorimi i NAT Traversal për lidhjen e përdoruesve në modalitetin pasiv
Si server S në rastin e mësipërm shërben DC hub

Nëse të dy klientët janë në modin pasiv në ADC hub

Klientët që ndodhen pas NAT të ndryshme A dhe B kanë u bashkuar me hub-in S.

Përdorimi i NAT Traversal për lidhjen e përdoruesve në modalitetin pasiv
Kështu duket lidhja me hub-in nga ana e klientit A

Hub-i pranon lidhjet në portin 1511. Klienti A bën lidhje dalëse nga rrjeti i tij privat përmes portit 50758. Hub-i, nga ana tjetër, sheh adresën e pajisjes NAT, punon me të dhe transmeton për klientët sipas identifikuesve të tyre.

Klienti A dërgon serverit S një mesazh me kërkesën për të ndihmuar në lidhjen me klientin B.

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

Duke qenë gjithashtu në modin pasiv, klienti B, që merr këtë komandë, duhet të raportojë portin e tij privat që përdoret për lidhjen me hub-in përmes NAT-it.

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

Pas marrjes së këtyre informacionit, klienti A menjëherë përpiqet të vendosë lidhjen me klientin B dhe raporton portin e tij të privat.

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

Cila është interesi? Interesi qëndron në zhvendosjen e pikës së fundit të lidhjes së njëjtë përmes krijimit të një lidhjeje të re në adresën publike përmes portit privat që është duke u përdorur tashmë.

Përdorimi i NAT Traversal për lidhjen e përdoruesve në modalitetin pasiv
Bingo!

Sigurisht, në këtë rast NAT i klientit B ka të drejtë të refuzojë kërkesën e parë për lidhje nga klienti A, por tashmë kërkesa e tij është e orientuar në "vrimën" e krijuar nga kjo lidhje, dhe lidhja është vendosur.

Përdorimi i NAT Traversal për lidhjen e përdoruesve në modalitetin pasiv
Ilustrimi i pĂ«rshtatshĂ«m pĂ«r tĂ« gjithĂ« procesin duke u MarrĂ« parasysh se protokolli nuk pĂ«rdor portet publike, tĂ« hapura me seancĂ«n NAT‒S, si dhe adresat private.

Epilogu

Në momentin e shkruan (artikullin origjinal), rreth gjysmës së klientëve të DC punojnë në modin pasiv. Kjo do të thotë se një e katërta e të gjitha lidhjeve të mundshme nuk mund të realizohet.

MĂ« tej DC++ do tĂ« jetĂ« nĂ« gjendje tĂ« "kalojĂ«" NAT-in, duke pĂ«rdorur lidhjet ekzistuese A‒S dhe B‒S pĂ«r tĂ« vendosur lidhjen direkte klient-klient, edhe nĂ«se A dhe B janĂ« nĂ« modin pasiv.

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster