Skip to content

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 legacy/trac#33789 (moved) first.

Make relays and bridges use the Address torrc option to find their IPv6 addresses.

This ticket covers the IPv6 literal case:

  1. 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.
  2. 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 legacy/trac#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 legacy/trac#33235 (moved).

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