[tor-relays] Running a high-performance pluggable transports Tor bridge (FOCI 2023 short paper)

David Fifield david at bamsoftware.com
Mon Dec 11 19:55:53 UTC 2023


On Mon, Dec 11, 2023 at 08:13:17PM +0100, Felix wrote:
> Thank you for the paper and the presentation.
> 
> Chapter 3 (Multiple Tor processes) shows the structure:
> 
> > mypt - HAproxy = multiple tor services
> 
> At the end of chapter 3.1 it is written
> > the loss of country- and transport-specific metrics
> 
> How will the metrics data be pulled out of the multiple tor services to
> fetch *all* metrics data? Or will only one of them be looked at, without
> full data representation?

The key is that every instance of tor must have a different nickname.
That way, even though they all have the same relay identity key, Tor
Metrics knows to count all the descriptors separately.

So, for instance, on one snowflake bridge (identity
2B280B23E1107BB62ABFC40DDCC8824814F80A72), we use nicknames:
	flakey1, flakey2, …, flakey12
and on another bridge (identity 8838024498816A039FCBBAB14E6F40A0843051FA)
we use nicknames:
	crusty1, crusty2, …, crusty12

Instructions for setting up nicknames can be found at
https://gitlab.torproject.org/tpo/anti-censorship/team/-/wikis/Survival-Guides/Snowflake-Bridge-Installation-Guide#tor

It used to be the case that Tor Metrics did not understand the
descriptors of this kind of multi-instance bridge. If you had N
instances, it would count only 1 of them per time period. But Tor
Metrics has now known about this kind of bridge (multiple descriptors
per time period with the same identity key but different nicknames) for
more than a year:
https://gitlab.torproject.org/tpo/network-health/metrics/website/-/issues/40047
https://gitlab.torproject.org/tpo/network-health/metrics/website/-/merge_requests/42

Relay Search still does not know about multi-instance bridges, though.
If you look up such a bridge, it will display one of the multiple
instances more or less at random. In the case of the current snowflake
bridges, you have to multiply the numbers on Relay Search pages by 12 to
get the right numbers.
https://metrics.torproject.org/rs.html#details/2B280B23E1107BB62ABFC40DDCC8824814F80A72
https://metrics.torproject.org/rs.html#details/8838024498816A039FCBBAB14E6F40A0843051FA

There's a special repository for making graphs of snowflake users. This
was necessary in the time before Tor Metrics natively understood
multi-instance bridges, and I still use it because it offers some extra
flexibility over what metrics.torproject.org provides. With some small
changes, the same code could work for other pluggable transports, or
even single bridges.
https://gitlab.torproject.org/dcf/snowflake-graphs
This is a sample of the graph output:
https://forum.torproject.org/t/snowflake-daily-operations-november-2023-update/10575


More information about the tor-relays mailing list