[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
Sat Apr 6 01:41:42 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:
Component: Core Tor/Tor | Version:
Severity: Normal | Resolution:
Keywords: ipv6, prop299 | Actual Points:
Parent ID: #27491 | Points:
Reviewer: nickm | Sponsor:
---------------------------+-----------------------------------
Changes (by teor):
* status: needs_review => needs_information
Comment:
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.)
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.
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
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/29801#comment:11>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list