Skip to content

How to decouple Tailscale internal IP for Cluster communication from public A records in cluster-catalog? #2083

Description

@ycgz2008

Hi ,

Thank you for developing this amazing DNS server! I am running into a configuration dilemma when setting up a Primary/Secondary cluster using Tailscale for internal node communication.

My Setup & Goal:
I have 1 Primary node and several Secondary nodes (ns1 to ns5).

All nodes are connected via Tailscale VPN (100.64.0.0/10 range).

My goal:

Cluster internal communication (API, Zone Transfers/AXFR, and Notify) should strictly use Tailscale internal IPs (100.x.x.x) for security.

Public DNS resolution should advertise the real public IPs of my VPS nodes as the A / AAAA records for ns1 - ns5 in cluster-catalog and my primary domain zone.

The Problem:
If I enter the Tailscale internal IPs (100.x.x.x) in Secondary Node IP Addresses when joining the cluster:

The cluster syncs over Tailscale perfectly.

However, the auto-generated A records for my nameservers in cluster-catalog and my zone get updated to 100.x.x.x (Tailscale IPs), causing public DNS queries from the internet to fail.

If I change Secondary Node IP Addresses to the Public IPs:

The public A records become correct (Public IPs).

However, cluster communication no longer routes through the private Tailscale tunnel.

My Question:
What is the recommended way to configure the cluster so that nodes communicate and sync exclusively via Tailscale internal IPs (100.x.x.x), while the DNS server automatically publishes real Public IPs for the nameserver A/AAAA records to the outside world?

Should I be configuring Advertised IP Addresses under Settings -> Cluster differently, or is there another way to decouple cluster transport IPs from the published name server records?

Thanks in advance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions