1

基于Overlay组建虚拟局域网

发表于:6 天前 技术整活 94

<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不变

收藏
送赞 1
分享

本帖子中包含更多资源

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

x

发表回复

评论列表(5)

赞!
6 天前 回复
星空组网也是这个方案,缺点就是打洞不见得每次都成功,还是得靠中转
4 小时前 回复
SDN都是这样,下层叫underlay,是实际的网络。上层叫overlay,是虚拟的网络。SD-WAN或数据中心用的是VxLAN+BGPEVN去构建overlay,而内网穿透工具用的都是wireguard ps:可以试试 飞鼠,打洞成功率比 星空 高  详情 回复
2 小时前
SDN都是这样,下层叫underlay,是实际的网络。上层叫overlay,是虚拟的网络。SD-WAN或数据中心用的是VxLAN+BGPEVN去构建overlay,而内网穿透工具用的都是wireguard
ps:可以试试 飞鼠,打洞成功率比 星空 高
2 小时前 回复
飞鼠官网好卡,wiki进不去,有镜像站吗?  详情 回复
1 小时前
archblux 发表于 2024-11-21 17:06
SDN都是这样,下层叫underlay,是实际的网络。上层叫overlay,是虚拟的网络。SD-WAN或数据中心用的是VxLAN+ ...

飞鼠官网好卡,wiki进不去,有镜像站吗?
1 小时前 回复
管理站点是:https://www.feishunet.com/  详情 回复
1 小时前
管理站点是:https://www.feishunet.com/
1 小时前 回复