Dit artikel is een vrije vertaling van een van de berichten in .
Met toestemming van de auteur (en ook voor de duidelijkheid en het belang) heb ik het aangevuld met links en wat persoonlijke onderzoeken.
Inleiding
Momenteel moet ten minste één gebruiker van het paar dat verbinding maakt in actieve modus zijn. De 'NAT-bypass'-mechanisme is nuttig wanneer geen van beide kanten in actieve modus is ingesteld. Dit gebeurt meestal vanwege het blokkeren van inkomende verbindingen door een firewall of een NAT-apparaat.
Als beide clients in actieve modus zijn
stuurt de initiërende client een opdracht die zijn eigen IP-adres en poort bevat, aan de andere client. Met deze gegevens maakt de ontvangende client verbinding met de initiator.
Als een van de clients in passieve modus is
stuur de passieve client via de hub A de opdracht aan de actieve client, Bdie dan reageert met de opdracht $ConnectToMe.

Als server S is de DC-hub in het bovenstaande geval
Als beide clients in passieve modus zijn op
Diverse clients achter verschillende NAT A en B sloten zich aan bij de hub. S.

Zo ziet de verbinding met de hub eruit vanuit het perspectief van de client: A
De hub accepteert verbindingen op poort 1511. De client A maakt uitgaande verbindingen vanuit zijn privénetwerk via poort 50758. De hub ziet op zijn beurt het adres van het NAT-apparaat, werkt daarmee en zendt de clients hun identificaties.
Klant A sturen een bericht naar de server S met het verzoek hulp te bieden bij het verbinden met een client. B.
Hub: [Outgoing][178.79.159.147:1511] DRCM AAAA BBBB ADCS/0.10 1649612991
Ook in passieve modus moet de client, Bna ontvangst van deze opdracht, zijn privépunt melden dat wordt gebruikt voor de verbinding met de hub via NAT.
Hub: [Incoming][178.79.159.147:1511] DNAT BBBB AAAA ADCS/0.10 59566 1649612991
Na het ontvangen van deze informatie probeert de client A onmiddellijk verbinding te maken met de client B en meldt zijn eigen privépunt.
Hub: [Outgoing][178.79.159.147:1511] D<b>RNT</b> AAAA BBBB ADCS/0.10 <b>50758</b> 1649612991Wat is het interessante? Het interessante zit in het verschuiven van de eindpunten van dezelfde verbinding door een nieuwe verbinding te creëren op een openbaar adres via al gebruikte privépunt.

Bingo!
Zeker, kan de NAT van de client B het eerste verbindingsverzoek van de client volledig weigeren, Amaar al zijn eigen verzoek is al gericht op het 'gat' dat is gemaakt door diezelfde verbinding, en de verbinding wordt toch tot stand gebracht.

Een illustratie die bij het gehele proces past, met de kanttekening dat maakt geen gebruik van openbare poorten die door de sessie zijn geopend NAT‒S, evenals privé-adressen.
Epilog
Op het moment van schrijven van dit artikel werkt ongeveer de helft van de DC-klanten in de passieve modus. Dit betekent dat een kwart van alle mogelijke verbindingen niet kan worden gemaakt.
Vervolgens , door gebruik te maken van bestaande verbindingen A‒S en B‒S om een directe client-naar-clientverbinding tot stand te brengen, zelfs als A en B ze zich in de passieve modus bevinden.
Bron: habr.com
