本节知识点:建议学习和理解并掌握iptables/route运行原理和机制.
一、网络三层NAT配置方法(linux主机)[推荐]
- 假设zerotier虚拟局域网的网段是192.168.88.0
局域网A 192.168.1.0
局域网B 192.168.2.0
- (如果需要互联)在局域网A和B中需要各有一台主机安装zerotier并作为两个内网互联的网关
- 分别是192.168.1.10(192.168.88.10) 192.168.2.10(192.168.88.20)#括号里面为虚拟局域网的IP地址
1.在zerotier网站的networks里面的Managed Routes下配置路由表,增加如下内容
1 2 3 4 5 |
<span class="hljs-comment">#如果单向连接,仅需填写下方一个即可.</span> 192.168.1.0/24 via 192.168.88.10 192.168.2.0/24 via 192.168.88.20 |
2.开启内核转发
1 2 3 |
<span class="hljs-meta">#</span><span class="language-bash"><span class="hljs-built_in">echo</span> <span class="hljs-string">"net.ipv4.ip_forward = 1"</span> >> /etc/sysctl.conf</span> <span class="hljs-meta">#</span><span class="language-bash">sysctl -p</span> |
3.防火墙设置
1 2 3 4 5 6 |
iptables -I FORWARD -i ztyqbub6jp -<span class="hljs-keyword">j </span>ACCEPT iptables -I FORWARD -o ztyqbub6jp -<span class="hljs-keyword">j </span>ACCEPT iptables -t nat -I POSTROUTING -o ztyqbub6jp -<span class="hljs-keyword">j </span>MASQUERADE <span class="hljs-comment">#其中的 ztyqbub6jp 在不同的机器中不一样,你可以在路由器ssh环境中用 zerotier-cli listnetworks 或者 ifconfig 查询zt开头的网卡名</span> iptables-save <span class="hljs-comment">#保存配置到文件,否则重启规则会丢失.</span> |
二、网络二层桥接方式(linux主机)[未测试,谨慎尝试!]
1.设置桥接
在官网的networks里面,在Members选择两个节点前面的小扳手,然后勾选Allow Ethernet Bridging
2.配置网桥模式
请注意,如果你的设备仅有一个物理网卡,下方配置可能会断网噢.
配置桥接前,请先清空物理网卡的ip,否则会影响路由出口选择.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<span class="hljs-comment">#创建桥接网卡</span> brctl addbr br0 <span class="hljs-comment">##添加桥接网卡br0</span> brctl show <span class="hljs-comment">##查看</span> ifconfig br0 172.25.47.104/24 <span class="hljs-comment">##给br0配置ip172.25.7.11</span> brctl addif br0 eth0 <span class="hljs-comment">#添加真实物理网卡到桥接br0上</span> brctl addif br0 ztxxxx <span class="hljs-comment">#添加zerotier网卡到桥接br0上</span> ping 172.25.7.254 <span class="hljs-comment">##测试,是否可以正常使用。</span> <span class="hljs-comment">#删除桥接网卡</span> brctl delif br0 eth0 <span class="hljs-comment">#从桥接中移出物理网卡eth0</span> brctl delif br0 ztxxx <span class="hljs-comment">#从桥接网卡中移除zt网卡</span> ifconfig br0 down <span class="hljs-comment">## 关闭桥接网卡br0</span> brctl delbr br0 <span class="hljs-comment">##删除桥接网卡br0</span> brctl show <span class="hljs-comment">##查看桥接是否存在</span> <span class="hljs-comment">#以上命令创建的网卡,会在重启丢失,下面是修改配置文件来实现持久化.</span> vim ifcfg-enp4s0f2 <span class="hljs-comment">#编写物理网卡网络配置文件</span> DEVICE=enp4s0f2 ONBOOT=<span class="hljs-built_in">yes</span> BOOTPROTO=none BRIDGE=br0 vim ifcfg-br0 <span class="hljs-comment">#编写桥接配置文件</span> DEVICE=br0 ONBOOT=<span class="hljs-built_in">yes</span> BOOTPROTO=none IPADDR=172.25.7.254 PREFIX=24 TYPE=Bridge systemctl restart network <span class="hljs-comment">#|重新启动网络服务</span> |