Architecture

Blast Radius & Recovery Matrix

How WAN, edge, switching, storage, control-plane, DNS, backup, and inter-site failures propagate, what remains available, and which recovery path applies.

Blast radius is bounded by site, layer, and attachment point. A link failure differs from a switch failure, a controller failure differs from a forwarding failure, and a routed-service failure differs from loss of local Layer 2.

Local Failures Stay Local

No Proxmox cluster, Ceph pool, OpenBao Raft cluster, Corosync network, or Layer 2 segment spans both sites. A local infrastructure failure may remove an entire site's service, but it cannot directly change quorum or storage health at the other site.

Failure and Recovery Matrix

Failure domainDirect blast radiusWhat remains availableRecovery pathExposure
One ISP handoffInternet and WireGuard at that siteLocal switching, cluster, storage, and same-site servicesRestore the handoff; Site A can use its documented manual UCG rollback posture during the campaignSingle ISP termination is an accepted risk
One Site A DACOne RSTP pathRemaining two-switch path and attached endpointsRSTP reconverges; repair the failed DAC before another fabric failureLink redundancy exists
sa-sw-02 or sa-sw-03Endpoints attached only to that switchOther switches and their direct triangle linkRestore or replace the failed switch and reapply its known profileEndpoint loss is switch-local
sa-sw-01Its endpoints plus the only OPNsense fabric attachmentSame-switch Layer 2 on surviving switchesRestore or replace sa-sw-01; no alternate router attachment is pre-approvedFabric has link redundancy, not gateway-uplink redundancy
sa-fw-01 or sa-edge-01Site A WAN, gateways, DHCP, NAT, WireGuard, DNS forwarding, inter-VLAN traffic; edge-host UOS/Bao if the host failsSame-VLAN Layer 2 and existing adopted-device forwarding when switches remain poweredRestore the pinned edge VM/host from code and exports; use manual UCG rollback only within its documented postureSite A edge is a concentrated single point of failure
sa-uos-01Adoption, telemetry, configuration changesExisting switch and AP forwardingRestore or rebuild UOS; controller backup policy is not yet designedControl loss does not equal forwarding loss
sa-bao-01New secret reads and config pushes that use BaoOPNsense runtime traffic; consumers with encrypted fallback; already configured servicesCurrent three-of-five Shamir unseal or rebuild/restore from planned snapshot pathSingle-node Raft; snapshot automation deferred
sa-dns-01Authoritative writes, DDNS updates, primary replication sourceReachable secondary resolvers serve the last zone copyRestore the primary and resume AXFR/NOTIFYStale-but-functional replicas; no committed RTO
sa-stor-01Site A ZFS, PBS-A, primary DNS placement, monitoring, databases, hosted core VMsOther Site A hosts and the entire Site B storage domainRepair/replace storage, then restore from an independent PBS copy when availablePBS-A co-location creates correlated local loss
One Site A ThinkPadIts local workloads and attached pathsOther sa-pve nodes according to local quorum and workload placementRestore or reschedule workloads; physical intervention may be requiredNo IPMI on ThinkPads
One Site B Ceph nodeIts OSDs and any MON/MGR or workload rolesRemaining Ceph members and Site A storageFollow Ceph health, recovery, and replacement proceduresCapacity and performance degrade; exact effect follows the failed roles
WireGuard tunnelCross-site management, DNS changes, PBS copies, transit unseal, later Site B UniFi controlBoth sites' local routing, clusters, storage, switching, local DNS copies, local PBS jobsRestore the tunnel, then resume and verify replicationFuture OpenBao restart may need break-glass while peer is unreachable
One PBS instanceLocal backup and restore service at that siteProduction workloads and the other PBS instanceRestore PBS and datastore; recover from the other site's last copy when deployedCadence, retention, and restore-test policy are open
Entire siteEvery system physically at that locationThe other site's local infrastructureRebuild from source, exports, recovery keys, and last cross-site copiesCross-site DR is designed but Site B-dependent mechanisms are not yet live
Both sites coldAll site-local services; future mutual transit unseal cannot start automaticallyOffline source, password-manager material, hardware, and tier-0 secretsSeal-migrate one OpenBao instance to Shamir, unseal it, bring up its peer, then restore remaining services in dependency orderDocumented manual recovery; no committed time objective

Concentrated Failure Domains

Concentration pointCapabilities sharing the failure domainDesign response
sa-edge-01OPNsense, OpenBao, UOS, edge networkingKeep workloads light, preserve exports and break-glass credentials, retain manual rollback
sa-sw-01RSTP root, edge trunk, several host linksRSTP protects DAC paths only; replacement configuration and physical access remain necessary
sa-stor-01ZFS, PBS-A, primary DNS placement, monitoring, databases, core VMsMirror vdevs protect drive failure; cross-site PBS is the site-loss path
WireGuardCross-site DNS replication, PBS copies, future transit unseal, later UniFi L3 adoptionLocal services continue; every cross-site consumer needs a stale-copy, pause, or break-glass mode
sa-dns-01Writable forward and reverse zonesSecondary servers retain read availability from the last AXFR

Recovery Patterns

Redundant Path

RSTP can route around one Site A inter-switch link. It does not replace a switch, the only OPNsense attachment on sa-sw-01, a power feed, or the edge host.

Rebuild from Definition

Pulumi, Ansible, pinned configuration, port maps, and runbooks recreate infrastructure. Rebuild still depends on current exports, tier-0 credentials, recovery keys, and healthy replacement hardware.

Restore from Copy

ZFS mirrors and Ceph replication address local device failure. PBS and OpenBao snapshots address service or site recovery. These mechanisms protect different layers and are not interchangeable.

Operate Degraded

UOS-down forwarding, DNS secondaries, local PBS during a tunnel outage, and encrypted secret fallbacks allow limited operation while the failed control plane is repaired.

Recovery Decision Boundary

Routine recovery restores the approved architecture. Moving an OPNsense VM to another host, routing VLAN 25/60/65, attaching an XG10 to the UCG/XG6 island, stretching storage or quorum, or publishing management services changes the architecture and is not an incident shortcut.

Use disaster recovery objectives for recovery commitments and gaps, service dependencies for restoration order, and physical & logical topology for packet-path detail.