Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
qcnhy opened this issue Dec 29, 2023 · 25 comments
Open

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

qcnhy opened this issue Dec 29, 2023 · 25 comments
Labels
good first issue Good for newcomers

Comments

@qcnhy
Copy link

qcnhy commented Dec 29, 2023

您好,关于 多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,因此暂时无法提出意见,希望其他网友补充。

@xubiaolin
Copy link
Owner

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

@qcnhy
Copy link
Author

qcnhy commented Dec 29, 2023

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

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

@qcnhy
Copy link
Author

qcnhy commented Dec 29, 2023

大概简单了解了一下目前的原理:
私有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
Copy link
Author

qcnhy commented Dec 29, 2023

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

@qcnhy
Copy link
Author

qcnhy commented Dec 29, 2023

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

@qcnhy
Copy link
Author

qcnhy commented Dec 29, 2023

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

@MINGERTAI
Copy link

MINGERTAI commented Dec 29, 2023

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

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

@qcnhy
Copy link
Author

qcnhy commented Dec 30, 2023

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

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

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

@MINGERTAI
Copy link

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

@cailiang9
Copy link

cailiang9 commented Jan 19, 2024

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

@qcnhy
Copy link
Author

qcnhy commented Jan 19, 2024

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

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

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

@qcnhy
Copy link
Author

qcnhy commented Jan 19, 2024

内网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服务器 有什么区别呢?

@c0mm4nd
Copy link

c0mm4nd commented Feb 1, 2024

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

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

@cailiang9
Copy link

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

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

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

@c0mm4nd
Copy link

c0mm4nd commented Feb 5, 2024

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

@xubiaolin
Copy link
Owner

大概简单了解了一下目前的原理: 私有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
Copy link
Owner

内网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 xubiaolin added the good first issue Good for newcomers label Feb 6, 2024
@qcnhy
Copy link
Author

qcnhy commented Feb 6, 2024

内网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
Copy link
Author

qcnhy commented Feb 6, 2024

内网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可以跑满,十分流畅

@ne7359
Copy link

ne7359 commented Feb 7, 2024

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

@cailiang9
Copy link

cailiang9 commented Feb 29, 2024

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

@qcnhy
Copy link
Author

qcnhy commented Feb 29, 2024

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

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

@cailiang9
Copy link

cailiang9 commented Apr 17, 2024

内网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时,感觉会有些奇怪,如何处理冲突?

@icerxkx
Copy link

icerxkx commented Aug 9, 2024

有同样的需求:同时连接公共和私有的planet。1月份安装docker的时候直接就可以同时连接了,但7月底重装之后,客户端就只能连接私有planet,公共网络一直提示“REQUESTING_CONFIGURATION”

@Xuanyuan-jiang
Copy link

也有同样需求,请问多plant有在进度中吗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

8 participants