Was running OSPF + GRE + IPsec across 6 sites. Pain. Replaced with WireGuard (https://www.wireguard.com) point-to-point on every node talking to every other node. 47 tunnels. One config repo. No dynamic routing protocol.
$ wg show | grep peer | wc -l
47Decent disk IO, meh network
Results:
- Convergence: instant (no protocol to converge)
- Failover: manual (update endpoint IP, push config)
- CPU: 15% lower than IPsec on same Celeron J4125
- Memory: 180MB for all tunnels vs 340MB for FRR + strongSwan
Caveat: this is not a real mesh protocol. I write every tunnel by hand. If a node dies, I edit text files. If my repo host dies, I cry.
Would not recommend for production. For my 6 hobby sites, it is peace.
— yabs