[tor-bugs] #18348 [Tor]: Tor conflates IPv4 Dir port with IPv6 OR Port

Tor Bug Tracker & Wiki blackhole at torproject.org
Sat Feb 20 13:05:59 UTC 2016


#18348: Tor conflates IPv4 Dir port with IPv6 OR Port
-----------------------+------------------------------------
 Reporter:  sysrqb     |          Owner:
     Type:  defect     |         Status:  needs_review
 Priority:  Very High  |      Milestone:  Tor: 0.2.8.x-final
Component:  Tor        |        Version:  Tor: 0.2.8.1-alpha
 Severity:  Major      |     Resolution:
 Keywords:             |  Actual Points:  small
Parent ID:             |         Points:  small
  Sponsor:             |
-----------------------+------------------------------------
Changes (by teor):

 * version:  Tor: unspecified => Tor: 0.2.8.1-alpha
 * points:   => small
 * actualpoints:   => small


Comment:

 There are two interrelated issues here:
 * enabling IPv4 on all relays wasn't working correctly
 * using IPv4/IPv6 based on the configured bridge address wasn't working
 correctly

 Please see my branch bug18348-v2 on https://github.com/teor2345/tor.git

 '''Relays'''

 Replying to [comment:3 sysrqb]:
 > So, yes and no. Yes, that patch does what's expected. teor, is this what
 you were planning or did you have a better patch? I don't think this is
 completely the correct answer, but it seems good enough for now.

 Your patch is OK - it enables IPv4 for all relays. But we want to allow
 relays to use IPv6 if they configure it (in addition to IPv4).

 25543387ede5a4143d9ef4fdff2b34846ca788c6 prevents relays from disabling
 IPv4.
 a4eddfff666226014545efd6f5bf390173c0fdfa refactors the code to make it
 clearer, and adds comments.

 > But, on the other hand, no, this doesn't completely solve the problem
 where we exhaust all the dir auths and log a warn/bug message. I'll open a
 different ticket for that.

 In the interim, be16c16bdaae9ac1ebddbe755236e62de9011f01 downgrades one of
 those warnings to info level. It's non-fatal, and may be triggered when
 using bridges.

 '''Bridges'''

 To fix the bridge issue, c281c0365482891d6c3e71f85b2a6615faa5990b
 redesigns the node address checks to use node_ipv6_or/dir_preferred(). The
 routerstatus address checks then use the node checks, and fall back to
 fascist_firewall_prefer_ipv6_or/dirport() if there's no node.

 (I thought we were doing this already when I changed how the bridge client
 code sets `node->ipv6_preferred`. But it turns out that we weren't
 checking `node->ipv6_preferred` at all.)

 The other commits are refactoring and unit tests. The unit tests are more
 comprehensive now, and cover fascist_firewall_choose_address_rs/node(),
 including all the desired bridge and relay behaviours.

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


More information about the tor-bugs mailing list