Utilizarea IPv6 cu Advanced Direct Connect

Este interesant să urmăriți dezvoltarea rețelei de partajare a fișierelor, dar este și mai interesant să participați la ea.

Astăzi, instalarea și lansarea unui modern NMDC hub, noul administrator are acces la aproape toate evoluțiile și experiența acumulate în acest domeniu a predecesorilor săi. Are un sistem pregătit pentru extindere și personalizare, inclusiv cu ajutorul a numeroase scripturi.

С ADC hub-uri altfel. Designul acestui protocol este destinat să fie extensibil. Doriți o funcție nouă? Ei bine, oferă-l, promovează-l, implementează-l, implementează-l, folosește-l.

Traduce in engleza

Ca rezultat, puteți, desigur, să scoateți din cutie un hub gata făcut, dar pur și simplu să-l lansați și să uitați de el nu va fi bine. Extensibilitatea într-un context istoric implică și prezența unui număr diferit de funcții diferite ale software-ului client și server, în funcție de versiune. Și ceea ce va funcționa fără probleme pentru un utilizator poate fi incompatibil cu clientul altuia, iar acest lucru trebuie luat în considerare.

Acest lucru s-a întâmplat cu IPv6. Bătrânul NMDC nu știe cum să o facă în principiu, dar ADC însuși este pregătit pentru asta. Cu toate acestea, nu toate sunt atât de simple.

Doar puțină teorie

Utilizatorul „activ” poate accepta conexiuni de intrare. De fapt, cererea de conectare care vine de la acesta este de fapt invitație.

Un utilizator „pasiv” poate folosi, în general, numai cererile trimise. Prin hub el Cereri utilizatorul activ trimite o invitație - și se stabilește conexiunea.

Utilizarea IPv6 cu Advanced Direct Connect

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

Lebădă, raci și știucă

Să vorbim despre software-ul client.

Suport IPv6 DC ++ este de natură experimentală. Nu există setări separate pentru el și a fost cu atât mai surprinzător pentru mine să văd diferite moduri de operare pentru diferite versiuni de IP, cu pasiv doar pentru a șasea, dar acest lucru nu este exact.

Nu a fost posibil să obțineți modul activ în timpul configurării manuale, chiar și atunci când utilizați în mod explicit un domeniu IP cu o înregistrare AAAA ca WAN, dar în modul automat folosind UPnP totul a funcționat conform așteptărilor.

AirDC ++ are și suport pentru conexiuni IPv6 și este implementat complet separat de IPv4. Mai mult, acest client modifică etichetele utilizatorului în așa fel încât să afișeze modurile de operare pentru ambele protocoale IP simultan. Hub-urile în sine nu știu cum să facă acest lucru (încă), ceea ce este păcat.

Trebuie să fac imediat o rezervare: AirDC++ face asta singur și pentru sine. Pe viitor, pentru comoditate, voi folosi combinații precum AP sau AA ca o indicație a modurilor de operare active sau pasive pentru IPv4 și, respectiv, IPv6, mai degrabă decât afișarea lor în eticheta client real de pe hub-ul real. Este important.

În experimentul nostru vom folosi FlylinkDC ++ ca un client deloc familiarizat cu IPv6. De asemenea, trebuie remarcat faptul că sprijinul NATT pentru el la momentul scrierii acestui articol nu era implementat nicăieri.

Home

În primul rând, ne vom uita la conexiunile evident imposibile între utilizatorii diferitelor versiuni ale protocolului IP. Va fi folosit pentru test Hub gata pentru IPv6 cu resursa A- și AAAA-records pentru numele de domeniu acționând ca adresă.

Utilizarea IPv6 cu Advanced Direct Connect

Vă rugăm să rețineți că atunci când încercați (de fapt) să contactați un utilizator cu o adresă IP versiunea XNUMX, este afișată 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

În traducerea umană sună ca

P4: – Pot să mă agăț de tine?
A6: – Agățați-vă!
P4: – Viața este durere 0_0

Un scurt dicționar, dacă este necesar, aici.

Și dacă este invers și conexiunea începe A4, atunci nu se afișează nicio eroare și pur și simplu conexiunea se blochează.

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

Fii, nu pare a fi

Important este modul de conectare afișat pe hub.

Clienții fără suport IPv6 vor trebui să vadă utilizatorii conectați prin intermediul acestuia ca fiind în mod clar pasivi, pur și simplu pentru că hub-ul nu se populează pentru ei I4 sau I6 câmp în consecință.

Utilizarea IPv6 cu Advanced Direct Connect
FlylinkDC++ vs. IPv6

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

Utilizarea IPv6 cu Advanced Direct Connect
AirDC++ vs. IPv6

Mai ușor, deoarece IPv6 are prioritate față de IPv4 și este de înțeles. Prin intermediul acestuia (deși override este disponibilă folosind opțiunea corespunzătoare) se va stabili conexiunea la hub, iar clientul activ o va oferi clientului pasiv pentru conectare.

Este mai dificil, pentru că dacă există utilizatori cu suport IPv6 pe hub, dar sunt conectați strict printr-o adresă IPv4, atunci...

Utilizarea IPv6 cu Advanced Direct Connect

... atunci vă puteți conecta la ei (la întâmplare) fără să aveți deloc IPv4.

Vă rugăm să rețineți că clientul de la distanță sa desemnat ca un activ, dar este tratat ca o datorie. De ce?

Aruncă-l într-un leagăn

Acum să încercăm să conectăm clienți cu seturi diferite, dar comune în ceea ce privește IPv4, de suport pentru protocolul IP între ele.

Utilizarea IPv6 cu Advanced Direct Connect

Da, este păcat că utilizatorii pasivi trebuie să fumeze pe margine. Dar acest lucru nu poate fi ajutat, deoarece adresa lor IP vizibilă nu este deosebit de importantă - de aceea sunt datorii.

Utilizarea IPv6 cu Advanced Direct Connect

Bah! Clientul activ trimite comandă pasivă?.. Ar fi logic să ne așteptăm la o conexiune „blocată”, dar nu, se dovedește în condițiile A4.

De ce este asta? Contactăm dezvoltatorul și primim răspunsul:

CTM nu este bun dacă celălalt utilizator nu acceptă IPv6

Și nu te poți certa! Dar aceasta necesită o logică internă, independentă de hub (vezi codul aici и aici). Este încă imposibil să ajuți pasivii, pentru că

Modul activ = TCPx+IPx

Încercările de conectare între clienți cu seturi comune de suport IPv6 IP arată astfel. Lasă-mă să-ți amintesc, realizează PA Nu am reușit pentru DC++.

Utilizarea IPv6 cu Advanced Direct Connect

Și din nou o surpriză. Se pare că modul pasiv pentru IPv6, pe care DC++ îl demonstrează, este fie un fals deliberat, fie un bug.

Ce urmeaza?

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

Primul este să dezactivați complet IPv6 sau, dimpotrivă, să creați un hub care să funcționeze numai prin el.

Al doilea este acesta extensie, care tocmai se apropie de etapa de testare.

Ei bine, dacă sunteți prea leneș să configurați modul activ pentru a lucra în DC, amintiți-vă:

Cine are, ce i se va da, iar celui care nu are, chiar și ceea ce crede că are, i se va lua. BINE. 8:18

Sursa: www.habr.com

Adauga un comentariu