Skip to content

O1.2 - Make relays figure out their own IPv6 address

See Proposal 312: Tor Relay Automatic IPv6 Address Discovery: https://gitweb.torproject.org/torspec.git/tree/proposals/312-relay-auto-ipv6-addr.txt

The child tickets are in proposal section order, but they will probably be implemented in this order:

Dependencies:

Pre-Implementation:

Explicit IPv6 Configurations:

  • Make the Address torrc Option Support IPv6 Literals
  • Use Advertised ORPort IPv4 and IPv6 Addresses in Descriptors
  • Use Local Interface IPv6 Address

Directory Authority Security:

  • Stop Directory Authorities Resolving *Port Hostnames
  • Limit Directory Authority Addresses to Address and ORPort

Remote IPv6 Information:

  • Make the Address torrc Option Resolve IPv6 Hostnames
  • Use Own Hostname IPv6 Addresses
  • Use Directory Header IPv6 Addresses
  • Update Directory Spec for IPv6 X-Your-Address-Is

Auto IPv6 ORPort:

  • Automatically Enable an IPv6 ORPort
  • Add an AddressDisableIPv6 torrc option
  • Publish IPv4 Descriptor on Guessed IPv6 Reachability Failure

Internal Testing:

Public Tor Network Testing:

  • Test Relay IPv6 Addresses Discovery on the Tor Network
  • Ask Relay Operators to Test IPv6 Addresses Discovery

Children:

  • #33679 (closed) Make sure every address function that takes for_listening supports IPv6
  • #33073 (closed) Write a proposal for Tor Relays to Automatically Find their IPv6 Address
  • #5940 (closed) Figure out own IPv6 address
  • #33091 (closed) Remove redundant checks in ip_address_changed()
  • #32720 (closed) How much bandwidth does a user use to bootstrap and maintain dir info? How has that changed over time?
  • #33233 (closed) Prop 312: 3.2.1. Make the Address torrc Option Support IPv6 Literals
  • #33234 (closed) Prop 312: 3.2.1. Make the Address torrc Option Resolve IPv6 Hostnames
  • #33235 (closed) Prop 312: 3.2.1. Test Address torrc Option Configurations
  • #33236 (closed) Prop 312: 3.2.2. Use Advertised ORPort IPv4 Address in Descriptors
  • #33237 (closed) Prop 312: 3.2.2. Stop Directory Authorities Resolving *Port Hostnames
  • #33238 (closed) Prop 312: 3.2.3. Use Local Interface IPv6 Address
  • #33239 (closed) Prop 312: 3.2.3 Limit Directory Authority Addresses to Address and ORPort
  • #33240 (closed) Prop 312: 3.2.4. Use Own Hostname IPv6 Addresses
  • #33241 (closed) Prop 312: 3.2.5. Use Directory Header IPv6 Addresses
  • #33244 (closed) Prop 312: 3.2.5. Use IPv6 Addresses from Directory Servers
  • #33245 (closed) Prop 312: 3.2.6. Add an AddressDisableIPv6 torrc option
  • #33246 (closed) Prop 312: 3.2.7. Automatically Enable an IPv6 ORPort
  • #33247 (closed) Prop 312: 3.2.7. Publish IPv4 Descriptor on Guessed IPv6 Reachability Failure
  • #33248 (closed) Prop 312: 3.5.5. Detailed Address Resolution Logs
  • #33252 (closed) Prop 312: 5.1. Test Relay IPv6 Addresses Discovery on the Tor Network
  • #33253 (closed) Prop 312: 5.1. Ask Relay Operators to Test IPv6 Addresses Discovery
  • #40022 (closed) Prop 312: Relay learn address from NETINFO cell
  • #40025 (closed) Prop 312: Make relay pick IPv4 or/and IPv6 resolved address in descriptor
  • #33768 (closed) Make tor_inet_pton() handle bad addresses consistently on Windows
  • #33789 (closed) Before making changes, move router pick address functions to their own C file
Edited by David Goulet
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information