IPv6 gebruiken met Advanced Direct Connect

Het is interessant om de ontwikkeling van het netwerk voor het delen van bestanden te bekijken, maar het is nog interessanter om eraan deel te nemen.

Vandaag de dag, het installeren en lanceren van een modern NMDC hub krijgt de nieuw geslagen beheerder toegang tot vrijwel alle ontwikkelingen en ervaringen die zijn voorgangers op dit gebied hebben verzameld. Het heeft een systeem dat klaar is voor uitbreiding en aanpassing, onder meer met behulp van talloze scripts.

С ADC hubs anders. Het ontwerp van dit protocol is bedoeld om uitbreidbaar te zijn. Wil je een nieuwe functie? Nou, bied het aan, promoot het, implementeer het, implementeer het, gebruik het.

Vertaal naar Engels

Het resultaat is dat je natuurlijk een kant-en-klare hub uit de doos kunt halen, maar hem simpelweg lanceren en vergeten zal niet goed zijn. Uitbreidbaarheid in een historische context impliceert ook de aanwezigheid van een verschillend aantal verschillende functies van client- en serversoftware, afhankelijk van de versie. En wat voor de ene gebruiker zonder problemen werkt, kan incompatibel zijn met de client van een andere gebruiker, en daar moet rekening mee worden gehouden.

Dit gebeurde met IPv6. De oude man NMDC weet in principe niet hoe het moet, maar ADC zelf is er klaar voor. Echter, niet allemaal zo eenvoudig.

Gewoon een beetje theorie

De "actieve" gebruiker kan inkomende verbindingen accepteren. Eigenlijk is het verbindingsverzoek dat eruit komt eigenlijk uitnodiging.

Een "passieve" gebruiker kan doorgaans alleen uitgaande verzoeken gebruiken. Via de hub hij vraagt de actieve gebruiker stuurt een uitnodiging - en de verbinding wordt tot stand gebracht.

IPv6 gebruiken met Advanced Direct Connect

En ja, dit mechanisme is niet afhankelijk van de versie van het gebruikte IP-protocol.

Zwaan, rivierkreeft en snoek

Laten we het hebben over clientsoftware.

IPv6-ondersteuning DC ++ is experimenteel van aard. Er zijn geen aparte instellingen voor, en het was voor mij des te verrassender om verschillende bedieningsmodi te zien voor verschillende versies van IP, met passief alleen voor de zesde, maar dit is niet accuraat.

Het was niet mogelijk om de actieve modus te krijgen tijdens handmatige configuratie, zelfs als expliciet een IP-domein met een AAAA-record als WAN werd gebruikt, maar in de automatische modus met UPnP werkte alles zoals verwacht.

AirDC++ heeft ook ondersteuning voor IPv6-verbindingen en wordt volledig gescheiden van IPv4 geïmplementeerd. Bovendien wijzigt deze client de gebruikerstags zodanig dat de bedrijfsmodi voor beide IP-protocollen tegelijkertijd worden weergegeven. De hubs weten zelf (nog) niet hoe ze dit moeten doen, en dat is jammer.

Ik moet meteen reserveren: AirDC++ doet dit alleen en voor zichzelf. In de toekomst zal ik voor het gemak combinaties gebruiken zoals AP of AA als indicatie van actieve of passieve werkingsmodi voor respectievelijk IPv4 en IPv6, in plaats van hun weergave in de echte clienttag op de echte hub. Het is belangrijk.

In ons experiment zullen we gebruiken FlylinkDC++ als klant helemaal niet bekend met IPv6. Er moet ook worden opgemerkt dat ondersteuning NATT voor hem was dit artikel op het moment van schrijven nergens geïmplementeerd.

begin

Allereerst zullen we kijken naar uiteraard onmogelijke verbindingen tussen gebruikers van verschillende versies van het IP-protocol. Wordt gebruikt voor de test IPv6-ready hub waarbij resource A- en AAAA-records voor de domeinnaam als adres fungeren.

IPv6 gebruiken met Advanced Direct Connect

Houd er rekening mee dat wanneer u (daadwerkelijk) probeert contact op te nemen met een gebruiker met een versie XNUMX IP-adres, er een foutmelding wordt weergegeven.

Hub:	[Outgoing][IPv4:412]	 	DRCM AACX AACU ADCS/0.10 337151563
Hub:	[Incoming][IPv4:412]	 	DCTM AACU AACX ADCS/0.10 1988 337151563
Hub:	[Outgoing][IPv4:412]	 	DSTA AACX AACU 240 IPsunknown

