[tor-bugs] #28458 [Core Tor/sbws]: Stop resolving domains locally and stop using non-exits as 2nd hop

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Nov 15 13:30:51 UTC 2018


#28458: Stop resolving domains locally and stop using non-exits as 2nd hop
---------------------------+------------------------------
 Reporter:  juga           |          Owner:  juga
     Type:  defect         |         Status:  needs_review
 Priority:  Medium         |      Milestone:
Component:  Core Tor/sbws  |        Version:  sbws: 1.0.0
 Severity:  Normal         |     Resolution:
 Keywords:                 |  Actual Points:
Parent ID:                 |         Points:
 Reviewer:                 |        Sponsor:
---------------------------+------------------------------

Comment (by teor):

 Replying to [comment:2 pastly]:
 > > sbws is trying to resolve the domain locally, which fails in many
 cases.
 >
 > Really? That seems like a problem. Is the system's resolver having
 issues? Should sbws cache good results it gets back?

 If the system resolver can't answer DNS queries, then the operator should
 install a caching / recursive local resolver. See #28461.

 sbws *could* cache results, but a proper DNS resolver is going to be
 better at DNS than any sbws code we can write.

 > >  Even if it does not fail, the IP obtained won't be the same IP to
 which the exit will make the HTTP request.
 >
 > This **could** be the case, but isn't necessarily the case. For simple
 destinations (simple like a single webserver as opposed to complex like a
 CDN) it's most likely **not** the case that the IPs will be different.

 Even if the IP address is different, the content should be the same: only
 the latency would vary.

 > So if we are trying to measure an exit and DNS fails, we treat the exit
 as a non-exit and find an exit to help measure it. This may not be ideal,
 but it works.

 What happens if sbws gets END_REASON_EXITPOLICY from the exit?
 (END_REASON_EXITPOLICY is the response when an exit's policy won't allow
 the IP address that the exit resolved.)

 This can happen because:
 * the exit has just changed its policy, and sbws has an old version
 * the exit resolves a different IP address from sbws

 I think we should measure the relay as a non-exit in this case.

 What happens if the exit can't connect because the connection is refused,
 or times out?

 This can happen because:
 * the exit is busy
 * the exit is censored
 * the remote site is down

 I think we should measure the relay as a non-exit in this case.

 We could cover all these cases by choosing to measure exits as non-exit
 relays at random. About half the time would work.

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


More information about the tor-bugs mailing list