收起左侧

基于Overlay组建虚拟局域网

9
回复
1775
查看
[ 复制链接 ]

8

主题

339

回帖

170

牛值

社区共建团

社区上线纪念勋章社区共建团荣誉勋章

2024-11-15 11:35:27 显示全部楼层 阅读模式

[i=s] 本帖最后由 archblux 于 2024-11-15 15:00 编辑 [/i]<br /> <br />

基于Overlay组建虚拟局域网

概述

本文旨在采用SDN技术构建一个无视区域、无视接入网络的虚拟局域网,实现随时随地的设备互访,主要针对以下需求:

  • 多个设备分布在不同节点,各节点互联网接入条件各异,包括但不限于互联网专线、家用宽带、云主机、多层NAT等
  • 不同设备间有数据互访需求,且不仅限少数几个端口,比如飞牛FN,只能访问网页,对ssh等无效
  • 各设备有IPv6可互访,但想要更高的安全性

SDN方案优点有

  • 可使用公共服务端,个人设备只要能联网即可,无公网IP需求。当然有公网IP,也可自建服务端,完全私有化部署

  • 数据传输有二种方式

    • P2P直链:可针对运营商的多层NAT网络打洞,实现设备间的P2P直连,传输带宽取决于你的上传带宽,一般在1~10Mbps
    • 基于公共服务端的中转:如果打洞不成功,就只能通过公共服务端、接力服务器中转,传输带宽受服务器限制,一般在1~3Mbps
  • 各设备具有固定的虚拟IP地址或域名,好记忆、好管理,且设备更换可继承

实现方案

市面可家用的SDN方案很多,主流包括Zerotier One、Tailscale、Netbird、VNT等,由于我的设备包括2台威联通NAS,经测试只有VNT方案能正常工作,因此目前以VNT基础构建,其他方案类似。

NAS/服务器

  • 确定设备有tun设备:ls /dev/net/tunls /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字样提示就表明运行成功

image.png

windows/安卓终端

windows和安卓终端有gui版本,二者界面类似,以windows版为例

  • github上下载安装包
  • 解压运行
  • 加入vnt网络

image.png

  • 填入相关参数,配置与nas端一致

image.png image.png

  • 点击右上角保持即可,回到首页,点击连接图标连接即可

    • 设备状态有online(在线)、offline(离线)
    • 连接方式有P2P(直连)、Relay(中转),一般刚连接时都是RELAY,稍等一会,如果打洞成功,会变成P2P

image.png image.png

  • 不需要时,点右上角图标断开即可
  • 如果要增加跳转机配置,在刚才的配置界面,增加ip-ip配置即可

image.png

实施效果

现在设备间通过虚拟ip访问即可,所有端口可用,和局域网一样。

  • 可以NAS为中心点,构建webdav等弱安全应用,只在局域网和vnt网可用,而外网不可用,提升安全性

  • 如果未来有设备更换,可以选择用原设备配置继续运行,其他设备的访问ip不变

收藏
送赞 3
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

1

主题

768

回帖

320

牛值

共建版主

社区上线纪念勋章社区共建团荣誉勋章飞牛百度网盘玩家

2024-11-15 13:31:31 显示全部楼层
赞!

2

主题

21

回帖

0

牛值

江湖小虾

2024-11-21 14:26:09 显示全部楼层
星空组网也是这个方案,缺点就是打洞不见得每次都成功,还是得靠中转
SDN都是这样,下层叫underlay,是实际的网络。上层叫overlay,是虚拟的网络。SD-WAN或数据中心用的是VxLAN+BGPEVN去构建overlay,而内网穿透工具用的都是wireguard ps:可以试试 飞鼠,打洞成功率比 星空 高  详情 回复
2024-11-21 17:06

8

主题

339

回帖

170

牛值

社区共建团

社区上线纪念勋章社区共建团荣誉勋章

2024-11-21 17:06:00 楼主 显示全部楼层
SDN都是这样,下层叫underlay,是实际的网络。上层叫overlay,是虚拟的网络。SD-WAN或数据中心用的是VxLAN+BGPEVN去构建overlay,而内网穿透工具用的都是wireguard
ps:可以试试 飞鼠,打洞成功率比 星空 高
飞鼠官网好卡,wiki进不去,有镜像站吗?  详情 回复
2024-11-21 17:23

2

主题

21

回帖

0

牛值

江湖小虾

2024-11-21 17:23:52 显示全部楼层
archblux 发表于 2024-11-21 17:06
SDN都是这样,下层叫underlay,是实际的网络。上层叫overlay,是虚拟的网络。SD-WAN或数据中心用的是VxLAN+ ...

飞鼠官网好卡,wiki进不去,有镜像站吗?
管理站点是:https://www.feishunet.com/  详情 回复
2024-11-21 17:29

8

主题

339

回帖

170

牛值

社区共建团

社区上线纪念勋章社区共建团荣誉勋章

2024-11-21 17:29:46 楼主 显示全部楼层
管理站点是:https://www.feishunet.com/

0

主题

6

回帖

0

牛值

fnOS系统内测组

2025-2-21 16:49:18 显示全部楼层
很奇怪,按教程在飞牛和其他Linux环境下测试VNT能ping通虚拟IP但无法访问对方局域网,换Win版客户端就都正常
route -n 看下你的路由,是不是缺条去目标网络的路由  详情 回复
2025-2-21 18:00

8

主题

339

回帖

170

牛值

社区共建团

社区上线纪念勋章社区共建团荣誉勋章

2025-2-21 18:00:43 楼主 显示全部楼层
route -n 看下你的路由,是不是缺条去目标网络的路由

0

主题

2

回帖

0

牛值

江湖小虾

2025-3-19 16:00:36 显示全部楼层
你好,请问这个可以利用私有的服务器做中转吗
找到了,vnt确实好用,谢谢推荐  详情 回复
2025-3-19 16:03

0

主题

2

回帖

0

牛值

江湖小虾

2025-3-19 16:03:21 显示全部楼层
Breeze_Me2pz 发表于 2025-3-19 16:00
你好,请问这个可以利用私有的服务器做中转吗

找到了,vnt确实好用,谢谢推荐
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则