Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Tor Tor
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 313
    • Issues 313
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 34
    • Merge requests 34
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • The Tor Project
  • Core
  • TorTor
  • Issues
  • #33246
Closed
Open
Created Feb 11, 2020 by teor@teor

Prop 312: 3.2.7. Automatically Enable an IPv6 ORPort

After we implement legacy/trac#33233 (moved), relays (and bridges) should try to open an IPv6 ORPort.

The ORPort should be opened on the port configured in the relay's ORPort torrc option. Relay operators can use the IPv4Only and IPv6Only options to configure different ports for IPv4 and IPv6.

If the ORPort is auto-detected, there will not be any specific bind address. (And the detected address may actually be on a NAT box, rather than the local machine.) Therefore, relays should attempt to bind to all IPv4 and IPv6 addresses (or all interfaces).

Some operating systems expect applications to bind to IPv4 and IPv6 addresses using separate API calls. Others don't support binding only to IPv4 or IPv6, and will bind to all addresses whenever there is no specified IP address (in a single API call). Tor should support both styles of networking API.

In particular, if binding to all IPv6 addresses fails, relays should still try to discover their public IPv6 address, and check the reachability of that address. Some OSes may not support the IPV6_V6ONLY flag, but they may instead bind to all addresses at runtime. (The tor install may also have compile-time / runtime flag mismatches.)

See proposal 312, section 3.2.7, IPv6 ORPort part: https://gitweb.torproject.org/torspec.git/tree/proposals/312-relay-auto-ipv6-addr.txt#n540

Once this ticket is implemented, we should test the different IPv4/IPv6 configs listed in legacy/trac#33235 (moved).

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking