docker-zerotier-planet icon indicating copy to clipboard operation
docker-zerotier-planet copied to clipboard

关于 多planet支持 的应用和意见

Open qcnhy opened this issue 1 year ago • 25 comments

您好,关于 多planet支持 的使用场景,近期本人在工作中有相应的需求,特此提出意见希望作者可以参考或者采纳,非常感谢!

  1. 私有planet与官方planet同时使用 在本人今日的测试中,现在的情况应该是这样的: 客户端连接私有planet,而私有planet又连接官方planet。因此该需求目前是可以实现的。 网友的需求应该是:客户端->官方planet,私有planet->官方planet,当然原有的客户端->私有planet->官方planet这条链路也不应该去除。或者可以按需选择。其实难点在于planet文件的解析上,相信作者已经实现可以任意调整planet文件的内容。
  2. 多私有planet同时使用 该情况下还有两种场景: a. 多私有planet相同配置文件 b. 多私有planet不通配置文件 前者有其他网友通过复制整个docker容器实现,但planet的IP配置似乎暂时没有实现,因此该方法是否有效还有待考证。 后者在本人的使用场景中是客户有自己搭建planet,我自己也有搭建planet。其实两者是不互通的,都是私建的planet,通过修改客户端的planet文件实现连接,而同时使用就有必要性了,可以省去频繁手动去替换文件、重启服务的麻烦。

思路方案: 上述场景虽然只有几种,实现起来涉及到多个机器中planet文件的配置未必简单。 希望可以提供planet文件的合并编辑功能,最简易的的办法让用户在客户端的planet文件中自定义,至于私有planet之间的互联……由于不清楚实现原理是否简单替换planet,因此暂时无法提出意见,希望其他网友补充。

qcnhy avatar Dec 29 '23 07:12 qcnhy

感谢你的建议,多planet实现原理不复杂,只是一直没时间开发。后续看时间安排吧。

xubiaolin avatar Dec 29 '23 07:12 xubiaolin

感谢你的建议,多planet实现原理不复杂,只是一直没时间开发。后续看时间安排吧。

https://blog.csdn.net/hey_lie/article/details/131304142 https://github.com/zerotier/ZeroTierOne/tree/dev/attic/world 看到了官方提供的手动编译planet的东西,其实还是实现思路的问题,高级用户已经可以自力更生了

qcnhy avatar Dec 29 '23 07:12 qcnhy

大概简单了解了一下目前的原理: 私有planet中的 image 这应该是官方的planet 而生成的planet image

去除了其他官方的planet。 因此就导致了客户端到官方的链路变成 客户端->私有planet->官方planet

官方的源码中 image 不难进行planet文件的修改。 但planet之间的数据同步原理,我还不清楚,如何用同一个ztncui去控制多个不同identity.public或者相同identity.public的私有结点,这可能是一个问题。 相同的identity.public可以有多个ip,也就是主楼说的2.a.方案 不同的identity.public分别在多个ip,也就是主楼说的2.b.方案 这样的多个根结点数据不同步,管理控制结构有点混乱的,大部分人应该是难以理解的。 如果要让多个私有的planet相互连接,这个配置过程是复杂的。

我比较倾向的且正在尝试的方案是,对用于客户端的planet文件进行按需编辑,搭建服务端时给出identity.public而不自动生成固定的planet,我觉得该方案的可行性会比较高。

qcnhy avatar Dec 29 '23 08:12 qcnhy

image 目前的官方planet节点已与开源代码中不对应,是否难以替换官方的planet节点呢?

qcnhy avatar Dec 29 '23 08:12 qcnhy

艹 恕我用010分析不出来官方的planet文件

qcnhy avatar Dec 29 '23 08:12 qcnhy

我c 现在的难点应该是解析planet文件获得identity.public文件、IP地址、端口号信息,从而重建planet文件。

qcnhy avatar Dec 29 '23 08:12 qcnhy

必须用ZeroTier One安装在宿主机上的identity.public创建planet文件,不然会是一个摆式,

我搭建了多台ZeroTier,构建多台IP&planet合一的planet文件,非常好用。现在不会成为一个垃圾

MINGERTAI avatar Dec 29 '23 09:12 MINGERTAI

