Wheelhouse docs

High availability#

Network → High availability, at /ha. One page with four tabs, because the two halves of the subject are one subject: keeping traffic flowing when something fails. More than one way out is the Uplinks tab; more than one router is VRRP and Conntrack sync; CLI shows all of it as commands.

The old address /wan redirects here — ui/src/App.tsx.

The four tabs#

TabOwnsDocumented on
Uplinksprotocols failover, load-balancing wan, protocols static table, policy route, and the nat source rules that masquerade behind each uplinkUplinks (multi-WAN)
VRRPhigh-availability vrrpVRRP
Conntrack syncservice conntrack-syncConntrack sync
CLInothing — it is a readbelow

The subtree shown beside the page title changes with the tab: the VRRP and Conntrack tabs show high-availability · service conntrack-sync, the others show protocols failover · load-balancing wan · policy route.

The tab is in the query string, so a tab can be linked to and a browser reload keeps it: /ha?tab=vrrp, /ha?tab=conntrack, /ha?tab=cli. The Uplinks tab is the default and clears the query rather than writing ?tab=uplinks.

The CLI tab#

Six configuration reads, concatenated into one block:

protocols failover
load-balancing wan
protocols static table
policy route
high-availability
service conntrack-sync

Each is fetched with GET /api/config/commands?path=… and a path that is unset is skipped rather than erroring, so the block holds only what exists. On a router with none of them configured it reads # nothing configured under any of these: … followed by the list.

This is the block to copy when you are building the second router of a pair: everything the pair needs, in the order the CLI accepts it, minus the parts that must differ between the two — the VRRP priority, and the addresses.

Everything here is a dangerous change#

Every configuration path these tabs write is matched by isDangerousPath: protocols failover, protocols static table, load-balancing, policy route, high-availability, nat, and anything containing address, dhcp-options or default-route-distance. That means the Commit Bar offers commit-confirm and styles the plain Commit as destructive for every change staged on this page — ui/src/lib/format.ts.

The reason is the same for all of them: these settings decide which way packets leave the router, and your session is packets leaving the router. Commit-confirm uses VyOS' own mechanism, so the failure path is a reboot into the previous configuration — not a silent revert, and not a router you have to drive to.

What the agent does not do#

Three limits hold across the whole page and are repeated on the tab pages that they affect.

  • The agent probes nothing. Every health verdict on this page is the router's own: is the failover daemon's route in the forwarding table, what does show wan-load-balance say, what does show vrrp say. Wheelhouse pings no targets and keeps no probe history.
  • It does not renumber or reorder anything. New rules take the next free number the page suggests; existing rules are left alone.
  • It does not touch the firewall. A second uplink needs the same input policy as the first, and that is the Firewall page's job.

See also#

  • Uplinks (multi-WAN) — the tab most people came here for.
  • VRRP — two routers, one address.
  • Conntrack sync — keeping flows alive across a failover.
  • Static routes — the forwarding table these mechanisms compete to write.
  • Addressing — the distances a DHCP or PPPoE client gives its own default route, which is where uplink ranking starts.

Checked against ui/src/pages/Ha.tsx, ui/src/App.tsx, ui/src/lib/format.ts, docs/multi-wan.md, docs/ui.md.

Updated 2026-09-02 manual network ha multi-wan vrrp