Usando IPv6 con Advanced Direct Connect

É interesante ver o desenvolvemento da rede de intercambio de ficheiros, pero é aínda máis interesante participar nela.

Hoxe, instalando e lanzando un moderno NMDC hub, o administrador recén acuñado ten acceso a case todos os desenvolvementos e experiencia acumulados nesta área dos seus predecesores. Ten un sistema preparado para a súa expansión e personalización, incluso coa axuda de numerosos scripts.

С ADC hubs doutro xeito. O deseño deste protocolo pretende ser extensible. Queres unha nova función? Pois ofréceo, promociona, implementa, implementa, utilízao.

Traducir ao inglés

Como resultado, pode, por suposto, sacar un concentrador listo da caixa, pero simplemente lanzalo e esquecelo non será bo. A extensibilidade nun contexto histórico implica tamén a presenza dun número diferente de funcións diferentes do software cliente e servidor, dependendo da versión. E o que funcionará sen problemas para un usuario pode ser incompatible co cliente doutro, e iso hai que telo en conta.

Isto pasou con IPv6. O vello NMDC non sabe como facelo en principio, pero o propio ADC está preparado para iso. Non obstante, non todo é tan sinxelo.

Só un pouco de teoría

O usuario "activo" pode aceptar conexións entrantes. En realidade, a solicitude de conexión que procede del é realmente invitación.

Un usuario "pasivo" xeralmente só pode usar solicitudes de saída. A través do hub el pregunta o usuario activo envía unha invitación e establécese a conexión.

Usando IPv6 con Advanced Direct Connect

E si, este mecanismo non depende da versión do protocolo IP empregado.

Cisne, lagostino e lucio

Falemos do software cliente.

Soporte IPv6 DC++ é de natureza experimental. Non hai configuracións separadas para iso, e foi aínda máis sorprendente para min ver diferentes modos de funcionamento para diferentes versións de IP, con pasivo só para a sexta, pero isto non é preciso.

Non foi posible obter o modo activo durante a configuración manual aínda que se utilizase de forma explícita un dominio IP cun rexistro AAAA como WAN, pero no modo automático usando UPnP todo funcionou como se esperaba.

AirDC++ tamén ten soporte para conexións IPv6, e está implementado por separado do IPv4. Ademais, este cliente modifica as etiquetas de usuario de forma que se mostren os modos de funcionamento dos dous protocolos IP simultáneamente. Os propios centros non saben como facelo (aínda), o que é unha mágoa.

Debo facer unha reserva inmediatamente: AirDC++ fai isto só e por si mesmo. No futuro, por comodidade, usarei combinacións como AP ou AA como unha indicación dos modos de operación activos ou pasivos para IPv4 e IPv6, respectivamente, en lugar da súa visualización na etiqueta do cliente real do hub real. É importante.

No noso experimento utilizaremos FlylinkDC++ como un cliente nada familiarizado con IPv6. Tamén hai que destacar ese apoio NATT para el no momento de escribir este artigo non estaba implementado en ningures.

Comezar

En primeiro lugar, analizaremos as conexións obviamente imposibles entre usuarios de diferentes versións do protocolo IP. Utilizarase para a proba Hub preparado para IPv6 con rexistros de recursos A e AAAA para o nome de dominio que actúan como o seu enderezo.

Usando IPv6 con Advanced Direct Connect

Teña en conta que cando (en realidade) tenta poñerse en contacto cun usuario cun enderezo IP da versión XNUMX, aparece un erro.

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

Na tradución humana parece

P4: – Podo agarrarme a ti?
A6: - ¡Agárrate!
P4: – A vida é dor 0_0

Un pequeno dicionario, se é necesario, aquí.

E se é ao revés, e se inicia a conexión A4, entón non se mostra ningún erro e a conexión simplemente colócase.

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

Sexa, non parece ser

O importante é o modo de conexión que se mostra no hub.

Os clientes sen compatibilidade con IPv6 terán que ver aos usuarios conectados a través del como claramente pasivos, simplemente porque o hub non se enche para eles. I4 ou I6 campo en consecuencia.

Usando IPv6 con Advanced Direct Connect
FlylinkDC++ vs. IPv6

En realidade, a situación é máis sinxela e complexa ao mesmo tempo.

Usando IPv6 con Advanced Direct Connect
AirDC++ vs. IPv6

Máis doado porque IPv6 ten prioridade sobre IPv4, e iso é comprensible. É a través del (aínda que a anulación está dispoñible mediante a opción correspondente) que se establecerá a conexión co concentrador, e o cliente activo ofrecerao ao cliente pasivo para a súa conexión.

É máis difícil, porque se hai usuarios con compatibilidade con IPv6 no concentrador, pero están conectados estrictamente a través dun enderezo IPv4, entón...

Usando IPv6 con Advanced Direct Connect

... entón podes conectarte a eles (ao chou) sen ter IPv4.

Teña en conta que o cliente remoto designouse a si mesmo como un activo, pero trátase como un pasivo. Por que?

Bótao nun columpio

Agora imos tentar conectar clientes con diferentes, pero comúns en termos de IPv4, conxuntos de compatibilidade de protocolo IP entre si.

Usando IPv6 con Advanced Direct Connect

Si, é unha mágoa que os usuarios pasivos teñan que fumar á marxe. Pero isto non se pode evitar, xa que o seu enderezo IP visible non é particularmente importante, por iso son pasivos.

Usando IPv6 con Advanced Direct Connect

Bah! O cliente activo envía comando pasivo?.. Sería lóxico esperar unha conexión "atascada", pero non, resulta nas condicións A4.

Por que é iso? Contactamos co programador e obtemos a resposta:

CTM non é bo se o outro usuario non admite IPv6

E non podes discutir! Pero isto require unha lóxica interna, independente do hub (ver código aquí и aquí). Aínda é imposible axudar aos pasivos, porque

Modo activo = TCPx+IPx

Os intentos de conectarse entre clientes con conxuntos comúns de compatibilidade IPv6 IP teñen este aspecto. Permíteme lembrarche, lograr PA Non tiven éxito para DC++.

Usando IPv6 con Advanced Direct Connect

E outra vez unha sorpresa. Resulta que o modo pasivo para IPv6, que demostra DC++, é unha falsificación deliberada ou un erro.

Cal é o próximo?

Actualmente, hai exactamente dúas formas de resolver todos os posibles problemas ao conectar usuarios en diferentes modos e con diferentes conxuntos de compatibilidade con protocolos IP.

O primeiro é silenciar IPv6 por completo ou, pola contra, crear un concentrador para funcionar só a través del.

O segundo é este expansión, que acaba de achegarse á fase de proba.

Ben, se es demasiado preguiceiro para configurar o modo activo para traballar en DC, lembre:

A quen ten, o que se lle dará, e a quen non ten, ata o que pensa que ten, serálle quitado. OK. 8:18

Fonte: www.habr.com

Engadir un comentario