Uso di IPv6 in Advanced Direct Connect

Osservare lo sviluppo della rete di file sharing è interessante, ma partecipare è ancora più affascinante.

Ad oggi, installando e avviando un moderno NMDC hub, il neoeletto amministratore ha accesso praticamente a tutte le competenze e all'esperienza accumulata dai suoi predecessori in questo campo. Ha a disposizione un sistema pronto per l'espansione e la personalizzazione, anche grazie a numerosi script.

C ADC hub in modo diverso. La struttura di questo protocollo prevede l'espandibilità. Vuoi una nuova funzione? Bene – proponila, promuovila, realizzala, implementala, usala.

Translate to English

Di conseguenza, "fuori dalla scatola" è possibile ottenere un hub pronto all'uso, ma semplicemente avviarlo e dimenticarsene non è raccomandabile. L'espandibilità in un contesto storico implica anche la presenza di un numero variabile di funzioni diverse sia per il software client che per quello server a seconda della versione. E ciò che funziona senza problemi per un utente può rivelarsi incompatibile con il client di un altro, e questo va tenuto in considerazione.

È successo anche con IPv6. Il vecchio NMDC in realtà non lo supporta, mentre l'ADC è già pronto ad accoglierlo. Tuttavia, non è tutto così semplice.

Un po' di teoria

L'utente "attivo" può accettare connessioni in entrata. In effetti, la richiesta di connessione inviata da lui è in realtà un invito.

L'utente "passivo", in generale, può utilizzare solo richieste in uscita. Attraverso l'hub, può richiede inviare un invito all'utente attivo – e la connessione si realizza.

Uso di IPv6 in Advanced Direct Connect

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

Il cigno, il granchio e la luccio

Parliamo del software client.

Il supporto per IPv6 in DC++ è di natura sperimentale. Non ci sono impostazioni specifiche per esso, ed è ancora più sorprendente per me vedere diverse modalità operative per le diverse versioni di IP, con la modalità passiva dedicata proprio alla sesta, ma questo non è certo.

Non sono riuscito a ottenere una modalità attiva con la configurazione manuale nemmeno utilizzando esplicitamente un dominio con record AAAA come IP WAN, ma in modalità automatica con UPnP tutto ha funzionato correttamente.

AirDC++ ha anche il supporto per le connessioni IPv6, implementato separatamente da IPv4. Inoltre, questo client modifica i tag degli utenti in modo da visualizzare le modalità operative per entrambi i protocolli IP contemporaneamente. Gli hub attualmente non sono in grado di farlo (fino ad ora), ed è un peccato.

Devo subito chiarire: AirDC++ fa così per se stesso. In futuro, per comodità, userò combinazioni come AP o AA come indicazione dei modi operativi attivi o passivi per IPv4 e IPv6 rispettivamente, e non la loro visualizzazione nel tag del client reale su un hub reale. È importante.

Nel nostro esperimento utilizzeremo FlylinkDC++ come client, completamente ignorante riguardo a IPv6. Va anche osservato che il supporto NATT per esso al momento della stesura di questo articolo non era implementato da nessuna parte.

Inizio

Per prima cosa esamineremo le connessioni comprovabilmente impossibili tra utenti di diverse versioni del protocollo IP. Per il test utilizzeremo un hub pronto per IPv6 con record A e AAAA per il nome di dominio, che funge da indirizzo.

Uso di IPv6 in Advanced Direct Connect

Si noti che qui, nel tentativo (reale) di contattare un utente con un indirizzo IP di sesta versione, 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

Tradotto in linguaggio comune, suona come

P4: – Posso attaccarmi a te?
A6: – Attaccati!
P4: – La vita è un dolore 0_0

Un breve glossario, nel caso ci fosse bisogno, qui.

E se è l'opposto, e l'inizializzazione della connessione proviene da A4, allora 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 è il modo di connessione visualizzato nell'hub.

I client senza supporto per IPv6 dovranno vedere gli utenti connessi attraverso di esso come chiaramente passivi semplicemente perché per loro l'hub non riempie I4 o I6 il campo rispettivamente.

Uso di IPv6 in Advanced Direct Connect
FlylinkDC++ vs. IPv6

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

Uso di IPv6 in Advanced Direct Connect
AirDC++ vs. IPv6

Più semplice, perché IPv6 ha priorità su IPv4, ed è chiaro. È proprio attraverso di esso (anche se con l'opzione corrispondente è disponibile la sovrascrittura) che verrà stabilita la connessione con l'hub, e il suo client attivo offrirà la connessione al passivo.

Più complicato, perché se sull'hub ci sono utenti con supporto per IPv6, ma sono connessi rigorosamente tramite indirizzo IPv4, allora...

Uso di IPv6 in Advanced Direct Connect

… quindi è possibile connettersi a loro (a caso) senza avere affatto IPv4.

Si prega di notare che il client remoto si è identificato come attivo, ma viene trattato come passivo. Perché?

Dai in altalena

Ora proviamo a connettere tra loro client con varie, ma comuni configurazioni IPv4 per il protocollo IP.

Uso di IPv6 in Advanced Direct Connect

Sì, è un peccato che gli utenti passivi debbano fumare in disparte. Ma non c'è modo di aiutarli, poiché il loro indirizzo IP visibile non ha particolare importanza – è proprio questa la loro natura.

Uso di IPv6 in Advanced Direct Connect

Ehi! Il client attivo invia un comando passivo?.. Логично было бы ожидать «зависшего» соединения, но нет, оно получается на условиях A4.

Perché? Contattiamo lo sviluppatore e riceviamo la risposta:

CTM non è buono se l'altro utente non supporta IPv6

E non si può discutere! Ma questo richiede già una logica interna, indipendente dal hub (vedere il codice qui e qui). E per i passivi non c'è modo di aiutarli, perché

Modalità attiva = TCPx + IPx

Le tentativi di connessione tra client con comuni configurazioni IPv6 per il protocollo IP si presentano nel seguente modo. Ricordo che ottenere PA per DC++ non sono riuscito.

Uso di IPv6 in Advanced Direct Connect

E di nuovo una sorpresa. Risulta che la modalità passiva per IPv6, mostrata da DC++, è o un falso intenzionato, o un bug.

Cosa succede dopo?

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

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

Il secondo è questo un'estensione, che è appena entrato nella fase di test.

E, sebbene sia pigro a configurare la modalità attiva per lavorare in DC, ricordate:

A chi ha, sarà dato, e a chi non ha, sarà tolto anche ciò che pensa di avere. Lc. 8:18

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster