updates tailscale/corp#33007
When a selected exit node can't carry internet traffic, blackhole default
routes are installed and all internet traffic is dropped. That is the
correct behavior -- better to drop than leak to the local network, as
documented on ipn.Prefs.ExitNodeID -- but it was entirely silent: the
stable-ID lookup in nodeBackend.updateRouteManagerPrefs misses without a
log line, and Status leaves ExitNodeStatus nil. The user sees a healthy
Tailscale with no internet.
Add an exit-node-unavailable health warning covering every way the
selection can fail to carry traffic, reported via health.ArgExitNodeReason.
The warning names the exit node, caching its display name while it is
still a peer so the name survives its departure, and falls back to the
stable ID or IP. When the selection is mandated by the ExitNodeID or
ExitNodeIP policy settings, the message tells the user to contact their
network administrator instead of suggesting they pick another exit node.
Signed-off-by: Jonathan Nobels <jonathan@tailscale.com>