In menselijke vertaling klinkt het als

P4: – Kan ik me aan je vastklampen?
A6: – Houd vast!
P4: – Het leven is pijn 0_0

Een kort woordenboek, indien nodig, hier.

En als het andersom is, en de verbinding tot stand komt A4, dan wordt er geen fout weergegeven en blijft de verbinding gewoon hangen.

Hub:	[Outgoing][IPv4:412]	 	DCTM AACX AACU ADCS/0.10 1993 3871342713

Wees, het lijkt niet zo te zijn

Wat belangrijk is, is de verbindingsmodus die op de hub wordt weergegeven.

Klanten zonder IPv6-ondersteuning zullen gebruikers die erdoor verbonden zijn, als duidelijk passief moeten zien, simpelweg omdat de hub niet voor hen gevuld is I4 of I6 veld dienovereenkomstig.

IPv6 gebruiken met Advanced Direct Connect
FlylinkDC++ vs. IPv6

In werkelijkheid is de situatie tegelijkertijd eenvoudiger en complexer.

IPv6 gebruiken met Advanced Direct Connect
AirDC++ versus IPv6

Gemakkelijker omdat IPv6 voorrang heeft op IPv4, en dat is begrijpelijk. Het is hierdoor (hoewel overschrijven beschikbaar is met behulp van de overeenkomstige optie) dat de verbinding met de hub tot stand wordt gebracht, en de actieve client zal deze ter verbinding aanbieden aan de passieve client.

Moeilijker is het, want als er gebruikers zijn met IPv6-ondersteuning op de hub, maar deze zijn strikt verbonden via een IPv4-adres, dan...

IPv6 gebruiken met Advanced Direct Connect

... dan kun je er (willekeurig) verbinding mee maken zonder dat je IPv4 hebt.

Houd er rekening mee dat de externe klant zichzelf heeft aangemerkt als een actief, maar wordt behandeld als een verplichting. Waarom?

Gooi hem in een schommel

Laten we nu proberen clients met verschillende, maar gemeenschappelijke sets van IP-protocolondersteuning, met elkaar te verbinden in termen van IPv4.

IPv6 gebruiken met Advanced Direct Connect

Ja, het is jammer dat passieve gebruikers aan de zijlijn moeten roken. Maar hier kan niets aan gedaan worden, omdat hun zichtbare IP-adres niet bijzonder belangrijk is - daarom zijn het aansprakelijkheden.

IPv6 gebruiken met Advanced Direct Connect

Bah! De actieve client verzendt passieve opdracht?.. Het zou logisch zijn om een ​​“vastzittende” verbinding te verwachten, maar nee, zo blijkt onder de omstandigheden A4.

Waarom is dat? We nemen contact op met de ontwikkelaar en krijgen het antwoord:

CTM is niet goed als de andere gebruiker IPv6 niet ondersteunt

En je kunt niet discussiëren! Maar dit vereist interne logica, onafhankelijk van de hub (zie code hier и hier). Het is nog steeds onmogelijk om passieve mensen te helpen, omdat

Actieve modus = TCPx+IPx

Pogingen om verbinding te maken tussen clients met algemene IPv6 IP-ondersteuningssets zien er als volgt uit. Laat me je eraan herinneren: bereik het PA Het is mij niet gelukt voor DC++.

IPv6 gebruiken met Advanced Direct Connect

En opnieuw een verrassing. Het blijkt dat de passieve modus voor IPv6, zoals DC++ aantoont, een opzettelijke nep of een bug is.

Wat is het volgende?

Momenteel zijn er precies twee manieren om alle mogelijke problemen op te lossen bij het verbinden van gebruikers in verschillende modi en met verschillende sets IP-protocolondersteuning.

De eerste is om IPv6 helemaal te dempen of, omgekeerd, een hub te creëren die alleen via IPvXNUMX werkt.

De tweede is deze uitbreiding, dat nog maar net de testfase nadert.

Als u te lui bent om de actieve modus in te stellen voor het werken in DC, onthoud dan:

Wie heeft, wat zal hem gegeven worden, en wie niet heeft, zelfs wat hij denkt te hebben, zal hem ontnomen worden. OK. 8:18

Bron: www.habr.com

Voeg een reactie