This document describes the standard network design used when opening a new district with a managed network partner (telco, ISP, or managed services provider). It maps the partner's responsibilities to HYDRA ExperienceNet components and serves as shared documentation between HYDRA and the partner.
| Partner Concept | HYDRA Component | Details |
|---|---|---|
| District Cloud Server | HydraGuard Hub | WireGuard hub at 10.10.0.1, all tunnels terminate here |
| Partner Managed Location | HydraGuard venue (guard_type: partner) |
Partner manages provider edge router, VLANs, and site WireGuard tunnel |
| Hydra Managed Location | HydraGuard venue (guard_type: omada/linuxvm) or NeckAir (MikroTik) |
HYDRA does full network management |
| Body WireGuard tunnel | HydraGuard Air peer (10.10.100.x) |
Each Body creates its own tunnel, managed by HYDRA |
| Local Head-to-Body (VLAN) | HydraHead Flatscreen ResolvedHost() |
Probes LAN IP first, direct connection without WireGuard |
| Remote Head (browser) | HydraHead WebStream + HydraNeck WebRTC | WebRTC session through district server |
| Head selects best Body | Dual-IP logic (native) / eligible body selection (browser) | Always prefers local Body when available |
graph LR
Internet((Internet))
subgraph district["District Cloud Server\nManaged by HYDRA"]
direction TB
HUB["HydraGuard Hub\n10.10.0.1/24\nWireGuard :51820"]
NECK["HydraNeck WebRTC\ncontroller + workers"]
end
Internet --- HUB & NECK
subgraph partner_zone["Partner Managed Locations\nCan have local Body and Head networks (+SSID)\nCan be 100% HYDRA or shared with existing venue/office network"]
direction TB
subgraph site_a["Site A -- CIDR 10.101.0.0/20"]
direction LR
PE_A["Provider Edge Router\nVLAN trunk to WireGuard /26"]
VLAN_A_BODY["Body VLAN\n10.101.1.0/24"]
VLAN_A_HEAD["Head VLAN\n10.101.4.0/20"]
BODY_A1["Body\n10.101.1.2"]
BODY_A2["Body\n10.101.1.3"]
AP_A["Access Point\nExperienceNet"]
HEAD_A1["Head\n10.101.4.10"]
HEAD_A2["Head\n10.101.4.11"]
PE_A --- VLAN_A_BODY --- BODY_A1 & BODY_A2
PE_A --- VLAN_A_HEAD --- AP_A
VLAN_A_HEAD --- HEAD_A1 & HEAD_A2
HEAD_A1 -. "local via firewall rule" .-> BODY_A1
end
subgraph site_b["Site B -- CIDR 10.102.0.0/20"]
direction LR
PE_B["Provider Edge Router"]
BODY_B1["Body\n10.102.1.2"]
BODY_B2["Body\n10.102.1.3"]
HEAD_B1["Head\n10.102.4.10"]
PE_B --- BODY_B1 & BODY_B2
PE_B --- HEAD_B1
HEAD_B1 -. "local via firewall rule" .-> BODY_B1
end
subgraph site_c["Site C -- CIDR 10.103.0.0/20"]
direction LR
PE_C["Provider Edge Router"]
BODY_C1["Body\n10.103.1.2"]
AP_C["Access Point\nExperienceNet"]
HEAD_C1["Head\n10.103.4.10"]
PE_C --- BODY_C1
PE_C --- AP_C --- HEAD_C1
HEAD_C1 -. "local via firewall rule" .-> BODY_C1
end
EXPAND["... can be expanded as required"]
end
HUB -- WireGuard --- PE_A & PE_B & PE_C
HUB -. "WireGuard independent" .- BODY_A1 & BODY_A2 & BODY_B1 & BODY_B2 & BODY_C1
subgraph hydra_zone["HYDRA Managed Locations"]
direction TB
subgraph site_d["Site D -- MikroTik NeckAir\nCIDR 10.0.50.0/24"]
direction LR
RTR_D["MikroTik Router"]
BODY_D1["Body\n10.0.50.2"]
BODY_D2["Body\n10.0.50.3"]
HEAD_D1["Head\n10.0.50.10"]
RTR_D --- BODY_D1 & BODY_D2
RTR_D --- HEAD_D1
HEAD_D1 -- LAN --- BODY_D1
end
subgraph site_e["Site E -- Omada\nCIDR 10.0.1.0/24"]
direction LR
RTR_E["Omada Controller"]
BODY_E1["Body\n10.0.1.2"]
AP_E["Access Point\nExperienceNet"]
HEAD_E1["Head\n10.0.1.10"]
RTR_E --- BODY_E1
RTR_E --- AP_E --- HEAD_E1
HEAD_E1 -- LAN --- BODY_E1
end
end
HUB -- WireGuard --- RTR_D & RTR_E
HUB -. "WireGuard independent" .- BODY_D1 & BODY_D2 & BODY_E1
subgraph standalone["Standalone Bodies"]
AIR1["Air Body\n10.10.100.1"]
AIR2["Air Body\n10.10.100.2"]
end
HUB -. WireGuard .- AIR1 & AIR2
subgraph remote["Remote Heads"]
direction TB
REMOTE_WIFI["Home WiFi"]
REMOTE_5G["Public 5G"]
BROWSER["Browser"]
end
HUB -- WireGuard --- REMOTE_WIFI & REMOTE_5G
NECK -- WebRTC --- BROWSER
subgraph partner_mgmt["Partner Management (out of scope)"]
PDC["Partner Datacenter"]
end
PDC -. "Management VPN" .- PE_A & PE_B & PE_C
classDef body fill:#1e40af,stroke:#3b82f6,color:#fff
classDef head fill:#92400e,stroke:#f59e0b,color:#fff
classDef partner fill:#065f46,stroke:#34d399,color:#fff
classDef district_node fill:#312e81,stroke:#818cf8,color:#fff
classDef remote_node fill:#92400e,stroke:#f59e0b,color:#fff
classDef ap fill:#065f46,stroke:#10b981,color:#fff
classDef vlan fill:#0f172a,stroke:#334155,color:#94a3b8
class BODY_A1,BODY_A2,BODY_B1,BODY_B2,BODY_C1,BODY_D1,BODY_D2,BODY_E1,AIR1,AIR2 body
class HEAD_A1,HEAD_A2,HEAD_B1,HEAD_C1,HEAD_D1,HEAD_E1 head
class PE_A,PE_B,PE_C,PDC,RTR_D,RTR_E partner
class HUB,NECK district_node
class REMOTE_WIFI,REMOTE_5G,BROWSER remote_node
class AP_A,AP_C,AP_E ap
class VLAN_A_BODY,VLAN_A_HEAD vlan
All partner-managed locations typically maintain a VPN back to the partner's datacenter for remote management and support. This is entirely separate from the HYDRA streaming infrastructure and does not carry any HYDRA traffic.
At partner-managed locations:
/26 trunk subnetIn HydraGuard, these are configured as venues with a partner guard type. The partner guard type generates a minimal WireGuard config without PostUp scripts (since the partner manages the router).
Regardless of site type, every Body independently establishes its own WireGuard tunnel to the district server:
10.10.100.x range (Air peers)This is the critical path for remote Heads: they connect to the district server via WireGuard and route through it to reach any Body in the mesh. Heads directly connected to the internet can also create their own WireGuard tunnel (on installation done by the HYDRA app), without needing a site gateway.
| Responsibility | Partner Managed | Hydra Managed |
|---|---|---|
| Site networking (VLANs, routing) | Partner | HYDRA |
| provider edge router / gateway | Partner | HYDRA (Omada/MikroTik/Linux) |
| Site-to-district WireGuard | Partner (using HYDRA peer profiles) | HYDRA |
| Body-to-district WireGuard | HYDRA | HYDRA |
| Local Head-to-Body firewall | Partner | HYDRA |
| Remote Head access | HYDRA (via district server) | HYDRA (via district server) |
| Streaming software (Sunshine) | HYDRA | HYDRA |
| Head software | HYDRA | HYDRA |
For each partner-managed location, HYDRA provides:
10.10X.0.0/20 for management, 10.10X.4.0/20 for heads)