Použití IPv6 v Advanced Direct Connect

Sledovat vývoj souborového sdílení je zajímavé, ale ještě zajímavější je se na něm podílet.

V současnosti, když nastavujete a spouštíte moderní NMDC hub, nový administrátor získává přístup prakticky ke všem zkušenostem a znalostem jeho předchůdců. Disponuje systémem, který je připraven k rozšíření a přizpůsobení, také s pomocí mnoha skriptů.

S ADC huby jinak. Struktura tohoto protokolu předpokládá rozšiřitelnost. Chcete novou funkci? Pak navrhněte, propagujte, realizujte, implementujte, využívejte.

Translate to English

V důsledku toho můžete "z krabice" samozřejmě získat hotový hub, ale jednoduše ho spustit a zapomenout na něj by nebylo dobré. Rozšiřitelnost v historickém kontextu také zahrnuje různé funkce klientského a serverového softwaru v závislosti na verzi. A to, co funguje bez problémů jednomu uživateli, může být nekompatibilní s klientem jiného, což je třeba zohlednit.

Tak se stalo i s IPv6. Starý NMDC jej v podstatě nepodporuje, ale ADC je na něj sám o sobě připraven. Avšak, není to tak jednoduché.

Trocha teorie

"Aktivní" uživatel může přijímat příchozí spojení. Vlastně, od něj vycházející požadavek na spojení je ve skutečnosti pozvánkou.

"Pasivní" uživatel obvykle může používat pouze odchozí požadavky. Prostřednictvím hubu on žádá aktivního uživatele, aby mu poslal pozvánku – a spojení je poté navázáno.

Použití IPv6 v Advanced Direct Connect

A ano, tento mechanismus nezávisí na verzi používaného protokolu IP.

Labutě, rak a štika

Pojďme mluvit o klientském softwaru.

Podpora IPv6 v DC++ má experimentální charakter. Pro něj neexistují žádná specifická nastavení, a tím více mě překvapilo vidět různé režimy práce pro různé verze IP, přičemž pasivní je právě pro šestou, ale to není přesné.

Získat aktivní režim při ručním nastavení se nepodařilo ani při jasném použití domény s AAAA záznamem jako WAN IP, ale v automatickém režimu s použitím UPnP to fungovalo, jak mělo.

AirDC++ také podporuje IPv6 připojení, a to zcela odděleně od IPv4. Navíc tento klient modifikuje tagy uživatelů tak, aby zobrazoval režimy fungování pro oba IP protokoly současně. Samotné huby to (zatím) neumí, což je škoda.

Okamžitě musím zdůraznit: AirDC++ to dělá pouze pro sebe. V dalším pro pohodlí budu používat kombinace jako AP nebo AA jako označení pro aktivní nebo pasivní režimy fungování pro IPv4 a IPv6, nikoli jejich zobrazení v tagu skutečného klienta na skutečném hubu. To je důležité.

V našem experimentu budeme používat FlylinkDC++ jako klienta, který vůbec není obeznámen s IPv6. Je také důležité zmínit, že podpora NATT pro něj v době psaní článku nebyla nikde realizována.

Začátek

Nejdříve se podíváme na zjevně nemožná připojení mezi uživateli různých verzí IP protokolu. Pro test se bude používat IPv6 ready hub s A- a AAAA-záznamy pro doménové jméno, fungující jako jeho adresa.

Použití IPv6 v Advanced Direct Connect

Všimněte si, zde při (skutečném) pokusu o oslovení uživatele s IP adresou šesté verze se objevuje chyba.

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

V překladu do lidského jazyka to zní jako

P4: – Mohu se k tobě připojit?
A6: – Připoj se!
P4: – Život je bolest 0_0

Krátký slovníček, pokud něco chybí, zde.

A pokud naopak, a připojení iniciuje A4, chyba se nevytváří a připojení prostě „visí“.

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

Být, ne zdát se

Co je důležité, je režim připojení zobrazený na hubu.

Klienti bez podpory IPv6 by měli vidět připojené uživatele přes něj jako jednoznačně pasivní, jednoduše proto, že pro ně hub nevyplňuje I4 nebo I6 pole odpovídajícím způsobem.

Použití IPv6 v Advanced Direct Connect
FlylinkDC++ vs. IPv6

Ve skutečnosti je situace jednodušší a složitější zároveň.

Použití IPv6 v Advanced Direct Connect
AirDC++ vs. IPv6

Jednodušší, protože IPv6 má prioritu před IPv4, a to je jasné. Právě přes něj (ačkoli je k dispozici předefinování pomocí příslušné možnosti) bude navázáno připojení k hubu a jeho aktivní klient nabídne pasivnímu připojení.

Složitější, protože pokud jsou na hubu uživatelé s podporou IPv6, ale připojeni jsou výhradně přes IPv4 adresu, pak…

Použití IPv6 v Advanced Direct Connect

… lze se s nimi spojit (náhodně) vůbec bez IPv4.

Všimněte si, že vzdálený klient se označil jako aktivní, ale zpracovává se jako pasivní. Proč?

Do něj ho na houpačku

Nyní se pokusíme spojit klienty s různými, ale společnými sadami podpory protokolu IP pro IPv4.

Použití IPv6 v Advanced Direct Connect

Ano, je škoda, že pasivní uživatelé musí kouřit na straně. Ale s tím se nedá nic dělat, protože jejich viditelná IP adresa nemá zvláštní význam – proto jsou tolik pasivní.

Použití IPv6 v Advanced Direct Connect

No tak! Aktivní klient posílá pasivní příkaz?.. Логично было бы ожидать «зависшего» соединения, но нет, оно получается на условиях A4.

Proč tomu tak je? Obracíme se na vývojáře a dostáváme odpověď:

CTM není dobré, pokud druhý uživatel nepodporuje IPv6

A to se nedá popřít! Ale to už vyžaduje vnitřní logiku, nezávislou na hubu (viz kód zde a zde). Pasivům stále není možné pomoci, protože

Aktivní režim = TCPx + IPx

Pokusy o spojení mezi klienty se společnými sadami podpory protokolu IP pro IPv6 vypadají následujícím způsobem. Připomínám, že dosáhnout PA pro DC++ se mi nepodařilo.

Použití IPv6 v Advanced Direct Connect

A zase překvapení. Ukazuje se, že pasivní režim pro IPv6, který DC++ demonstruje, je buď záměrný podvod, nebo chyba.

Co dál?

V současné době existují přesně dva způsoby, jak vyřešit všechny možné problémy s připojením uživatelů v různých režimech a s různými sadami podpory protokolu IP.

První – potlačit IPv6 úplně nebo naopak vytvořit hub, který bude fungovat pouze skrze něj.

Druhý – toto rozšíření, které se právě dostává do fáze testování.

A při lenosti nastavovat aktivní režim pro práci v DC nezapomeňte:

Kdo má, tomu bude dáno, a kdo nemá, tomu bude vzato i to, co si myslí, že má. Lk. 8:18

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster