fix: add kernel routes for cell peers after wg set
wg set updates WireGuard peer state but does not add kernel routes — unlike wg-quick. Without ip route add, traffic to a remote cell's vpn_subnet is routed via the default gateway (internet) instead of wg0, causing all cross-cell pushes to time out with HTTP 000. - add_cell_peer() now calls _ensure_cell_route(vpn_subnet) after writing the peer config and running _syncconf - _ensure_cell_route() runs docker exec cell-wireguard ip route add (idempotent, non-fatal); no-op inside test dirs - sync_cell_routes() parses wg0.conf at startup to re-add any routes lost across container restarts; called from _apply_startup_enforcement - 5 new unit tests covering both normal and test-dir no-op paths Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -265,6 +265,7 @@ def _apply_startup_enforcement():
|
||||
firewall_manager.apply_all_peer_rules(peers)
|
||||
firewall_manager.apply_all_cell_rules(cell_links)
|
||||
firewall_manager.ensure_cell_api_dnat()
|
||||
wireguard_manager.sync_cell_routes()
|
||||
firewall_manager.apply_all_dns_rules(peers, COREFILE_PATH, _configured_domain(),
|
||||
cell_links=cell_links)
|
||||
logger.info(f"Applied enforcement rules for {len(peers)} peers, {len(cell_links)} cells on startup")
|
||||
|
||||
Reference in New Issue
Block a user