zerotier充当网关实现内网互联,访问其它节点内网
备忘
本节知识点:建议学习和理解并掌握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下配置路由表,增加如下内容
#如果单向连接,仅需填写下方一个即可.
192.168.1.0/24 via 192.168.88.10
192.168.2.0/24 via 192.168.88.20
2.开启内核转发
#echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
#sysctl -p
3.防火墙设置
iptables -I FORWARD -i ztyqbub6jp -j ACCEPT
iptables -I FORWARD -o ztyqbub6jp -j ACCEPT
iptables -t nat -I POSTROUTING -o ztyqbub6jp -j MASQUERADE
#其中的 ztyqbub6jp 在不同的机器中不一样,你可以在路由器ssh环境中用 zerotier-cli listnetworks 或者 ifconfig 查询zt开头的网卡名
iptables-save #保存配置到文件,否则重启规则会丢失.
二、网络二层桥接方式(linux主机)[未测试,谨慎尝试!]
1.设置桥接
在官网的networks里面,在Members选择两个节点前面的小扳手,然后勾选Allow Ethernet Bridging
2.配置网桥模式
请注意,如果你的设备仅有一个物理网卡,下方配置可能会断网噢.
配置桥接前,请先清空物理网卡的ip,否则会影响路由出口选择.
#创建桥接网卡
brctl addbr br0 ##添加桥接网卡br0
brctl show ##查看
ifconfig br0 172.25.47.104/24 ##给br0配置ip172.25.7.11
brctl addif br0 eth0 #添加真实物理网卡到桥接br0上
brctl addif br0 ztxxxx #添加zerotier网卡到桥接br0上
ping 172.25.7.254 ##测试,是否可以正常使用。
#删除桥接网卡
brctl delif br0 eth0 #从桥接中移出物理网卡eth0
brctl delif br0 ztxxx #从桥接网卡中移除zt网卡
ifconfig br0 down ## 关闭桥接网卡br0
brctl delbr br0 ##删除桥接网卡br0
brctl show ##查看桥接是否存在
#以上命令创建的网卡,会在重启丢失,下面是修改配置文件来实现持久化.
vim ifcfg-enp4s0f2 #编写物理网卡网络配置文件
DEVICE=enp4s0f2
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0
vim ifcfg-br0 #编写桥接配置文件
DEVICE=br0
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.7.254
PREFIX=24
TYPE=Bridge
systemctl restart network #|重新启动网络服务