Prop 312: 3.2.1. Make the Address torrc Option Support IPv6 Literals
We can work on this ticket now, but we should do the code movement in #33789 (moved) first.
Make relays and bridges use the Address torrc option to find their IPv6 addresses.
This ticket covers the IPv6 literal case:
-
Explicit IP addresses:
- allow the option to be specified up to two times,
- use the IPv4 address for IPv4,
- use the IPv6 address for IPv6. Configuring two addresses in the same address family is a config error.
-
Hostnames / DNS names:
- allow the option to be specified up to two times,
- look up the configured name,
- use the first IPv4 and IPv6 address returned by the resolver, and Resolving multiple addresses in the same address family is not a runtime error, but only the first address from each family will be used.
It is an error to configure an Address option with a private IPv4 or IPv6 address. (If tor is configured with a custom set of directory authorities, private addresses should be allowed, with a notice-level log.)
See proposal 312, section 3.2.1, case 1: https://gitweb.torproject.org/torspec.git/tree/proposals/312-relay-auto-ipv6-addr.txt#n252
As soon as we implement this ticket, we should implement #33246 (moved) to automatically open an IPv6 ORPort based on the Address config. (Or any discovered addresses.)
Then we should test the different IPv4/IPv6 configs listed in #33235 (moved).