现在是云计算的时代,公有云上的服务百花齐放,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

-w1373

性能优化

wireguard VPN,性能很强大,但是无法Mesh网络 https://github.com/costela/wesher