必须用ZeroTier One安装在宿主机上的identity.public创建planet文件,不然会是一个摆式,

我搭建了多台ZeroTier,构建多台IP&planet合一的planet文件,非常好用。现在不会成为一个垃圾

理解 您这个操作多个Planet使用同一个公钥 在控制方面,每个planet如何管理网络呢?

qcnhy avatar Dec 30 '23 21:12 qcnhy

内网ip地址设置一样:比如A服务器 Windows10 内网ip地址145.12.45.10, 那在B台服务器 Windows10 内网ip地址也设置为145.12.45.10,我已经在用,二台服务开启,正常使用,关闭A台服务正常使用,关闭B台服务正常使用。但是:构建多台IP合一的planet文件 双IP有没有作用我不知,反正不影响,我就多IP构建

MINGERTAI avatar Dec 31 '23 11:12 MINGERTAI

看上去不明觉厉。想不通这么做的原理 有没有更详细的配置说明?比如对应两台planet的zerotier net的ip、公网ip、port等配置。涉及隐私可适当脱敏

cailiang9 avatar Jan 19 '24 02:01 cailiang9

看上去不明觉厉。想不通这么做的原理 有没有更详细的配置说明?比如对应两台planet的zerotier net的ip、公网ip、port等配置。涉及隐私可适当脱敏

对原理理解不够透彻,目前采用的两级Planet的方式。将我自建的planet的上级planet设置为客户自建的planet,这样做之后可以同时使用 自己的 和客户的 网络

而两台自建的planet的方式,可以通过将两个节点同时加进planet文件实现的,但ui统一控制问题目前暂时没有研究

qcnhy avatar Jan 19 '24 07:01 qcnhy

内网ip地址设置一样:比如A服务器 Windows10 内网ip地址145.12.45.10, 那在B台服务器 Windows10 内网ip地址也设置为145.12.45.10,我已经在用,二台服务开启,正常使用,关闭A台服务正常使用,关闭B台服务正常使用。但是:构建多台IP合一的planet文件 双IP有没有作用我不知,反正不影响,我就多IP构建

这两个AB服务器作为planet么?那该服务旨在解决内网穿透,虚拟局域网构建问题,如若已经有内网ip还需要这个干啥? 再者 AB两个服务器同时使用不会出现ip冲突吗? 最后 AB服务器 IP相同 那跟只有一个A服务器 有什么区别呢?

qcnhy avatar Jan 19 '24 07:01 qcnhy

我测试了双planet服务器(分开搭建本仓库docker分开ztncui管理两个网络)会导致一个服务器变leaf,无论是否断开/连接那个变leaf服务器的网络都一样 image

如图我已退出A上网络只连接B上网络,B仍是Leaf

c0mm4nd avatar Feb 01 '24 20:02 c0mm4nd

我测试了双planet服务器(分开搭建本仓库docker分开ztncui管理两个网络)会导致一个服务器变leaf,无论是否断开/连接那个变leaf服务器的网络都一样 image

如图我已退出A上网络只连接B上网络,B仍是Leaf

方便公布多planet的代码吗? 关闭A之后,其他节点之间能否正常通讯?如果b只是显示leaf,但仍有planet作用就好了。

cailiang9 avatar Feb 02 '24 01:02 cailiang9

我自己用这个生成的 https://github.com/c0mm4nd/zerotier-planet-gen ,借鉴这个仓库的原来的planet生成方式。 @cailiang9

c0mm4nd avatar Feb 05 '24 13:02 c0mm4nd

大概简单了解了一下目前的原理: 私有planet中的 image 这应该是官方的planet 而生成的planet image

去除了其他官方的planet。 因此就导致了客户端到官方的链路变成 客户端->私有planet->官方planet

官方的源码中 image 不难进行planet文件的修改。 但planet之间的数据同步原理,我还不清楚,如何用同一个ztncui去控制多个不同identity.public或者相同identity.public的私有结点,这可能是一个问题。 相同的identity.public可以有多个ip,也就是主楼说的2.a.方案 不同的identity.public分别在多个ip,也就是主楼说的2.b.方案 这样的多个根结点数据不同步,管理控制结构有点混乱的,大部分人应该是难以理解的。 如果要让多个私有的planet相互连接,这个配置过程是复杂的。

