尝试用 Zerotier 桥接两个 LAN 失败

307 天前
 cpstar

情况是这样的:

结果是,只能做到主网 OP 的 ZT 以二层桥接内外网实现直接交换数据包,而子 OP 的 ZT 本体接入没问题但子网设备最多实现 NAT 转换后接入而不能同样以二层桥接的方式互通到主网。

企图实现的目标很简单,通过 OP 构建的两个网,在网段等基本配置上实现一致的基础上,通过 ZT 做到桥接,把两个网并成一个大网。

搜了一搜,中文世界基本没有答案,英文世界里犄角旮旯里提到了关闭主网 DHCP ( ZT 配置流量控制丢弃 UDP67UDP68 )流量,但好像并没有生效,然后还有官网说明里的 FAQ 第一条 https://docs.zerotier.com/bridging/ ,但也没啥效果。也有说做不到的 https://discuss.zerotier.com/t/joining-two-zerotier-networks/14692

所以能么?怎么搞?哪里需要什么小技巧?

4241 次点击
所在节点    宽带症候群
57 条回复
ranaanna
307 天前
一句话,不能。家里主网已经和虚拟网实现了 layer-2 bridging 并通过一个路由连到 internet ,这就是第一个链接告诉你做的事情,使得不能运行 zerotier 的设备也能接入,相当于可以走一座桥,第二个链接则告诉你的是不能再做一个 layer-2 bridge 把两个物理网连起来,相当于不能走两个桥。另一边办公室的网断也应该是 192.168.100.0/24 ,但是,你会发现,达不到你想要实现的目标
humbass
306 天前
当然是可以连的,只不过速度没那么快而已。
zerotier 后台网段那边要注意设置下。
cpstar
306 天前
![]( https://docs.zerotier.com/assets/images/integrating-bridging-e6f03a9010ccb420128927ed8cf1b3e7.png)

官方也给了这么一个图片,原则上,如果左边能够实现子网的目标,右边也可以出现同样的网络结构,甚至再出现第三个第四个,变相成了某种网桥设备,将若干个物理子网在配置上达成一致形成一个网络。至于 @ranaanna 2# 提到的 WAN 出口问题,窃以为两个路由设备的默认路由都会指向 WAN 口,而只处理虚拟达成的大内网规则,并不会出现多出口的情况。第二个链接也确实提到了 zt 的 P2P 初心,可是既然能够实现了左侧的桥接,在右边再实现一个桥接,理论上我觉得还是能力所及的。

@humbass 3# 速度问题咱暂且不讨论,毕竟实现子网并不是以速度为目标而是一方面减少 NAT (可以左右两个 NAT 完成 ZT 的 P2P 初心)另一方面在子网的设备配置上减少穿墙打洞减少麻烦。至于配置,具体怎么搞呢?我只设置了 ZT 虚网内的路由策略,关闭了 ZT 的 DHCP ,子设备一律指定 IP ,涉及两个 OP 的成员都设置了允许桥接,甚至阻断 DHCP 流量,还需要搞什么呢?

开了两个 hyperV 和一堆配套的做了试验,目前尚未达成。
Immunize
306 天前
两个 LAN 为什么要做桥接,用路由呀。可以参考我的 Blog https://www.iloft.xyz/archives/openwrt-zerotier.html
yaott2020
306 天前
三层不行吗
cpstar
306 天前
@Immunize 4#
@yaott2020 5#
就是想做到完全桥接,而不是 NAT
LGA1150
306 天前
@cpstar #6
纯 L3 可以不用 NAT
joyhub2140
306 天前
连接两个 lan ,还得用 VPN ,而且还是 ipsec 那种。
wwhc
306 天前
可用 ssh_vpn 实现:help.ubuntu.com/community/SSH_VPN
PbCopy111
306 天前
我是这样的,openwrt 在局域网里,为了外网访问整个局域网,在 openwrt 里面要设置:
防火墙--自定义规则
iptables -I FORWARD -i ztly524plm -j ACCEPT
iptables -I FORWARD -o ztly524plm -j ACCEPT
iptables -t nat -I POSTROUTING -o ztly524plm -j MASQUERADE

其中 ztly524plm 是在 openwrt 的 zerotier 的接口信息里得到的名称

然后再去 zerotier 里面设置 bridge 和转发整个局域网出来。

最后我可以在外网访问整个局域网的机器了。
flynaj
306 天前
局域网互联这样配置 ,在 zerotier 网站配置
我的是全部安装到路由器上,这样我的 4 个局域网就可以互通了。非常方便。
humbass
306 天前
@cpstar 我目前是在路由实现的

配置基本上跟 11 楼的 @flynaj 的一样
szdosar
306 天前
在 zerotier 网页后台设置路由就可以了。没必要搞这么麻烦。
cpstar
306 天前
@PbCopy111 10# 这个方法只能桥接出一个网络,参见 3#的那张图


@flynaj 11# @humbass 12# 这种实现起来没有难度,以 11#的图举例子,所有 16.0/21 的设备都以 100.16 呈现给对方所有网络,在发送 IP 包的时候,会涉及到 IP 改写这个三层协议的内容。而期望的目标是二层桥接,即 A 设备找另外一个网络的 B 设备,通过 ARP 获得到 MAC 之后,直接“交换机”进行数据包交换从 A 到 B 。而三层 IP 改写也好 NAT 也罢,都需要经过中间网关 C 和 D 进行 IP 改写再送出。还是按照 11# 的图,原则上可以说这个 ZT 网络只有四台设备,然后这四台后边带着四个 LAN 。
yaott2020
306 天前
@cpstar 三层可以使用路由,不需要 NAT
yaott2020
306 天前
cpstar
306 天前
@yaott2020 15# 16#

那个文档已经实现了 3#图片的左侧结构,轻松实现,本来这也不是问题。问题是无法在右侧实现同样的左侧结构:在右侧设立了一个网络之后,二层不通,只能使用 NAT 。

而所谓的路由转发原则成立,但实践上(应该是因为使用了 192 、172 、10 段)目的地址看到的都是被网关设备修改了源地址的 IP 包,我认为这就是 NAT 。
liyouran
306 天前
@flynaj 我也是这样设置的,这样设置完,在装 zerotier 的路由上在设置静态路由指回去就行了
liyouran
306 天前
二层试试利用 zerotier 的虚拟地址搭建 pptp ,l2tp 或者 ipsec 之类的
sadan9
305 天前
@cpstar 桥接是 2 层,NAT 是 3 层。完全是 2 个问题。除非你的业务场景涉及同一个段内的广播,不然直接走 3 层路由。
4 楼是正确解法,如果不想在 zt 的 web 上设置静态路由,甚至可以考虑使用 RIP 或者 OSPF 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1015835

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX