tailscale / tailscale/tailscale

Tailscale can't connect to IPv4-only peers over a NAT64 network

Open
#11,437 1 comment 7 reactions 0 assignees View on GitHub
bug connectivity L1 Very few P2 Aggravating T3 Performance/Debugging
Dominant language
Go
Stars
36.5k
Forks
3.2k
Avg merge
1d 23h
Merged PRs (30d)
132

Description

### What is the issue?

On a NAT64 network, the network exposes a special route (generally 64:ff9b::/96) which will be translated to IPv4 addresses as it leaves the network. This is complemented by DNS64, where the DNS server catches AAAA queries for hosts which only have A records and creates AAAA records locally by mapping the content of the A record into the NAT64 prefix.

Protocols where IP addresses are exchanged outside of DNS need to perform the translation themselves. The network-specific prefix can be discovered by making a AAAA query for ipv4only.arpa to the local DNS server. This record will resolve to known IPv4 addresses. If AAAA records are found, the network's NAT64 prefix can be determined, and IPv4 peer addresses can be translated as appropriate.

### Steps to reproduce

- Deploy one Tailscale node on an IPv4-only connection
- Deploy another node on an IPv6-only connection with NAT64
- Attempt to establish a connection between the nodes

On the admin console, I can see that the IPv4-only node has published its address (`103.100.225.XXX`), and from the IPv6 node, I am able to ping the mapped version of this address (`64:ff9b::6764:e1XX`). However, the clients are connecting via relay, because neither can find the path to the other.

### Are there any recent changes that introduced the issue?

_No response_

### OS

_No response_

### OS version

_No response_

### Tailscale version

_No response_

### Other software

_No response_

### Bug report

BUG-bd1b951a2ec893333ec5e52005227e46e626175d67854ba743b8c84929ac1732-20240317062213Z-b80b9e4c2aed746e

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.