nowtunnel 一个简单的跨网转发和 sdwan 解决方案

1次阅读

共计 1930 个字符,预计需要花费 5 分钟才能阅读完成。

介绍

  • 通过多地运行节点服务,以中继方式实现异地节点网络互通,突破地域限制,提供分支机构、数据中心、云之间全场景互联互通。
  • 不需要固定公网 IP,能上网就能组网;支持软件、虚拟机、硬件等方式部署,云端管理方便快捷。
  • 可以方便开发者跨地域部署内网服务,节省 IP 及公网宽带费用。
  • 底层使用 tls + websocket 安全互联,支持 TCP / UDP / PROXY(socks5 http https) 等跨区域转发。
  • WGD 功能实现三层路由,方便运维 / 网管扩展 SD-WAN MPLS VPLS VXLAN GRE IPIP 等应用.

部署

场景

假设有运行两个节点软件 test1 和 test2,登录 nowtunnel 创建节点并在两台设备中运行。

代理转发 :

 环境描述 :
# 节点 test1 设备 IP: 192.168.1.5
# 节点 test2 设备网段: 192.168.2.0/24,测试服务器 IP: 192.168.2.5

规则类型 : proxy
# Proxy 类型会自动识别协议 socks5/http/https

监听 IP/ 端口 : 0.0.0.0 8871
# 监听设备任意 IP+ 端口号 8871

中继节点 : test2
# 中继节点选远端 / 对端节点 test2

验证结果 (通过 curl 代理功能验证) :
curl --proxy socks5://192.168.1.5:8871 http://myip.ipip.net
# 可以看到代理流量通过“test2 节点”流出,此时通过 curl 查询到的 IP 归属为“节点 test2”的公网 IP
curl --proxy socks5://192.168.1.1:8871 http://192.168.2.1
# 通过 curl 可以访问 192.168.2.1 的 WEB 界面

TCP 端口转发 :

 环境描述 :
# 节点 test1 设备 IP: 192.168.1.5
# 节点 test2 设备网段: 192.168.2.0/24,测试服务器 IP: 192.168.2.5

规则类型 : tcp
# 任意使用 tcp 协议的应用

监听 IP/ 端口 : 192.168.1.5 33981
# 监听设备 IP 192.168.1.5 端口号 33891

中继节点 : test2
# 中继节点选远端 / 对端节点 test2

远程主机 / 端口 : 192.168.2.5 3389
#

验证结果 (通过 windows mstsc 远程桌面) :
# 此时通过远程桌面访问 192.168.1.5:33891,等同于直接访问 192.168.2.5 的远程桌面 3389 端口

UDP 端口转发 :

 环境描述 :
# 节点 test1 设备 IP: 192.168.1.5
# 节点 test2 设备网段: 192.168.2.0/24,测试服务器 IP: 192.168.2.5

规则类型 : udp
# 任意使用 udp 协议的应用

监听 IP/ 端口 : 0.0.0.0 9901
# 监听设备任意 IP+ 端口号 UDP 9901

中继节点 : test2
# 中继节点选远端 / 对端节点 test2

验证结果 (通过 nc 工具) :
echo "TEST" | nc -4u 192.168.1.5 9901
# 本例中所有访问 192.168.5.1:9901 的 UDP 流量都会通过“test2 节点”发向 192.168.2.5:9901

路由转发 :

  • WGD 隧道路由原理: 底层 nowtunnel 网络 (tcp+ssl) + udp 端口转发 + wireguard/iptables。
  • 支持 nat 和 route 方式路由。
  • 系统使用 ip rule 绑定 table,不污染本地路由,也可以指定该 table 的静态路由。
  • 点击节点 test1 “ 转发规则 ” – “ 新增规则 ”,规则类型选 “wgd”。
 环境描述 :
# 节点 test1 设备 ip: 192.168.1.5 , 设备所在网段: 192.168.1.0/24
# 节点 test2 设备 ip: 192.168.2.5 , 设备所在网段: 192.168.2.0/24,192.168.3.0/24
# 打通 192.168.1.0/24,192.168.2.0/24,192.168.3.0/24 网段之间的路由。# 注意: 本例中 wgd 配置可以在 test1 上,也可以在 test2 上,但不能两边都配置.

规则类型 : wgd
# 三层路由转发

中继节点 : test2
# 中继节点选远端 / 对端节点 test2

本地网络 / 对端网络 :
# 配置宣告本地网络和对端网络,多个用逗号隔开。验证结果 (通过 ping 工具) :
# 在 test1 网络中的网关路由器上配置静态路由:route add 192.168.2.0 mask 255.255.255.0 192.168.1.5
route add 192.168.3.0 mask 255.255.255.0 192.168.1.5
# 在 test2 网络中的网关路由器上配置静态路由:route add 192.168.1.0 mask 255.255.255.0 192.168.2.5
# 配置完成后所有网段将互通。
正文完
 0