多站点Homelab:SDWAN组网 + 统一AI出口
之前2个城市4处宽带都组了SD-WAN,实现了异地网络完全互通,不管在哪个站点,都能直接访问其他地方的内网设备,用着一直挺爽。
但最近调整ai出口策略,就凸显了之前分散架构的问题:每个站点独立配置出口规则,要改个代理策略得同步四个地方,非常麻烦,也不利于及时变更,经常出现部分站点能访问的资源,其他站点访问不了的情况,排查起来特别头疼。
想了下主站是双wan,出口带宽300M+200M,完全能承载所有站点的AI流量,于是就把网络拓扑做了重构,现在所有AI流量统一收敛到主站,集中配置调度,用了一个多月非常稳定,整理下这套架构。
整体架构
🏠 主站
作为整个Homelab的核心枢纽,所有的核心服务和流量调度都集中在这里:
- 出口配置:宽带商1上行300M + 宽带商2上行200M双WAN,双旁路由冗余(主路由n350/FnOS,备用路由r76s/Armbian),单台宕机自动切换,无感知
- 核心网络服务:
- AdGuardHome:全站点统一去广告、恶意域名拦截
- mosdns:智能DNS分流,国内域名走ISP DNS,海外走加密DNS
- mihomo in:其他3个站点的ai流量的入口
- 出海核心:Mac mini M4 双万兆,安装Surge负责最终的出海流量调度
- 存储服务:UNAS Pro 8盘位RAID6,总容量84T,存所有个人数据、备份文件、各类资源
- 应用服务:n350服务器,跑Immich照片管理、Moviepilot媒体服务、bt下载、cloudflare tunnel、各类Docker应用
- AI服务:另外一台Mac mini M4
📡 边缘站点(3个)
三个边缘站点硬件配置统一,功能各有侧重:
- 硬件:都是RK3566 4G/16G 运行FnOS轻量系统,功耗低稳定运行
- 存储配置:
- 站点1:500G SSD,跑本地Docker应用
- 站点2:1TB SSD,跑本地Docker应用
- 站点3:1TB HDD,跑本地Docker应用
- 网络配置:
- 站点1:宽带商2个,双WAN,有IPv4+IPv6公网
- 站点2:宽带商1个,单WAN,仅IPv6公网
- 站点3:宽带商1个,内网,无公网IP
- 所有边缘站点全部部署AdguardHome + mosdns + mihomo out
🌐 流量调度规则
完全自动化分流,不用手动切换:
- 国内流量:直接走本地ISP出口,延迟最低,带宽不受限
- AI流量:全部通过本地mihimo out去主站mihomo in,然后通过主站Surge统一出口,规则一次配置全站点生效
- 内网流量:四个站点完全二层互通,不管在哪个地方,访问其他站点的设备都和本地访问一样
使用体验
这套架构已经稳定跑了一个多月,体验提升非常明显:
- 维护成本大大降低:以前改个代理规则要同步四个站点,现在改一次就行,所有站点自动生效
- 带宽利用率更高:海外流量集中到主站,不用每个站点都单独开海外策略,节省成本的同时还能跑满主站出口,边缘站点走主站出口的带宽可以跑满300M,延迟只增加10ms左右,完全够用
- 冗余度更高:主站双WAN+双旁路,边缘站点同时走sd-wan和旁路,基本不会出现断网的情况
