将 IPv6 与 Advanced Direct Connect 结合使用

观看文件共享网络的发展很有趣,但参与其中更有趣。

今天,安装并启动了现代化的 国家导弹防御中心 Hub 中,新任管理员几乎可以获得其前任在该领域积累的所有发展和经验。 它有一个可扩展和定制的系统,包括在众多脚本的帮助下。

С ADC 否则为集线器。 该协议的设计旨在可扩展。 您想要新功能吗? 好吧,提供它,推广它,实施它,实施它,使用它。

翻译成英文

因此,您当然可以开箱即用一个现成的集线器,但只是启动它然后忘记它是不好的。 历史背景下的可扩展性还意味着客户端和服务器软件存在不同数量的不同功能,具体取决于版本。 对于一个用户来说没有问题的工作可能与另一个用户的客户端不兼容,这一点必须考虑在内。

IPv6 就发生过这种情况。 NMDC老头不知道原理上怎么做,但是ADC本身已经做好了准备。 然而,事情并非如此简单。

只是一点理论

“活动”用户可以接受传入连接。 实际上,来自它的连接请求实际上是 邀请函.

“被动”用户通常只能使用传出请求。 他通过枢纽 要求 活动用户发送邀请 - 并且建立连接。

将 IPv6 与 Advanced Direct Connect 结合使用

是的,这种机制不依赖于所使用的 IP 协议的版本。

天鹅,癌症和派克

我们来谈谈客户端软件。

IPv6支持 DC + + 本质上是实验性的。 它没有单独的设置,更令我惊讶的是,不同版本的IP有不同的操作模式,被动仅适用于第六个,但这并不准确。

即使明确使用具有 AAAA 记录的 IP 域作为 WAN,也无法在手动配置期间获得活动模式,但在使用 UPnP 的自动模式下,一切都按预期工作。

AirDC ++ 还支持 IPv6 连接,并且它的实现完全独立于 IPv4。 此外,该客户端还修改用户标签,以便同时显示两种IP协议的操作模式。 集线器本身还不知道如何做到这一点(尚),这很遗憾。

我必须立即进行预订:AirDC++ 独自完成此操作。 将来,为了方便起见,我将使用类似的组合 AP или AA 分别作为 IPv4 和 IPv6 的主动或被动操作模式的指示,而不是它们显示在真实集线器上的真实客户端标签中。 这很重要。

在我们的实验中我们将使用 飞联DC++ 作为一个根本不熟悉 IPv6 的客户。 还应该指出的是,支持 NATT 对他来说,在撰写本文时,尚未在任何地方实施。

开始

首先,我们将看看不同版本的 IP 协议的用户之间明显不可能的连接。 将用于测试 IPv6 就绪集线器 将域名的资源 A 和 AAAA 记录作为其地址。

将 IPv6 与 Advanced Direct Connect 结合使用

请注意,当您(实际上)尝试联系具有版本 XNUMX IP 地址的用户时,会显示错误。

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

在人类翻译中听起来像

P4: – 我可以粘着你吗?
A6: – 坚持住!
P4: – 生活就是痛苦0_0

如果需要的话,一本简短的字典, 这里.

如果情况相反,并且连接启动 A4,则不会显示任何错误,并且连接只是挂起。

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

是,好像不是

重要的是集线器上显示的连接模式。

不支持 IPv6 的客户端将不得不将通过其连接的用户视为明显被动的,仅仅是因为集线器不会为他们填充 I4 или I6 相应字段。

将 IPv6 与 Advanced Direct Connect 结合使用
FlylinkDC++ 对比IPv6

事实上,情况更简单,同时也更复杂。

将 IPv6 与 Advanced Direct Connect 结合使用
AirDC++ 对比IPv6

更容易,因为 IPv6 优先于 IPv4,这是可以理解的。 通过它(尽管可以使用相应的选项覆盖),将建立与集线器的连接,并且主动客户端将其提供给被动客户端进行连接。

这更困难,因为如果集线器上有支持 IPv6 的用户,但他们严格通过 IPv4 地址连接,那么......

将 IPv6 与 Advanced Direct Connect 结合使用

...然后您就可以(随机)连接到它们,而无需使用 IPv4。

请注意,远程客户端已将自己指定为资产,但被视为负债。 为什么?

把他扔到秋千上

现在,我们尝试将具有不同但在 IPv4 方面常见的 IP 协议支持集的客户端连接起来。

将 IPv6 与 Advanced Direct Connect 结合使用

是的,遗憾的是被动用户不得不在一旁抽烟。 但这也是无济于事的,因为它们的可见 IP 地址并不是特别重要——这就是它们成为负债的原因。

将 IPv6 与 Advanced Direct Connect 结合使用

呸! 活动客户端发送 被动命令?.. 预期“卡住”连接是合乎逻辑的,但事实证明,情况并非如此 A4.

这是为什么? 我们联系了开发商并得到了答复:

CTM 如果其他用户不支持 IPv6,那就不好了

你不能争论! 但这需要内部逻辑,独立于集线器(参见代码 这里 и 这里)。 仍然无法帮助被动者,因为

活动模式 = TCPx+IPx

尝试在具有通用 IPv6 IP 支持集的客户端之间进行连接如下所示。 让我提醒你,实现 PA 我没有成功获得 DC++。

将 IPv6 与 Advanced Direct Connect 结合使用

又是一个惊喜。 事实证明,DC++ 演示的 IPv6 被动模式要么是故意伪造的,要么是一个错误。

接下来是什么?

目前,有两种方法可以解决不同模式和不同IP协议支持下的用户连接时可能出现的所有问题。

第一种方法是完全禁用 IPv6,或者相反,创建一个仅通过 IPvXNUMX 工作的集线器。

第二个是这个 延期,刚刚接近测试阶段。

好吧,如果您懒得设置活动模式以在 DC 中工作,请记住:

谁有,就给他;谁没有,连他自以为有的,也要夺走。 路加8:18

来源: habr.com

添加评论