NAT Traversalin käyttäminen käyttäjien yhdistämiseen passiivisessa tilassa

Tämä artikkeli on ilmainen käännös yhdestä julkaisusta DC++ -kehittäjäblogi.

Kirjoittajan luvalla (sekä selkeyden ja mielenkiinnon vuoksi) värisin sen linkeillä ja täydensin sitä omalla tutkimuksella.

Esittely

Ainakin yhden yhdistävän parin käyttäjän on oltava aktiivisessa tilassa tällä hetkellä. NAT-läpikulkumekanismi on hyödyllinen, kun aktiivista tilaa ei ole määritetty kummallakaan puolella. Tämä johtuu yleensä siitä, että palomuuri tai NAT-laite estää saapuvat yhteydet.

Jos molemmat asiakkaat ovat aktiivisessa tilassa

Aloittava asiakas lähettää komennon, joka sisältää sen oman IP-osoitteen ja portin $ConnectToMe toiselle asiakkaalle. Näiden tietojen avulla komennon vastaanottanut asiakas muodostaa yhteyden aloittajaan.

Jos yksi asiakkaista on passiivisessa tilassa

Keskittimen kautta passiivinen asiakas A lähettää käskyn $RevConnectToMe aktiivinen asiakas Bjoka sitten vastaa komennolla $ConnectToMe.

NAT Traversalin käyttäminen käyttäjien yhdistämiseen passiivisessa tilassa
Palvelijana S yllä olevassa tapauksessa on DC-keskitin

Jos molemmat asiakkaat ovat passiivisessa tilassa ADC-keskitin

Asiakkaat eri NAT:ien takana A и B liittyi keskukseen S.

NAT Traversalin käyttäminen käyttäjien yhdistämiseen passiivisessa tilassa
Tältä yhteys hubiin näyttää asiakkaan puolelta A

Keskitin hyväksyy yhteydet portista 1511. Asiakas A muodostaa lähtevät yhteydet yksityisestä verkostaan ​​portin 50758 kautta. Keskitin puolestaan ​​näkee NAT-laitteen osoitteen, toimii sen kanssa ja lähettää sen asiakkaille heidän tunnisteidensa mukaan.

asiakas A lähettää palvelimelle S viesti, jossa pyydetään apua yhteyden muodostamiseen asiakkaaseen B.

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

Myös passiivisessa tilassa asiakas B, saatuaan tämän komennon, on ilmoitettava yksityinen porttinsa, jota käytetään yhteyden muodostamiseen keskittimeen NAT:n kautta.

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

Tämän tiedon saatuaan asiakas A yrittää välittömästi muodostaa yhteyden asiakkaaseen B ja raportoi oman yksityisen satamansa.

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

Mikä on intressi? Mielenkiintoista on siirtää saman yhteyden päätepistettä luomalla uusi yhteys julkiseen osoitteeseen jo käytetyn yksityisen portin kautta.

NAT Traversalin käyttäminen käyttäjien yhdistämiseen passiivisessa tilassa
Bingo!

Tietenkin tässä tapauksessa asiakas NAT B on täysi oikeus hylätä asiakkaan ensimmäinen yhteyspyyntö A, mutta hänen oma pyyntönsä syöksyy juuri tämän yhteyden luomaan "aukkoon", ja yhteys syntyy.

NAT Traversalin käyttäminen käyttäjien yhdistämiseen passiivisessa tilassa
Kuva sopii koko prosessiin sillä varoituksella protokollaa ei käytä istunnon avaamia julkisia portteja NAT-S, sekä yksityiset osoitteet.

Epilogi

(alkuperäistä) artikkelia kirjoitettaessa noin puolet DC-asiakkaista työskentelee passiivisessa tilassa. Tämä tarkoittaa, että neljäsosaa kaikista mahdollisista yhteyksistä ei voida tehdä.

Edelleen DC++ pystyy ohittamaan NAT:nkäyttämällä olemassa olevia yhteyksiä A-S и B-S muodostaa suora asiakas-asiakas-yhteys, vaikka A и B ovat passiivisessa tilassa.

Lähde: will.com

Lisää kommentti