[tor-bugs] #13718 [Tor]: Reachability Tests aren't conducted if there are no exit nodes
Tor Bug Tracker & Wiki
blackhole at torproject.org
Tue Dec 23 18:56:41 UTC 2014
#13718: Reachability Tests aren't conducted if there are no exit nodes
-------------------------+-------------------------------------------------
Reporter: tom | Owner: teor
Type: defect | Status: needs_review
Priority: normal | Milestone: Tor: 0.2.6.x-final
Component: Tor | Version: Tor: 0.2.6.1-alpha
Resolution: | Keywords: tor-relay test-network lorax
Actual Points: | chutney 026-deferrable
Points: | Parent ID:
-------------------------+-------------------------------------------------
Comment (by teor):
18:42] <teor> There are two scenarios:
[18:44] <teor> We can either give the test network a big push and say:
"assume everything is reachable, a guard, and an exit" - this case
bootstraps in 8-10 seconds
[18:45] <teor> Or we can leave the relays to bootstrap "naturally", and
join a subsequent consensus once they have tested their reachability
[18:45] <teor> The second case is the issue we're trying to fix in the bug
[18:45] <nickm> ah
[18:45] <teor> The first case is a quick boot
[18:45] <teor> The second case is a comprehensive test
[18:45] <teor> (it takes around 25-30 seconds)
[18:46] <nickm> So, I can see the benefit of that, but I don't htink the
right approach is to say that no connection is local. Instead maybe we
should just say that connections to ourself are always nonlocal? Or
something like that?
[18:48] <teor> When DirAllowPrivateAddresses is 0 on the authorities, the
current code makes sense
[18:48] <teor> if I run two nodes on the one IP, they shouldn't declare
themselves reachable just because they can connect to each other on
127.0.0.1
[18:50] <teor> (the current code is even stricter - if
EnforceDistinctSubnets is 1, we have to connect to something outside our
/24 before we're reachable)
[18:51] <nickm> right
[18:53] <nickm> Hm.
[18:53] <nickm> I see
[18:53] <teor> Another option is to disable the !channel_is_local() check
when TestingTorNetwork is true
[18:53] <teor> This would leave the is_local flag alone, and just ignire
it at the other end
[18:53] <nickm> That is one option, and maybe a good one.
[18:53] <teor> it's much cleaner
[18:53] <nickm> The other option is to rename is_local so that it reflects
what it means in both cases.
[18:54] <nickm> I think that disabling that check, or adding a new
function that does (TestingTorNetwork || channel_is_local()) is the right
thing
[18:54] <nickm> at least, it sounds simple
[18:54] <teor> it is simple
[18:55] <teor> circuitbuild.c line 1381 is the only line that needs to
change
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/13718#comment:40>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list