Utilizzo di IPv6 con Advanced Direct Connect

È interessante osservare lo sviluppo della rete di condivisione di file, ma è ancora più interessante parteciparvi.

Oggi, installando e lanciando un moderno NMDC hub, il nuovo amministratore ha accesso a quasi tutti gli sviluppi e l'esperienza accumulati in quest'area dai suoi predecessori. Dispone di un sistema pronto per l'espansione e la personalizzazione, anche con l'ausilio di numerosi script.

С ADC hub altrimenti. La progettazione di questo protocollo è destinata ad essere estensibile. Vuoi una nuova funzionalità? Bene, offrilo, promuovilo, implementalo, implementalo, usalo.

Tradurre in inglese

Di conseguenza, puoi, ovviamente, ottenere un hub già pronto fuori dalla scatola, ma semplicemente avviarlo e dimenticartene non andrà bene. L'estensibilità in un contesto storico implica anche la presenza di un numero diverso di funzioni diverse del software client e server, a seconda della versione. E ciò che funzionerà senza problemi per un utente potrebbe essere incompatibile con il client di un altro, e questo deve essere preso in considerazione.

Questo è successo con IPv6. Il vecchio NMDC non sa come farlo in linea di principio, ma lo stesso ADC è pronto per questo. Tuttavia, non tutto è così semplice.

Solo una piccola teoria

L'utente "attivo" può accettare connessioni in entrata. In realtà, la richiesta di connessione che ne deriva lo è effettivamente invito.

Un utente "passivo" può generalmente utilizzare solo le richieste in uscita. Attraverso l'hub lui просит l'utente attivo invia un invito e la connessione viene stabilita.

Utilizzo di IPv6 con Advanced Direct Connect

E sì, questo meccanismo non dipende dalla versione del protocollo IP utilizzato.

Cigno, Cancro e Luccio

Parliamo del software client.

Supporto IPv6 DC ++ è di natura sperimentale. Non ci sono impostazioni separate per questo, ed è stato ancora più sorprendente per me vedere diverse modalità operative per diverse versioni di IP, con passiva solo per la sesta, ma questo non è accurato.

Non è stato possibile ottenere la modalità attiva durante la configurazione manuale anche utilizzando esplicitamente un dominio IP con un record AAAA come WAN, ma in modalità automatica utilizzando UPnP tutto ha funzionato come previsto.

AirDC ++ supporta anche le connessioni IPv6 ed è implementato in modo completamente separato da IPv4. Inoltre, questo client modifica i tag utente in modo tale da visualizzare contemporaneamente le modalità operative per entrambi i protocolli IP. Gli stessi hub non sanno (ancora) come farlo, il che è un peccato.

Devo prenotare subito: AirDC++ lo fa da solo e per se stesso. In futuro, per comodità, utilizzerò combinazioni come AP o AA come indicazione delle modalità operative attive o passive rispettivamente per IPv4 e IPv6, piuttosto che la loro visualizzazione nel tag client reale sull'hub reale. È importante.

Nel nostro esperimento useremo FlylinkDC++ come client non ha alcuna familiarità con IPv6. Va anche notato che il supporto NATT per lui al momento della stesura di questo articolo non è stato implementato da nessuna parte.

Inizio

Innanzitutto esamineremo le connessioni ovviamente impossibili tra utenti di diverse versioni del protocollo IP. Verrà utilizzato per il test Hub pronto per IPv6 con record di risorsa A e AAAA per il nome di dominio che funge da indirizzo.

Utilizzo di IPv6 con Advanced Direct Connect

Tieni presente che quando provi (effettivamente) a contattare un utente con un indirizzo IP versione XNUMX, viene visualizzato un errore.

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

Nella traduzione umana sembra

P4: – Posso aggrapparmi a te?
A6: – Aggrappati!
P4: – La vita è dolore 0_0

Un breve dizionario, se necessario, qui.

E se è il contrario, la connessione inizia A4, non viene visualizzato alcun errore e la connessione semplicemente si blocca.

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

Essere, non sembrare

Ciò che è importante è la modalità di connessione visualizzata sull'hub.

I client senza supporto IPv6 dovranno vedere gli utenti connessi tramite esso come chiaramente passivi, semplicemente perché l'hub non si popola per loro I4 o I6 campo di conseguenza.

Utilizzo di IPv6 con Advanced Direct Connect
FlylinkDC++ vs. IPv6

In realtà la situazione è più semplice e più complessa allo stesso tempo.

Utilizzo di IPv6 con Advanced Direct Connect
AirDC++ vs. IPv6

Più semplice perché IPv6 ha la precedenza su IPv4, e questo è comprensibile. È attraverso di esso (anche se l'override è disponibile utilizzando l'opzione corrispondente) che verrà stabilita la connessione all'hub e il client attivo la offrirà al client passivo per la connessione.

È più difficile, perché se ci sono utenti con supporto IPv6 sull'hub, ma sono collegati rigorosamente tramite un indirizzo IPv4, allora...

Utilizzo di IPv6 con Advanced Direct Connect

... quindi puoi connetterti a loro (in modo casuale) senza avere IPv4.

Tieni presente che il cliente remoto si è designato come una risorsa, ma è trattato come una passività. Perché?

Lanciatelo in un'altalena

Ora proviamo a connettere client con set di protocolli IP diversi, ma comuni in termini di IPv4, supportati tra loro.

Utilizzo di IPv6 con Advanced Direct Connect

Sì, è un peccato che gli utenti passivi debbano fumare in disparte. Ma questo non può essere evitato, dal momento che il loro indirizzo IP visibile non è particolarmente importante – ecco perché sono passivi.

Utilizzo di IPv6 con Advanced Direct Connect

Bah! Il client attivo invia comando passivo?.. Sarebbe logico aspettarsi una connessione “bloccata”, ma no, risulta alle condizioni A4.

Perché? Contattiamo lo sviluppatore e otteniamo la risposta:

CTM non va bene se l'altro utente non supporta IPv6

E non puoi discutere! Ma questo richiede una logica interna, indipendente dall’hub (vedi cod qui и qui). È ancora impossibile aiutare i passivi, perché

Modalità attiva = TCPx+IPx

I tentativi di connessione tra client con set di supporto IP IPv6 comuni hanno questo aspetto. Lascia che te lo ricordi, raggiungilo PA Non ci sono riuscito per DC++.

Utilizzo di IPv6 con Advanced Direct Connect

E ancora una sorpresa. Si scopre che la modalità passiva per IPv6, dimostrata da DC++, è un falso deliberato o un bug.

Quali sono le prospettive?

Attualmente esistono esattamente due modi per risolvere tutti i possibili problemi di connessione degli utenti in modalità diverse e con diversi set di supporto del protocollo IP.

Il primo è disattivare completamente IPv6 o, al contrario, creare un hub per funzionare solo attraverso di esso.

La seconda è questa estensione, che si sta appena avvicinando alla fase di test.

Bene, se sei troppo pigro per impostare la modalità attiva per lavorare in DC, ricorda:

A chi ha sarà dato quello che ha, a chi non ha sarà tolto anche quello che pensa di avere. Luca. 8:18

Fonte: habr.com

Aggiungi un commento