Uporaba NAT Traversal za povezovanje uporabnikov v pasivnem načinu

Ta članek je brezplačen prevod enega od vnosov v Blog razvijalca DC++.

Z dovoljenjem avtorja (pa tudi zaradi preglednosti in zanimivosti) sem jo obarval s povezavami in dopolnil z nekaj osebnimi raziskavami.

Predstavitev

Vsaj en uporabnik povezovalnega para mora biti trenutno v aktivnem načinu. Mehanizem prehoda NAT bo uporaben, ko aktivni način ni konfiguriran na nobeni strani. To je običajno posledica požarnega zidu ali naprave NAT, ki blokira dohodne povezave.

Če sta oba odjemalca v aktivnem načinu

Začetni odjemalec pošlje ukaz, ki vsebuje njegov naslov IP in vrata $ConnectToMe drugi stranki. S pomočjo teh podatkov odjemalec, ki je prejel ukaz, vzpostavi povezavo z iniciatorjem.

Če je eden od odjemalcev v pasivnem načinu

Prek vozlišča, pasivni odjemalec A pošlje ukaz $RevConnectToMe aktivna stranka Bki se nato odzove z ukazom $ConnectToMe.

Uporaba NAT Traversal za povezovanje uporabnikov v pasivnem načinu
Kot strežnik S v zgornjem primeru je zvezdišče DC

Če sta oba odjemalca vklopljena v pasivnem načinu ADC zvezdišče

Odjemalci za različnimi NAT-ji A и B pridružil vozlišču S.

Uporaba NAT Traversal za povezovanje uporabnikov v pasivnem načinu
Tako izgleda povezava s hubom s strani odjemalca A

Zvezdišče sprejema povezave na vratih 1511. Odjemalec A vzpostavlja odhodne povezave iz svojega zasebnega omrežja prek vrat 50758. Zvezdišče nato vidi naslov naprave NAT, dela z njim in ga oddaja odjemalcem glede na njihove identifikatorje.

Stranka A pošlje strežniku S sporočilo s prošnjo za pomoč pri povezovanju s stranko B.

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

Tudi v pasivnem načinu odjemalec B, ki prejme ta ukaz, mora prijaviti svoja zasebna vrata, ki se uporabljajo za povezavo z zvezdiščem prek NAT.

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

Po prejemu te informacije stranka A takoj poskuša vzpostaviti povezavo s stranko B in poroča o svojem zasebnem pristanišču.

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

Kakšne so obresti? Zanimanje je za premik končne točke iste povezave z ustvarjanjem nove povezave na javni naslov prek že uporabljenih zasebnih vrat.

Uporaba NAT Traversal za povezovanje uporabnikov v pasivnem načinu
Bingo!

Seveda v tem primeru stranka NAT B ima vso pravico zavrniti prvo zahtevo za povezavo odjemalca A, a lastna zahteva plane v »luknjo«, ki jo je ustvarila prav ta povezava, in povezava je vzpostavljena.

Uporaba NAT Traversal za povezovanje uporabnikov v pasivnem načinu
Ilustracija primerna za celoten proces z opozorilom, da protokol ne uporablja javnih vrat, ki jih odpre seja NAT-S, kot tudi zasebne naslove.

Epilog

V času pisanja (izvirnega) članka približno polovica odjemalcev DC deluje v pasivnem načinu. To pomeni, da četrtina vseh možnih povezav ni mogoča.

Nadalje DC++ bo lahko zaobšel NATuporabo obstoječih povezav A-S и B-S vzpostaviti neposredno povezavo odjemalec odjemalec, tudi če A и B so v pasivnem načinu.

Vir: www.habr.com

Dodaj komentar