summaryrefslogtreecommitdiffhomepage
path: root/cmd/natc/ippool
AgeCommit message (Collapse)AuthorFilesLines
2025-08-20cmd/natc,tsconsensus: add cluster config adminFran Bull1-0/+17
Add the ability for operators of natc in consensus mode to remove servers from the raft cluster config, without losing other state. Updates #14667 Signed-off-by: Fran Bull <fran@tailscale.com>
2025-08-20tsconsensus,cmd/natc: add 'follower only' bootstrap optionFran Bull1-3/+12
Currently consensus has a bootstrap routine where a tsnet node tries to join each other node with the cluster tag, and if it is not able to join any other node it starts its own cluster. That algorithm is racy, and can result in split brain (more than one leader/cluster) if all the nodes for a cluster are started at the same time. Add a FollowOnly argument to the bootstrap function. If provided this tsnet node will never lead, it will try (and retry with exponential back off) to follow any node it can contact. Add a --follow-only flag to cmd/natc that uses this new tsconsensus functionality. Also slightly reorganize some arguments into opts structs. Updates #14667 Signed-off-by: Fran Bull <fran@tailscale.com>
2025-06-11cmd/natc: allow specifying the tsnet state dirFran Bull1-31/+1
Which can make operating the service more convenient. It makes sense to put the cluster state with this if specified, so rearrange the logic to handle that. Updates #14667 Signed-off-by: Fran Bull <fran@tailscale.com>
2025-06-05cmd/natc: use new on disk state store for consensusFran Bull1-1/+32
Fixes #16027 Signed-off-by: Fran Bull <fran@tailscale.com>
2025-06-04cmd/natc: add optional consensus backendFran Bull5-6/+1003
Enable nat connector to be run on a cluster of machines for high availability. Updates #14667 Signed-off-by: Fran Bull <fran@tailscale.com>
2025-04-14cmd/natc: cleanup unused stateFran Bull2-9/+1
perPeerState no longer needs to know the v6ULA. Updates #14667 Signed-off-by: Fran Bull <fran@tailscale.com>
2025-04-11cmd/natc: only store v4 addressesFran Bull2-58/+35
Because we derive v6 addresses from v4 addresses we only need to store the v4 address, not both. Updates #14667 Signed-off-by: Fran Bull <fran@tailscale.com>
2025-04-06cmd/natc: move address storage behind an interfaceFran Bull4-0/+536
Adds IPPool and moves all IP address management concerns behind that. Updates #14667 Signed-off-by: Fran Bull <fran@tailscale.com>