Korištenje IPv6 s Advanced Direct Connect

Zanimljivo je pratiti razvoj mreže za razmjenu datoteka, ali je još zanimljivije učestvovati u njoj.

Danas, instaliranje i puštanje u rad modernog NMDC hub, novopečeni administrator dobija pristup gotovo svim razvojima i iskustvu koje su njegovi prethodnici akumulirali u ovoj oblasti. Ima sistem spreman za proširenje i prilagođavanje, uključujući i uz pomoć brojnih skripti.

С ADC čvorišta inače. Dizajn ovog protokola treba da bude proširiv. Želite li novu funkciju? Pa ponudite, promovirajte, implementirajte, implementirajte, iskoristite.

Prevedi na engleski

Kao rezultat toga, možete, naravno, izvaditi gotov čvorište iz kutije, ali jednostavno pokretanje i zaboravljanje na njega neće biti dobro. Proširivost u istorijskom kontekstu takođe podrazumeva prisustvo različitog broja različitih funkcija klijentskog i serverskog softvera, u zavisnosti od verzije. A ono što će raditi bez problema za jednog korisnika može biti nekompatibilno s klijentom drugog, i to se mora uzeti u obzir.

Ovo se dogodilo sa IPv6. Starac NMDC ne zna to u principu, ali sam ADC je spreman za to. Međutim, nije sve tako jednostavno.

Samo malo teorije

"Aktivni" korisnik može prihvatiti dolazne veze. Zapravo, zahtjev za povezivanje koji dolazi od njega je zapravo pozivnica.

"Pasivni" korisnik općenito može koristiti samo odlazne zahtjeve. Kroz čvorište on pita aktivni korisnik pošalje pozivnicu - i veza je uspostavljena.

Korištenje IPv6 s Advanced Direct Connect

I da, ovaj mehanizam ne zavisi od verzije korišćenog IP protokola.

Labud, rak i štuka

Hajde da pričamo o klijentskom softveru.

IPv6 podrška DC++ je eksperimentalne prirode. Za njega ne postoje posebna podešavanja, a tim više me je iznenadilo da vidim različite režime rada za različite verzije IP-a, sa pasivnim samo za šestu, ali to nije tačno.

Nije bilo moguće dobiti aktivni mod tokom ručne konfiguracije čak ni kada se eksplicitno koristi IP domen sa AAAA zapisom kao WAN, ali u automatskom režimu koristeći UPnP sve je radilo kako se očekivalo.

AirDC++ takođe ima podršku za IPv6 veze, a implementiran je potpuno odvojeno od IPv4. Štaviše, ovaj klijent modificira korisničke oznake na način da istovremeno prikazuje načine rada za oba IP protokola. Sama čvorišta (još uvijek) ne znaju kako to učiniti, što je šteta.

Moram odmah da rezervišem: AirDC++ to radi sam i za sebe. Ubuduće ću, radi praktičnosti, koristiti kombinacije poput AP ili AA kao indikaciju aktivnih ili pasivnih načina rada za IPv4 i IPv6, respektivno, umjesto njihovog prikaza u stvarnoj klijentskoj oznaci na stvarnom čvorištu. Važno je.

U našem eksperimentu ćemo koristiti FlylinkDC++ kao klijent koji uopće nije upoznat sa IPv6. Takođe treba napomenuti da podrška NATT za njega u vrijeme pisanja ovog članka nigdje nije implementiran.

Начало

Prije svega, osvrćemo se na očigledno nemoguće veze između korisnika različitih verzija IP protokola. Koristiće se za test Čvorište spremno za IPv6 sa resursnim A- i AAAA-zapisima za ime domene koji djeluju kao njegova adresa.

Korištenje IPv6 s Advanced Direct Connect

Imajte na umu da kada (zapravo) pokušate da kontaktirate korisnika sa IP adresom verzije XNUMX, prikazuje se greška.

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

U ljudskom prijevodu zvuči kao

P4: – Mogu li da se zalepim za tebe?
A6: – Držite se!
P4: – Život je bol 0_0

kratak rječnik, ako je potrebno, ovdje.

A ako je obrnuto, veza se pokreće A4, tada se ne prikazuje greška i veza jednostavno visi.

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

Budi, ne izgleda

Ono što je važno je način povezivanja prikazan na čvorištu.

Klijenti bez podrške za IPv6 će morati da vide korisnike povezane preko njega kao jasno pasivne, jednostavno zato što se čvorište ne popunjava za njih I4 ili I6 polje shodno tome.

Korištenje IPv6 s Advanced Direct Connect
FlylinkDC++ vs. IPv6

U stvarnosti, situacija je jednostavnija i složenija u isto vrijeme.

Korištenje IPv6 s Advanced Direct Connect
AirDC++ vs. IPv6

Lakše jer IPv6 ima prednost nad IPv4, i to je razumljivo. Preko njega (iako je moguće nadjačavanje pomoću odgovarajuće opcije) će se uspostaviti veza sa čvorištem, a aktivni klijent će je ponuditi pasivnom klijentu za povezivanje.

Teže je, jer ako na čvorištu postoje korisnici sa podrškom za IPv6, ali su povezani striktno preko IPv4 adrese, onda...

Korištenje IPv6 s Advanced Direct Connect

... onda se možete povezati s njima (nasumično) bez da uopće imate IPv4.

Imajte na umu da je udaljeni klijent sebe označio kao imovinu, ali se tretira kao obaveza. Zašto?

Baci ga u zamah

Pokušajmo sada povezati klijente s različitim, ali uobičajenim u smislu IPv4, skupovima podrške IP protokola.

Korištenje IPv6 s Advanced Direct Connect

Da, šteta što pasivni korisnici moraju pušiti sa strane. Ali tome se ne može pomoći, jer njihova vidljiva IP adresa nije posebno bitna - zato su oni u obavezi.

Korištenje IPv6 s Advanced Direct Connect

Bah! Aktivni klijent šalje pasivna komanda?.. Logično bi bilo očekivati ​​"zaglavljenu" vezu, ali ne, ispada pod uslovima A4.

Žašto je to? Kontaktiramo programera i dobijamo odgovor:

CTM nije dobro ako drugi korisnik ne podržava IPv6

I ne možete se raspravljati! Ali za to je potrebna unutrašnja logika, neovisna o čvorištu (vidi kod ovdje и ovdje). I dalje je nemoguće pomoći pasivima, jer

Aktivan način rada = TCPx+IPx

Pokušaji povezivanja između klijenata sa uobičajenim skupovima IPv6 IP podrške izgledaju ovako. Da vas podsjetim, ostvarite PA Nisam uspio za DC++.

Korištenje IPv6 s Advanced Direct Connect

I opet iznenađenje. Ispostavilo se da je pasivni način za IPv6, koji DC++ demonstrira, ili namjerna lažna ili greška.

Što je sljedeće?

Trenutno postoje tačno dva načina za rješavanje svih mogućih problema povezivanja korisnika na različite načine i sa različitim skupovima podrške za IP protokol.

Prvi je potpuno isključiti IPv6 ili, obrnuto, stvoriti čvorište za rad samo preko njega.

Drugi je ovaj proširenje, koji se upravo približava fazi testiranja.

Pa, ako ste previše lijeni da postavite aktivni mod za rad u DC-u, zapamtite:

Ko ima, šta će mu se dati, a ko nema, oduzeće mu se i ono što misli da ima. UREDU. 8:18

izvor: www.habr.com

Dodajte komentar