Skip to content

Help wanted: CGNAT calibration samples (T-Mobile US, Jio, Starlink, others) #6

@vnykmshr

Description

@vnykmshr

The ask

We need natcheck --json output from devices behind CGNAT carriers so we can replace the current DirectP2P = "unknown" placeholder with carrier-tagged possible / unlikely verdicts.

natcheck currently detects CGNAT (observed public IP in 100.64.0.0/10) and refuses to forecast — see internal/classify/classify.go. One carrier with consistent evidence unlocks a real verdict in a v0.1.x patch.

Carriers wanted

  • T-Mobile US (mobile data)
  • Reliance Jio (India, mobile data)
  • Starlink (residential)
  • Any other connection where your public IP falls in 100.64.0.0/10

How to help

  1. Install: go install github.com/1mb-dev/natcheck/cmd/natcheck@latest or brew tap 1mb-dev/tap && brew install natcheck
  2. Run on the CGNAT-connected device: natcheck --json
  3. Comment with the JSON plus:
    • Carrier + plan (e.g. "T-Mobile US postpaid", "Jio prepaid 5G")
    • Connection type (mobile data / home internet / hotspot / Starlink dish)
    • Region (country; state/region if carrier behavior varies by market)
    • natcheck --version output
    • Direct P2P in practice — does it work? With what app? (Jitsi peer-to-peer, Discord voice, FaceTime, game console NAT type)

CGNAT pools rotate, so 2–3 runs spaced across different times of day are more useful than one.

Redaction

Scrub anything that identifies your specific machine: public IP → 198.51.100.x (RFC 5737), private source → 192.168.1.2. Keep ports, RTTs, error shapes, and external STUN server IPs as observed. If unsure, paste anyway — we'll redact before committing to docs/samples/cgnat.txt. Full guide: .github/CONTRIBUTING.md.

Contributors credited in the release notes for the patch their sample unlocks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions