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

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

Uz dopuštenje autora (kao i zbog jasnoće i zanimljivosti), obojio sam ga poveznicama i nadopunio osobnim istraživanjem.

Uvod

Najmanje jedan korisnik spojnog para mora biti u aktivnom načinu rada u ovom trenutku. NAT traverzalni mehanizam bit će koristan kada aktivni način nije konfiguriran ni na jednoj strani. To je obično zbog vatrozida ili NAT uređaja koji blokiraju dolazne veze.

Ako su oba klijenta u aktivnom načinu rada

Klijent koji pokreće šalje naredbu koja sadrži vlastitu IP adresu i port $ConnectToMe drugom klijentu. Pomoću tih podataka klijent koji je primio naredbu uspostavlja vezu s inicijatorom.

Ako je jedan od klijenata u pasivnom načinu rada

Kroz hub, pasivni klijent A šalje naredbu $RevConnectToMe aktivni klijent Bkoji tada odgovara naredbom $ConnectToMe.

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

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

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

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

Hub prihvaća veze na portu 1511. Klijent A uspostavlja odlazne veze sa svoje privatne mreže preko priključka 50758. Hub, pak, vidi adresu NAT uređaja, radi s njim i šalje ga klijentima prema njihovim identifikatorima.

kupac A šalje poslužitelju S poruka koja traži pomoć pri povezivanju s klijentom B.

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

Također u pasivnom načinu rada, klijent B, nakon što je primio ovu naredbu, mora prijaviti svoj privatni port koji se koristi za povezivanje s čvorištem putem NAT-a.

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

Nakon primitka ove informacije klijent A odmah pokušava uspostaviti vezu s klijentom B i prijavljuje vlastitu privatnu luku.

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

Kolika je kamata? Interes je u pomicanju krajnje točke iste veze stvaranjem nove veze na javnu adresu preko već korištenog privatnog priključka.

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

Naravno, u ovom slučaju klijent NAT B ima svako pravo odbiti prvi zahtjev klijenta za povezivanje A, ali vlastiti zahtjev juri u “rupu” nastalu upravo tom vezom i veza je uspostavljena.

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

Epilog

U vrijeme pisanja (izvornog) članka otprilike polovica DC klijenata radi u pasivnom načinu rada. To znači da se ne može ostvariti četvrtina svih mogućih veza.

Unaprijediti DC++ će moći zaobići NATkoristeći postojeće veze AS и BS uspostaviti izravnu vezu klijent-klijent, čak i ako A и B su u pasivnom načinu rada.

Izvor: www.habr.com

Dodajte komentar