如何基于Tinc跨云构建自己的Mesh私有网络
现在是云计算的时代,公有云上的服务百花齐放,VPS服务产业很多,在上面部署的服务也越来越多,但是一直找不到一个 Mesh 网络方案
如何基于Tinc跨云构建自己的 Mesh 私有网络
现在是云计算的时代,公有云上的服务百花齐放,VPS服务产业很多,在上面部署的服务也越来越多,但是一直找不到一个 Mesh 网络方案
设备网络拓扑
连通性:
- 设备统一连接交换机
- 通过软路由连接公网
- 旁路由,通过小米连接公网,默认已经添加PPT VPN
非连通性:
- 公网服务器直接无法连通
- 公网服务器无法连通家庭网络
代理权限控制,各种穿透方案等
点多点VPN 网络方案
如OpenVPN等,连接服务端后,所有流量都需要经过服务端节点
frp等服务穿透方案
只允许单个访问,单向访问
什么是 Mesh 网络
网状网络(英文:Mesh Network)是一种在网络节点间透过动态路由的方式来进行资料与控制指令的传送。这种网络可以保持每个节点间的连线完整,所有节点都可与拓扑中所有节点进行连线而形成一个“局域网络”
Tinc 小工具,大作为
docker-compose 启动服务,纯容器化部署
tinc:
container_name: tinc
image: ifooth/tinc:v1.0.36
restart: always
cap_add:
- NET_ADMIN
network_mode: host
environment:
- IP_ADDRESS=10.0.10.3
volumes:
- ../../etc/tinc:/etc/tinc
- ../../etc/tinc/hosts:/etc/tinc/home/hosts
devices:
- /dev/net/tun:/dev/net/tun
command: tincd -D -n home -d 2 -o Name=3215u
性能测试
裸机性能测试 可以可能到,基本可以跑满带宽
通过tinc的网络,速度大概260Mb/s
进阶: 跨网段路由,打通边缘网络
路由内网IP
#!/bin/sh
ifconfig $INTERFACE $IP_ADDRESS netmask 255.255.255.0
ip -4 route add 192.168.31.0/24 dev tinc
ip -4 route add 192.168.1.0/24 dev tinc
NAT路由转换
*nat
:POSTROUTING ACCEPT [0:0]
# 外网路由
-A POSTROUTING -o enp1s0 -j MASQUERADE
# tinc 访问小米路由
-A POSTROUTING -s 10.0.10.0/24 -d 192.168.31.1/32 -o enp4s0 -j MASQUERADE
COMMIT
性能优化
wireguard VPN,性能很强大,但是无法Mesh网络 https://github.com/costela/wesher