我比较倾向的且正在尝试的方案是,对用于客户端的planet文件进行按需编辑,搭建服务端时给出identity.public而不自动生成固定的planet,我觉得该方案的可行性会比较高。

“但planet之间的数据同步原理,我还不清楚,如何用同一个ztncui去控制多个不同identity.public或者相同identity.public的私有结点” 是否可以通过curl接口来操作每个Root Server, 使得他们的networks和members都一致?

我也没找到planet之前同步networks和members的原理,思路我觉得可以试试看。

xubiaolin avatar Feb 06 '24 08:02 xubiaolin

内网ip地址设置一样:比如A服务器 Windows10 内网ip地址145.12.45.10, 那在B台服务器 Windows10 内网ip地址也设置为145.12.45.10,我已经在用,二台服务开启,正常使用,关闭A台服务正常使用,关闭B台服务正常使用。但是:构建多台IP合一的planet文件 双IP有没有作用我不知,反正不影响,我就多IP构建

我也是这个思路试了下,确实是多个planet了,我理解只需要修改一下ztncui的代码,让他能够通过一个controller同步修改多个RootServer。

image

xubiaolin avatar Feb 06 '24 08:02 xubiaolin

内网ip地址设置一样:比如A服务器 Windows10 内网ip地址145.12.45.10, 那在B台服务器 Windows10 内网ip地址也设置为145.12.45.10,我已经在用,二台服务开启,正常使用,关闭A台服务正常使用,关闭B台服务正常使用。但是:构建多台IP合一的planet文件 双IP有没有作用我不知,反正不影响,我就多IP构建

我也是这个思路试了下,确实是多个planet了,我理解只需要修改一下ztncui的代码,让他能够通过一个controller同步修改多个RootServer。

image

恭喜大佬,多Planet指日可待了

qcnhy avatar Feb 06 '24 08:02 qcnhy

内网ip地址设置一样:比如A服务器 Windows10 内网ip地址145.12.45.10, 那在B台服务器 Windows10 内网ip地址也设置为145.12.45.10,我已经在用,二台服务开启,正常使用,关闭A台服务正常使用,关闭B台服务正常使用。但是:构建多台IP合一的planet文件 双IP有没有作用我不知,反正不影响,我就多IP构建

我也是这个思路试了下,确实是多个planet了,我理解只需要修改一下ztncui的代码,让他能够通过一个controller同步修改多个RootServer。 image

恭喜大佬,多Planet指日可待了

目前单机Planet已经可以秒连,家宽30M可以跑满,十分流畅

qcnhy avatar Feb 06 '24 09:02 qcnhy

我的。两台服务器,非常好用,完全去除官方的Planet,连a台b台就成了moon与Planet,安卓手机上显示叶,中继,根。开始时自己不会搞,还说是垃圾,简直无知!!!!!!!!!!!!!!!!简直完爆

ne7359 avatar Feb 07 '24 12:02 ne7359

这里的私有planet是指moon吗?我之前实验过自建planet+moon,关闭planet之后,moon开着没有用。是因为缺少了network信息? 所以将member信息复制到两边就有用了?

cailiang9 avatar Feb 29 '24 10:02 cailiang9

这里的私有planet是指moon吗?我之前实验过自建planet+moon,关闭planet之后,moon开着没有用。是因为缺少了network信息? 所以将member信息复制到两边就有用了?

不太清楚 cotrallor的原理 可能 或许 是吧

qcnhy avatar Feb 29 '24 17:02 qcnhy

内网ip地址设置一样:比如A服务器 Windows10 内网ip地址145.12.45.10, 那在B台服务器 Windows10 内网ip地址也设置为145.12.45.10,我已经在用,二台服务开启,正常使用,关闭A台服务正常使用,关闭B台服务正常使用。但是:构建多台IP合一的planet文件 双IP有没有作用我不知,反正不影响,我就多IP构建

这个145.12.45.10是指zerotier的虚拟ip吗? 如果是这样,有些理解了。 但是这样controller请求写member时,感觉会有些奇怪,如何处理冲突?

cailiang9 avatar Apr 17 '24 07:04 cailiang9