[tor-bugs] #33246 [Core Tor/Tor]: Prop 312: 3.2.7. Automatically Enable an IPv6 ORPort

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Apr 27 08:57:46 UTC 2020


#33246: Prop 312: 3.2.7. Automatically Enable an IPv6 ORPort
---------------------------+------------------------------------
 Reporter:  teor           |          Owner:  teor
     Type:  enhancement    |         Status:  assigned
 Priority:  Medium         |      Milestone:  Tor: 0.4.4.x-final
Component:  Core Tor/Tor   |        Version:
 Severity:  Normal         |     Resolution:
 Keywords:  prop312, ipv6  |  Actual Points:
Parent ID:  #33049         |         Points:  1
 Reviewer:                 |        Sponsor:  Sponsor55-must
---------------------------+------------------------------------

Old description:

> 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

New description:

 After we implement #33233, 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 #33235.

--

Comment (by teor):

 Note dependencies on #33233 and #33235.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/33246#comment:1>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list