AnvÀndning av NAT Traversal för att ansluta anvÀndare i passivt lÀge

Den hÀr artikeln Àr en fri översÀttning av ett inlÀgg i DC++-utvecklarnas blogg..

Med författarens tillstÄnd (och för tydlighetens och intressets skull) har jag fÀrglagt den med lÀnkar och lagt till nÄgra personliga insikter.

Introduktion

För nÀrvarande mÄste Ätminstone en anvÀndare i ett par som ansluter vara i aktivt lÀge. NAT-bypass-mekanismen kommer att vara anvÀndbar nÀr inget av parterna har aktivt lÀge instÀllt. Detta sker vanligtvis pÄ grund av att brandvÀggar eller NAT-enheter blockerar inkommande anslutningar.

Om bÄda klienterna Àr i aktivt lÀge

Skickar initiator-klienten ett kommando som innehÄller sin egna IP-adress och port $ConnectToMe till den andra klienten. Med hjÀlp av dessa uppgifter upprÀttar den mottagande klienten en anslutning med initiatorn.

Om en av klienterna Àr i passivt lÀge

skickar den passiva klienten via hubben A kommandot $RevConnectToMe till den aktiva klienten B, som sedan svarar med kommandot $ConnectToMe.

AnvÀndning av NAT Traversal för att ansluta anvÀndare i passivt lÀge
Som server S agerar DC-hubben i det ovanstÄende fallet.

Om bÄda klienterna Àr i passivt lÀge pÄ ADC-hubben

klienterna bakom olika NAT A och B har anslutit sig till hubben. S.

AnvÀndning av NAT Traversal för att ansluta anvÀndare i passivt lÀge
SÄ hÀr ser anslutningen till hubben ut frÄn klientens sida. A

Hubben tar emot anslutningar pÄ port 1511. Klienten A gör utgÄende anslutningar frÄn sitt privata nÀtverk via port 50758. Hubben ser Ä sin sida NAT-enhetens adress, arbetar med den och vidarebefordrar till kunderna enligt deras identifierare.

Klient A skickar till servern S ett meddelande med förfrÄgan att hjÀlpa till att ansluta till klienten. B.

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

Genom att ocksÄ vara i passivt lÀge BmÄste klienten som fÄr detta kommando informera om sin privata port, som anvÀnds för att ansluta till hubben via NAT.

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

Efter att ha tagit emot denna information A försöker klienten omedelbart ansluta till klienten B och meddelar sin egen privata port.

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

Vad Àr intressant? Intresset ligger i att förskjuta slutpunkten för samma anslutning genom att skapa en ny anslutning till en offentlig adress via redan anvÀnd privat port.

AnvÀndning av NAT Traversal för att ansluta anvÀndare i passivt lÀge
Bingo!

SjÀlvklart har NAT för klienten B full rÀtt att avvisa den första anslutningsbegÀran frÄn klienten, Amen redan dess egen begÀran strÀvar in i 'hÄlet' som skapats av just denna anslutning, och kontakten upprÀttas.

AnvÀndning av NAT Traversal för att ansluta anvÀndare i passivt lÀge
En illustration som passar hela processen med förbehĂ„ll för att protokoll anvĂ€nder inga offentliga portar som öppnas av sessionen NAT‒S, samt privata adresser.

Epilog

Vid tidpunkten för skriva (den ursprungliga) artikeln arbetade ungefÀr hÀlften av DC-kunderna i passivt lÀge. Det innebÀr att en fjÀrdedel av alla möjliga anslutningar inte kan genomföras.

Framöver kan DC++ "överbrygga" NAT, genom att anvĂ€nda befintliga anslutningar A‒S och B‒S för att etablera en direkt anslutning klient–klient, Ă€ven om A och B de befinner sig i passivt lĂ€ge.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster