v0.7.2 — NAT auto-detection on by default
v0.7.2 — NAT auto-detection on by default
What changed
For operators: you no longer need to set --auto-detect-nat or IICP_AUTO_DETECT_NAT=true. The SDK now runs NAT detection on every startup automatically. To opt out: IICP_AUTO_DETECT_NAT=false.
External IP probe: defaults to https://api.ipify.org so FRITZ!Box/CGNAT detection works out of the box (FRITZ!Box sometimes returns 0.0.0.0 from UPnP GetExternalIPAddress; the probe URL provides the real WAN IP).
IPv6 pinhole warning: when the router rejects AddPinhole (e.g. FRITZ!Box error 606), the SDK now logs a clear warning explaining what to do — either open the firewall port manually or use relay-as-last-resort (IICP_RELAY_WORKER_ENDPOINT).
Tier ≥3 auto-mesh: when NAT detection returns unreachable (CGNAT + no IPv6 path) and no relay endpoint is configured, mesh is automatically enabled so relay-capable peers can be discovered via gossip.
NAT detection tier summary
| Tier | Method | When |
|---|---|---|
| 0 | Direct (public IPv4 or operator-configured endpoint) | VPS/cloud or manual --public-endpoint |
| 1 | UPnP/IGD port mapping → CGNAT check → IPv6 fallback | Home router with UPnP |
| 2 | IPv6 GUA + UPnP IGDv2 AddPinhole | FRITZ!Box with IGDv2 + IPv6 |
| 3 | Relay-as-last-resort | CGNAT + no IPv6 |
| 4 | Unreachable | No path available |