NodeConfig and MasterNodeConfig gain an optional addresses[] field
for fallback addresses tried in order after the primary address.
Provides resilience when Tailscale DNS is down or a node is only
reachable via LAN.
- dialAgentMulti: tries each address with a 3s health check, returns
first success
- forEachNode: uses multi-address dialing
- AgentPool.AddNodeMulti: master tries all addresses when connecting
- AllAddresses(): deduplicates primary + fallback addresses
Config example:
[[nodes]]
name = "rift"
address = "rift.scylla-hammerhead.ts.net:9444"
addresses = ["100.95.252.120:9444", "192.168.88.181:9444"]
Existing configs without addresses[] work unchanged.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>