使用wireguard构建全球网络
主要解决的问题:
- 国内多个家庭间组网:与亲朋好友共享NAS资源、联机、互联互通,组建大内网。
- 移动终端接入:接入不信任Wi-Fi时或使用蜂窝网络时。随时访问家庭资源,安全访问全球互联网。
- 随身路由器:快速在酒店、办公场所等环境构建Wi-Fi,安全接入家庭网络;同时使用家庭网络出口访问全球资源,并且为每个设备分配到全球公共IPv6地址(大部分公共Wi-Fi不具备IPv6)。
- 互联网出口集中化:根据路由策略,将指定目的地IP走指定互联网出口。
配置前提:
- 光猫设备已经改为桥接,路由器设备直接拨号。
- 设备刷为openwrt系统
方案介绍
方案图

设备角色
Core:核心路由设备(一般为家庭网关),需要具备互联网接入(路由设备直接PPPoE拨号,确保有Public IPv6 、Public IPv4 )
ECS服务器:国际互联网出口,根据需求,将部分互联网访问出口落在该设备上。
Edge Router:随身路由器,可放置在酒店、办公室、车载等场景,对网络没有要求,能访问到Core设备的Public IPv4或者Public IPv6即可
网络平面介绍
每个平面都相当于一个隧道,Core上的隧道,都需要Listen特定端口
- Carrier平面:国内full-mesh互联,构建自己的骨干网络,建议使用IPv6地址作为Endpoint
- Global平面:国内设备都listen一个特定端口,由ECS通过IPv6主动接入。为国内设备添加国际互联网出口。
- Ingress:用来给边缘路由器接入
- Access:移动终端通过wireguard App直接接入
主要难点:
- 路由策略设计,需要在设备上配置多个路由表、路由策略。
- 国内PPPoE的特性,重播会导致Public IP变更、IPv6 PD变更,影响wireguard的Allow IP、Endpoint变更以及Access平面、Ingress平面的终端IPv6地址分配,针对这个问题,写了个小服务解决,待完善后会开源。
//TODO:写点具体的操作手册