[metrics-bugs] #21272 [Metrics]: Onionperf deployment

Tor Bug Tracker & Wiki blackhole at torproject.org
Sun Mar 19 17:26:25 UTC 2017


#21272: Onionperf deployment
-------------------------+------------------------------
 Reporter:  hiro         |          Owner:  metrics-team
     Type:  enhancement  |         Status:  needs_review
 Priority:  Medium       |      Milestone:
Component:  Metrics      |        Version:
 Severity:  Normal       |     Resolution:
 Keywords:               |  Actual Points:
Parent ID:               |         Points:
 Reviewer:               |        Sponsor:
-------------------------+------------------------------

Comment (by robgjansen):

 For IPs and ports, here is the related data for a direct download:
 {{{
 HOSTNAMELOCAL=onionperf
 HOSTNAMEREMOTE=onionperf
 ENDPOINTLOCAL=localhost:127.0.0.1:55998
 ENDPOINTPROXY=localhost:127.0.0.1:45640
 ENDPOINTREMOTE=onionperf.robgjansen.com:167.114.171.3:8080
 }}}

 And here is what I see for a .onion download:
 {{{
 HOSTNAMELOCAL=onionperf
 HOSTNAMEREMOTE=onionperf
 ENDPOINTLOCAL=localhost:127.0.0.1:45664
 ENDPOINTPROXY=localhost:127.0.0.1:45640
 ENDPOINTREMOTE=ih7hhuuppsy5wysu.onion:0.0.0.0:8080
 }}}

 Notice that the server listen port that was used for this download, 8080,
 is available in both cases. This will always be the same place that the
 client connects, otherwise the download won't happen.
   If my OnionPerf instance runs a server on `--tgen-listen-port=8080` and
 I instruct the client to connect to someone else's OnionPerf server at
 `--tgen-connect-port=443`, then 443 is the port that will show up in the
 download data. So I don't think we need to worry about the `--tgen-*-port`
 options.

 For IPs and hostnames, we have:
 -
 [https://github.com/shadow/shadow/blob/46368f34f4ee8f602be226c4c16a8a6d82cd9a70/src/plugin
 /shadow-plugin-tgen/shd-tgen-transfer.c#L964 HOSTNAMELOCAL and
 HOSTNAMEREMOTE contain the result of `gethostname`] on the client and the
 server end, respectively (in onionperf, the client and server run on the
 same machine).
 - The name, IP, and port for each of the 3 ENDPOINT data items runs the
 same code:
   -
 [https://github.com/shadow/shadow/blob/46368f34f4ee8f602be226c4c16a8a6d82cd9a70/src/plugin
 /shadow-plugin-tgen/shd-tgen-peer.c#L79 the hostname contains the result
 of `getnameinfo`],
   -
 [https://github.com/shadow/shadow/blob/46368f34f4ee8f602be226c4c16a8a6d82cd9a70/src/plugin
 /shadow-plugin-tgen/shd-tgen-peer.c#L53 the IP contains the result of
 `getaddrinfo`].
   -
 [https://github.com/shadow/shadow/blob/46368f34f4ee8f602be226c4c16a8a6d82cd9a70/src/plugin
 /shadow-plugin-tgen/shd-tgen-peer.c#L245 the ports are in host order].

 I'm not sure that we should change any of this...

 This is tricky, since OnionPerf could be run by a client that sits behind
 a firewall and only contributes .onion downloads, or that connects to
 someone else's OnionPerf server. These clients probably don't have FQDNs.
 They of course will have some kind of public IP address, but that won't be
 discoverable by the server end if the downloads are done over Tor. And the
 IP address assigned to it's local interface may not be the public-facing
 IP address.

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


More information about the metrics-bugs mailing list