Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
Trac
Trac
  • Project overview
    • Project overview
    • Details
    • Activity
  • Issues 246
    • Issues 246
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Operations
    • Operations
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Create a new issue
  • Issue Boards

GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

  • Legacy
  • TracTrac
  • Issues
  • #34129

Closed (moved)
Open
Opened May 06, 2020 by Cecylia Bocovich@cohosh

Use STUN to determine NAT behaviour of peers

In investigating high proxy failure rates at clients (#33666 (moved)) and the logistics of running our own STUN server (#25591 (moved)), I came across RFC5780, which outlines steps to identify NATs with "endpoint independent mapping and filtering".

Section 4.3 outlines how a client can use a STUN server with an alternate IP address (returned in the first STUN binding request response) to determine how restrictive their NAT is.

This would be useful to match up clients with snowflake proxies that have compatible NATs. We still have the following questions:

  • are there public STUN servers that support this feature? Yes there are several candidates.

  • does the pion/stun library we use support this feature for STUN clients? Not yet but we can implement the feature.

  • If we're able to implement our own STUN server behind a domain-fronted connection (#25591 (moved)), how can we implement this functionality?

I see at least one open source STUN server implementation that claims to support this (written in C): https://github.com/coturn/coturn

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: legacy/trac#34129