Korištenje NAT Traversal za povezivanje korisnika u pasivnom načinu rada

Ovaj članak je besplatan prijevod jednog od unosa u DC++ blog programera.

Uz dozvolu autora (kao i zbog jasnoće i interesa), obojio sam ga linkovima i dopunio nekim ličnim istraživanjem.

Uvod

Najmanje jedan korisnik spojnog para u ovom trenutku mora biti u aktivnom načinu rada. Mehanizam prelaska NAT-a će biti koristan kada aktivni način rada nije konfiguriran ni na jednoj strani. To je obično zbog toga što zaštitni zid ili NAT uređaj blokiraju dolazne veze.

Ako su oba klijenta u aktivnom načinu rada

Početni klijent šalje naredbu koja sadrži vlastitu IP adresu i port $ConnectToMe drugom klijentu. Koristeći ove podatke, klijent koji je primio komandu uspostavlja vezu sa inicijatorom.

Ako je jedan od klijenata u pasivnom režimu

Kroz čvorište, pasivni klijent A šalje komandu $RevConnectToMe aktivni klijent Bkoji zatim odgovara naredbom $ConnectToMe.

Korištenje NAT Traversal za povezivanje korisnika u pasivnom načinu rada
Kao server S u gornjem slučaju postoji DC čvorište

Ako su oba klijenta u pasivnom načinu rada uključena ADC čvorište

Klijenti koji stoje iza različitih NAT-ova A и B pridružio se čvorištu S.

Korištenje NAT Traversal za povezivanje korisnika u pasivnom načinu rada
Ovako izgleda veza sa čvorištem sa strane klijenta A

Čvorište prihvata veze na portu 1511. Klijent A uspostavlja odlazne veze iz svoje privatne mreže preko porta 50758. Čvorište, zauzvrat, vidi adresu NAT uređaja, radi s njim i emituje ga klijentima prema njihovim identifikatorima.

Kupac A šalje na server S poruka u kojoj se traži pomoć za povezivanje s klijentom B.

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

Takođe u pasivnom režimu, klijent B, nakon što je primio ovu naredbu, mora prijaviti svoj privatni port koji se koristi za povezivanje na čvorište preko NAT-a.

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

Nakon prijema ove informacije klijent A odmah pokušava da uspostavi vezu sa klijentom B i prijavljuje svoju privatnu luku.

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

Šta je interes? Interes je u pomjeranju krajnje točke iste veze stvaranjem nove veze na javnu adresu preko već korištenog privatnog porta.

Korištenje NAT Traversal za povezivanje korisnika u pasivnom načinu rada
Bingo!

Naravno, u ovom slučaju klijent NAT B ima svako pravo da odbije prvi zahtjev za povezivanje od klijenta A, ali njegov vlastiti zahtjev juri u “rupu” koju je stvorila upravo ova veza i veza je uspostavljena.

Korištenje NAT Traversal za povezivanje korisnika u pasivnom načinu rada
Ilustracija prikladna za cijeli proces uz napomenu da protokol ne koristi javne portove otvorene sesijom NATS, kao i privatne adrese.

Epilog

U vrijeme pisanja (originalnog) članka, otprilike polovina DC klijenata radi u pasivnom režimu. To znači da se četvrtina svih mogućih veza ne može uspostaviti.

Dalje DC++ će moći zaobići NATkoristeći postojeće veze AS и BS uspostaviti direktnu vezu klijent-klijent, čak i ako A и B su u pasivnom režimu.

izvor: www.habr.com

Dodajte komentar