get_vpn_tunnels() keyed WireGuard peers with a running counter, so a peer added ahead of an existing one renumbered every peer after it, and whatever a consumer stores per key moved to another peer.
The key is now wireguard-{interface}-{first 8 chars of the public key}, as in napalm-linux, with the base64 made URL-safe (+ → -, / → _) because the key is used as a URL path segment. Two peers sharing the prefix get the whole key; a row without a public key keeps its position. IPsec and OpenVPN keys were already stable.
Every WireGuard key changes once with this change. netOrk carries its per-tunnel metadata and checks across (NetOrk/netork#1654), so that change has to be deployed before or together with this pin.
Checked read-only against a live OPNsense 26.7 firewall with four peers on three interfaces: four distinct keys, one of them with a / turned into _.
Fixes #32.
`get_vpn_tunnels()` keyed WireGuard peers with a running counter, so a peer added ahead of an existing one renumbered every peer after it, and whatever a consumer stores per key moved to another peer.
The key is now `wireguard-{interface}-{first 8 chars of the public key}`, as in napalm-linux, with the base64 made URL-safe (`+` → `-`, `/` → `_`) because the key is used as a URL path segment. Two peers sharing the prefix get the whole key; a row without a public key keeps its position. IPsec and OpenVPN keys were already stable.
**Every WireGuard key changes once with this change.** netOrk carries its per-tunnel metadata and checks across (NetOrk/netork#1654), so that change has to be deployed before or together with this pin.
Checked read-only against a live OPNsense 26.7 firewall with four peers on three interfaces: four distinct keys, one of them with a `/` turned into `_`.
get_vpn_tunnels() keyed WireGuard peers with a running counter over the
peer rows, so a peer added ahead of an existing one renumbered every peer
after it. Whatever a consumer stores per key moved with it: netOrk's site
link and tunnel check ended up on a new, offline peer and alarmed while the
real tunnel was up.
The key is now the interface and the start of the public key, as in
napalm-linux, made URL-safe because the key is a path segment. Two peers
sharing the prefix get the whole key; a row without a public key keeps its
position. IPsec and OpenVPN keys were already stable.
Every WireGuard key changes once; netOrk carries its
per-tunnel metadata across (netork#1654).
get_vpn_tunnels() grew past the quality baseline with the key fix. The
WireGuard part is pure parsing of /api/wireguard/service/show, like the
listen ports in listening.py, so it moves to wireguard.py and the driver
calls it. opnsense.py shrinks from 3125 to 3082 lines.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Fixes #32.
get_vpn_tunnels()keyed WireGuard peers with a running counter, so a peer added ahead of an existing one renumbered every peer after it, and whatever a consumer stores per key moved to another peer.The key is now
wireguard-{interface}-{first 8 chars of the public key}, as in napalm-linux, with the base64 made URL-safe (+→-,/→_) because the key is used as a URL path segment. Two peers sharing the prefix get the whole key; a row without a public key keeps its position. IPsec and OpenVPN keys were already stable.Every WireGuard key changes once with this change. netOrk carries its per-tunnel metadata and checks across (NetOrk/netork#1654), so that change has to be deployed before or together with this pin.
Checked read-only against a live OPNsense 26.7 firewall with four peers on three interfaces: four distinct keys, one of them with a
/turned into_.