Utilizarea IPv6 în Advanced Direct Connect

Este interesant să observi dezvoltarea rețelei de schimb de fișiere, dar este și mai interesant să participi la ea.

În ziua de astăzi, instalând și lansând un NMDC hub, noul administrator are acces practic la toate realizările și experiența acumulată în acest domeniu de precedentii săi. Acesta dispune de un sistem pregătit pentru extindere și personalizare, inclusiv prin intermediul numeroaselor scripturi.

Cu ADC huburi în mod diferit. Structura acestui protocol presupune extensibilitate. Vrei o nouă funcție? Ei bine, propune-o, promoveaz-o, implementeaz-o, utilizeaz-o.

Translate to English

Ca urmare, "din cutie" se poate, desigur, obține un hub gata, dar a-l porni și a uita de el nu ar fi bine. Extensibilitatea în contextul istoric presupune, de asemenea, existența unui număr diferit de funcții ale software-ului client și server, în funcție de versiune. Și ceea ce funcționează fără probleme pentru un utilizator poate fi incompatibil cu clientul altuia, și acest lucru trebuie luat în considerare.

Așa s-a întâmplat și cu IPv6. Vechiul NMDC nu îl suportă de fapt, iar ADC este pregătit pentru el. Totuși, lucrurile nu sunt atât de simple.

Puțină teorie

"Utilizatorul activ" poate accepta conexiuni intră. De fapt, cererea de conexiune din partea lui este, în realitate, o invitație.

"Utilizatorul pasiv" poate utiliza, în general, doar cereri ieșite. Prin intermediul hubului, el solicită utilizatorului activ să trimită o invitație – și conexiunea se realizează.

Utilizarea IPv6 în Advanced Direct Connect

Și da, acest mecanism nu depinde de versiunea protocolului IP utilizat.

Lebăda, racul și știuca

Să vorbim despre software-ul client.

Suportul IPv6 în DC++ are un caracter experimental. Nu există setări separate pentru acesta, iar cu atât mai surprinzător mi-a fost să văd diferite moduri de funcționare pentru diferite versiuni IP, iar modul pasiv este de fapt pentru versiunea șase, dar nu este exact.

Obținerea modului activ prin setare manuală nu a fost posibilă nici măcar atunci când am utilizat în mod explicit ca IP WAN un domeniu cu înregistrare AAAA, dar în modul automat cu utilizarea UPnP, totul a funcționat așa cum ar trebui.

AirDC++ de asemenea, are suport pentru conexiuni IPv6, care este implementat complet separat de IPv4. Mai mult, acest client modifică etichetele utilizatorilor astfel încât să afișeze modurile de operare pentru ambele protocoale IP simultan. Hub-urile nu pot face acest lucru (încă), ceea ce este păcat.

Trebuie să specific imediat: AirDC++ face acest lucru și pentru el însuși. În continuare, pentru comoditate, voi folosi combinații precum AP sau AA ca o indicație a modurilor active sau pasive de operare pentru IPv4 și IPv6, respectiv, și nu ca afișare în eticheta clientului real pe un hub real. Este important.

În experimentul nostru, vom folosi FlylinkDC++ ca client, care nu este deloc familiarizat cu IPv6. De asemenea, este important de menționat că suportul NATT pentru acesta nu a fost implementat nicăieri la momentul scrierii acestui articol.

Început

În primul rând, vom examina conexiunile care sunt în mod evident imposibile între utilizatorii de versiuni diferite ale protocolului IP. Pentru test, va fi folosit hub-ul gata IPv6 cu înregistrări A și AAAA pentru numele de domeniu, care servește drept adresă.

Utilizarea IPv6 în Advanced Direct Connect

Atenție, aici, în situația (reală) de încercare de a contacta un utilizator cu un adresă IP de versiune șase, se va genera o eroare.

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

Tradus în limbaj uman, asta sună ca

P4: – Pot să mă alături ție?
A6: – Alătură-te!
P4: – Viața e durere 0_0

Un mic glosar, pentru orice eventualitate, aici.

Și dacă invers, conexiunea este inițiată A4, atunci nu se generează eroare, iar conexiunea pur și simplu "se blochează".

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

A fi, nu a părea

Ce este important este modul de conexiune afișat pe hub.

Clienții fără suport IPv6 vor trebui să îi vadă pe cei conectați prin el ca fiind clar pasivi, pur și simplu pentru că hub-ul nu completează I4 sau I6 câmpul corespunzător.

Utilizarea IPv6 în Advanced Direct Connect
FlylinkDC++ vs. IPv6

În realitate, situația este mai simplă și mai complicată în același timp.

Utilizarea IPv6 în Advanced Direct Connect
AirDC++ vs. IPv6

Mai simplu, pentru că IPv6 are prioritate asupra IPv4, și asta este clar. Conexiunea cu hub-ul va fi stabilită prin el (deși cu o opțiune corespunzătoare este disponibilă redefinirea), iar clientul său activ va propune conexiunea pasivului.

Mai complicat, pentru că dacă pe hub sunt utilizatori cu suport IPv6, dar ei sunt conectați strict prin adresă IPv4, atunci...

Utilizarea IPv6 în Advanced Direct Connect

… iar cu ele se poate conecta (la întâmplare) fără a avea deloc IPv4.

Vă rugăm să rețineți, clientul de la distanță s-a prezentat ca activ, dar este procesat ca pasiv. De ce?

Să-l ducem în leagăn

Acum să încercăm să conectăm clienții între ei cu seturi de suport IP comuna în parte pentru IPv4.

Utilizarea IPv6 în Advanced Direct Connect

Da, e păcat că utilizatorii pasivi trebuie să aștepte. Dar nu se poate ajuta acest lucru, deoarece adresa IP vizibilă nu are o semnificație specială – de aceea sunt pasivi.

Utilizarea IPv6 în Advanced Direct Connect

Uite! Clientul activ trimite comanda pasivă?.. Логично было бы ожидать «зависшего» соединения, но нет, оно получается на условиях A4.

De ce așa? Ne adresăm dezvoltatorului și primim răspuns:

CTM nu este bine dacă cealaltă persoană nu suportă IPv6

Și nu poți contrazice! Dar aceasta necesită deja o logică internă, independentă de hub (vezi codul aici și aici). Totuși, nu se poate ajuta pasivii, deoarece

Mod activ = TCPx + IPx

Încercările de a conecta clienții cu seturi comune de suport pentru IPv6 arată astfel. Reamintesc, a obține PA pentru DC++ nu am reușit.

Utilizarea IPv6 în Advanced Direct Connect

Și iarăși surpriză. Se pare că modul pasiv pentru IPv6, pe care îl demonstrează DC++, este fie o înșelătorie intenționată, fie un bug.

Ce urmează?

În prezent, există exact două metode de a rezolva toate problemele posibile de conectare a utilizatorilor în moduri diferite și cu diferite seturi de suport pentru protocolul IP.

Primul – dezactivați complet IPv6 sau, dimpotrivă, creați un hub care funcționează doar prin el.

Al doilea – iată acest extensie, care abia acum ajunge în stadiul de testare.

Ei bine, și, dacă nu doriți să configurați modul activ pentru a funcționa în DC, amintiți-vă:

Cine are, i se va da; iar cine nu are, îi va fi luat chiar și ceea ce crede că are. Lc. 8:18

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster