几个月前,我们在博客上分享了一篇关于 Yggdrasil 的文章,这是一个 IPv6网络的早期实施它通过通常的全球网络分离,并从一端到另一端完全加密。 它很轻, 自组织,多平台兼容 并允许几乎任何 IPv6 兼容的应用程序与其他 Yggdrasil 节点安全地通信。
之所以谈论它,是因为最近宣布推出新版本的Yggdrasil 0.5,它实现了许多改进,最重要的是,涵盖了之前版本0.4中发现的设计问题。
Yggdrasil 0.5 有什么新内容?
在 Yggdrasil 0.5 博客文章中,提到 解决了各种问题 被检测到的 在不同的单独组件中 这个实现,因为例如 现在提供了一种新的路由方案,该方案不向后兼容 (使用 Yggdrasil 0.5 的节点无法与基于 Yggdrasil 0.4 的主机进行通信),但它解决了 0.4 分支中存在的大部分稳定性和可扩展性问题,并且还显着减少了内存消耗,并在没有网络活动的情况下减少了流量。
有人提到 新的实现使用概率布隆过滤器结构 跟踪链接和节点。 分布式哈希表(DHT)不再用于在树形网络中交换路由信息和链接公钥。
为了保持本地一致性并减少对根节点路由的依赖, 节点现在单独通信 有关每个链接的信息,在 CRDT 结构中跟踪。 使用贪婪路由而不是源路由(请求被发送到最近的邻居)。
用于连接协商和多播的格式 它们经过重新设计以获得更好的可扩展性。 连接处理代码经过重新设计,可以更可靠地跟踪对等状态。 为每个配置对提供重新连接间隔的独立跟踪。
为了检测故障,不是定期发送单独的保持活动请求,而是使用消息来确认收到流量,从而允许您在网络停机期间摆脱流量(例如,减少网络消耗)。交通排除)。 处于空闲模式)。
在一部分 新功能,突出显示已添加 使用密码验证与对等方的连接的能力。 密码是使用“password=”参数指定的。 值得注意的是,这不允许网络隔离:如果节点愿意,它们仍然可以与网络的其余部分进行通信,并且可达性仍然是可传递的。 这使得更容易限制谁可以在子网内自动连接或设置公共节点,而不允许找到它的每个人进行连接。
新版本中另一个引人注目的变化是 添加了使用 QUIC 协议的能力 基于UDP与对等点交互。 要使用 QUIC,您必须在 Listen 和 Peers 指令中指定 quic:// URI 方案,但 QUIC 支持尚未像 TCP 和 TLS 那样经过充分测试。
除了它 添加了 PrivateKeyPath 选项,它允许私钥以 PEM 格式存储,与主配置文件分开。 要将密钥导出到单独的文件,可以使用“-exportkey”选项。
最后,如果您有兴趣了解有关此新版本的更多信息,可以查阅详细信息 以下链接。
如何安装Yggdrasil?
对于那些有兴趣使用此实现的人,您应该知道 Yggdrasil 可以在不同 Linux 发行版的一些存储库中找到。
例如,在 Debian、Ubuntu 及其衍生版本中,您只需键入以下命令即可安装 Yggdrasil:
sudo apt-get install yggdrasil
完成此操作后,现在我们只需通过以下方式启用服务:
sudo systemctl enable yggdrasil sudo systemctl start yggdrasil
对于基于 RHEL 和 Fedora 的发行版,只需键入以下内容:
dnf copr enable neilalexander/yggdrasil-go dnf install yggdrasil
关于配置和实现,因为该主题有点广泛,我邀请您访问以下链接,您可以在其中找到有关它的所有信息。 链接是这个。