<br />
<br />
基于Overlay组建虚拟局域网
概述
本文旨在采用SDN技术构建一个无视区域、无视接入网络的虚拟局域网,实现随时随地的设备互访,主要针对以下需求:
- 多个设备分布在不同节点,各节点互联网接入条件各异,包括但不限于互联网专线、家用宽带、云主机、多层NAT等
- 不同设备间有数据互访需求,且不仅限少数几个端口,比如飞牛FN,只能访问网页,对ssh等无效
- 各设备有IPv6可互访,但想要更高的安全性
SDN方案优点有
实现方案
市面可家用的SDN方案很多,主流包括Zerotier One、Tailscale、Netbird、VNT等,由于我的设备包括2台威联通NAS,经测试只有VNT方案能正常工作,因此目前以VNT基础构建,其他方案类似。
NAS/服务器
- 确定设备有tun设备:
ls /dev/net/tun 或 ls /dev/tun 有输出,没有的话用 modprobe tun 手动挂载下
- 从github上下载安装包,linux一般用vnt-x86_64-unknown-linux-musl-x.x.x.x.tar.gz
- 解压至
/opt/bin
# ./vnt-cli -k 组网编号 --ip 虚拟ip -w 密码 --model chacha20_poly1305 -d 设备名称
# 组网编号随意填,字母数字均可,各设备要保持一样
# 虚拟ip自定义,可以选自己好记的,各设备不同
# 密码,尽量复杂,各设备保持一样
# 设备名称自定义,各设备不同,实际没什么用,因为设备间通过虚ip互访
sudo /opt/bin/vnt-cli -k zvasfq --ip 10.26.0.47 -w aR3~RXphSMp --model chacha20_poly1305 -d Ali-Ecs
# 如果想将某台设备A作为跳转机,即A所在内网内其他设备可被vnt节点访问,比如打印机等
# 跳转机可增加 -o选项,指定可中转的内网,比如下方的192.168.1.0/24
sudo /opt/bin/vnt-cli -k zvasfq --ip 10.26.0.47 -w aR3~RXphSMp --model chacha20_poly1305 -o 192.168.1.0/24 -d Ali-Ecs
# 其他设备用 -i选项,指定跳转机,比如下方将拦载192.168.1.0/24网段流量,将其转交至10.26.0.47,也就是设备A
sudo /opt/bin/vnt-cli -k zvasfq --ip 10.26.0.33 -w aR3~RXphSMp --model chacha20_poly1305 -i 192.168.1.0/24,10.26.0.47 -d client
# 设为开机启动
# 本处采用rc-local方案,其他类似
# 将vnt启动命令填入,
sudo vim /etc/rc.local
#!/bin/sh -e
/opt/bin/vnt-cli -k zvasfq --ip 10.26.0.47 -w aR3~RXphSMp --model chacha20_poly1305 -d Ali-Ecs
exit 0
# 设备rc-local可执行
sudo chmod +x /etc/rc.local
# 启动rc-local服务
sudo systemctl enable rc-local
sudo systemctl start rc-local.service
出现succefuly字样提示就表明运行成功
windows/安卓终端
windows和安卓终端有gui版本,二者界面类似,以windows版为例
- 不需要时,点右上角图标断开即可
- 如果要增加跳转机配置,在刚才的配置界面,增加ip-ip配置即可
实施效果
现在设备间通过虚拟ip访问即可,所有端口可用,和局域网一样。
|