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:
- Propose and implement IPv6 ORPort reachability checks on relays (O1.1, legacy/trac#33048 (moved))
Pre-Implementation:
- Test IPv4 Address Detection using Chutney (O1.3, legacy/trac#33250 (moved))
- Detailed Address Resolution Logs
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:
- Test Relay IPv6 Addresses Discovery using Chutney (O1.3, legacy/trac#33251 (moved))
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