Tailscale NAT Traversal and Fallback Mechanism
Comprehensive diagram showing Tailscale's multi-technique NAT traversal approach and fallback to DERP relay
Overview
This diagram illustrates Tailscale’s sophisticated NAT traversal techniques and the decision flow for using direct connections versus DERP relay fallback.
graph TD
Start[Connection Request] --> GetInfo[Gather Network Info]
GetInfo --> STUN[STUN Discovery
Get Public IP:Port]
GetInfo --> UPnP[Try UPnP/NAT-PMP
Port Mapping]
GetInfo --> Local[Detect Local
Network Interfaces]
STUN --> Analysis{Analyze NAT Type}
UPnP --> Analysis
Local --> Analysis
Analysis -->|Easy NAT| EasyNAT[Full Cone NAT
or Port Restricted]
Analysis -->|Hard NAT| HardNAT[Symmetric NAT
or CGNAT]
Analysis -->|No UDP| NoUDP[UDP Blocked
TCP Only]
EasyNAT --> DirectAttempt[Attempt Direct
Connection]
HardNAT --> AdvancedNAT[Advanced NAT
Traversal]
DirectAttempt --> SimulTX[Simultaneous
Transmission]
SimulTX --> DISCO[DISCO Protocol
Endpoint Discovery]
AdvancedNAT --> Birthday[Birthday Paradox
Port Prediction]
AdvancedNAT --> MultiPath[Try Multiple
Source Ports]
Birthday --> DISCO
MultiPath --> DISCO
DISCO --> Success{Connection
Established?}
Success -->|Yes| Direct[Direct P2P
WireGuard Tunnel
✓ Low Latency
✓ High Throughput]
Success -->|No| DERPRelay[DERP Relay
Fallback
○ Reliable
○ Higher Latency]
NoUDP --> DERPRelay
DERPRelay --> Monitor[Monitor for
Network Changes]
Monitor --> Retry[Periodic Retry
Direct Connection]
Retry --> DirectAttempt
style Start fill:#1976d2,stroke:#fff,stroke-width:2px,color:#fff
style Direct fill:#388e3c,stroke:#fff,stroke-width:2px,color:#fff
style DERPRelay fill:#f57c00,stroke:#fff,stroke-width:2px,color:#fff
style NoUDP fill:#d32f2f,stroke:#fff,stroke-width:2px,color:#fff
classDef technique fill:#e3f2fd,stroke:#1976d2,stroke-width:1px,color:#000
class STUN,UPnP,Local,SimulTX,Birthday,MultiPath technique
classDef decision fill:#fff3e0,stroke:#f57c00,stroke-width:2px,color:#000
class Analysis,Success decision
NAT Traversal Techniques
Primary Methods
STUN (Session Traversal Utilities for NAT)
- Discovers public IP and port mappings
- Identifies NAT behavior characteristics
Simultaneous Transmission
- Both peers send packets at the same time
- Opens bidirectional firewall holes
Port Mapping Protocols
- UPnP (Universal Plug and Play)
- NAT-PMP (NAT Port Mapping Protocol)
- Creates persistent port forwards
Advanced Techniques
Birthday Paradox
- Statistical approach for symmetric NATs
- Tries multiple port combinations
Multi-Path Probing
- Tests various source ports
- Increases connection success probability
Fallback Strategy
When all NAT traversal techniques fail, Tailscale falls back to DERP relay:
- Instant Connectivity: No connection failures from user perspective
- Continuous Optimization: Keeps trying direct connection in background
- Seamless Transition: Switches to direct when possible without disruption
Network Scenarios
- Easy NAT: Full cone or restricted cone NAT - usually succeeds with basic techniques
- Hard NAT: Symmetric NAT or CGNAT - requires advanced techniques
- No UDP: Corporate firewalls blocking UDP - must use DERP over HTTPS/TCP