[tor-bugs] #29801 [Core Tor/Tor]: Add teor's suggestions for Prop#299 (referring IPv4 or IPv6 based on IP Version Failure Count)
Tor Bug Tracker & Wiki
blackhole at torproject.org
Mon Apr 8 20:31:31 UTC 2019
#29801: Add teor's suggestions for Prop#299 (referring IPv4 or IPv6 based on IP
Version Failure Count)
---------------------------+-----------------------------------
Reporter: neel | Owner: neel
Type: enhancement | Status: needs_information
Priority: Medium | Milestone: Tor: unspecified
Component: Core Tor/Tor | Version:
Severity: Normal | Resolution:
Keywords: ipv6, prop299 | Actual Points:
Parent ID: #27491 | Points:
Reviewer: nickm | Sponsor:
---------------------------+-----------------------------------
Comment (by neel):
Sorry for the delay in responding.
Replying to [comment:11 teor]:
> Here is my review:
>
> I am not sure if we should implement this proposal.
>
> I think this proposal is really complex. It risks destabilising Tor's
network code. It uses a lot of randomness, which has led to hard-to-
diagnose network bugs in the past. (I suggested many of the ideas in the
proposal, so this complexity and risk is my fault.)
>
> The proposal is also non-standard: it claims to be "Happy Eyeballs", but
it does not implement [https://tools.ietf.org/html/rfc8305 RFC 8305]. (The
simplest version of RFC 8305 uses IPv4 and IPv6 addresses for the same
machine. It tries IPv6, waits 250ms, then tries IPv4.)
Makes sense.
> I'd like to see an alternative proposal for implementing Happy Eyeballs
in Tor. (Neel, you don't have to write that proposal.) Then we can decide
which alternative to accept.
Sounds good.
I am happy to write a proposal if nobody else is willing to volunteer for
that role. Whether or not I write the new proposal, I still plan to
implement it and write the code for the new proposal.
> Here's a quick sketch of what a minimal Happy Eyeballs proposal would
look like:
>
> When selecting addresses:
> 1. Modify extend_info_t so it contains an IPv4 and an IPv6 address
> 2. When a bridge or relay has multiple addresses, add them both to the
extend_info_t.
>
> When connecting using an extend_info_t:
> 1. If there is an existing authenticated connection, use it.
> 2. If not, connect using the first available, allowed, and preferred
address. (IPv4 by default.)
> 3. Then, schedule a timer for connecting using the other address, if it
is available and allowed. We should choose a timer value that is higher
than most clients successful TLS authentication time.
>
> When a connection successfully authenticates using TLS:
> 1. Cancel any other connection timers
> 2. Cancel any other in-progress connections
>
> When all available and allowed connection attempts fail:
> 1. Tell the rest of Tor that the connection has failed
Sounds good.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/29801#comment:13>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list