Opened 6 years ago

Closed 17 months ago

#11987 closed defect (wontfix)

Test multiple network interfaces with a single probe

Reported by: cypherpunks Owned by: hellais
Priority: Medium Milestone:
Component: Archived/Ooni Version:
Severity: Normal Keywords: archived-closed-2018-07-04
Cc: Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description (last modified by hellais)

This issue was automatically migrated from github issue https://github.com/TheTorProject/ooni-probe/issues/269.

As a user subscribing to more than one network I want to check for censorship on each using a single OONI instance so that I don't have to run multiple probes.

I'm involved with a project to monitor web censorship across domestic ISPs in the UK [1]. Our infrastructure plans include running multiple OONI probes in virtual machines running on a single server. We are subscribing to a number of domestic ISPs and routing each connection to a VM using some network-level magic (I believe).

It would simplify our setup if we could present multiple network connections to a single machine (either a VM or the actual server) and have a single OONI probe run its tests once per network connection, logging the results in a way that means we can tell the connection to which each relates.

[1] https://wiki.openrightsgroup.org/wiki/ORG_Censorship_Monitoring_Project

Child Tickets

Change History (3)

comment:1 Changed 6 years ago by hellais

Description: modified (diff)

I had added these comments to the original ticket:

I would see this implemented as an additional advanced configuration setting that allows the user to specify the interface to use for conducting the measurements or the source IP to set for outgoing packets.

This would require quite a little bit of work to make sure that when such option is enabled before doing any socket.connect we do a socket.bind((SOURCE_IP, SOURCE_PORT)).

The nice thing is that twisted.web.client.Agent (since 9.0) seems to support this feature natively by passing it the keyword argument bindAddress[1].

The TCP tests are also very straightforward since we can just pass the bindAddress to the TCP4ClientEndpoint [2].

The DNS related measurements are probably a bit more tricky, since we would have to go and monkey patch twisted.names.client in a few different place [3][4].

[1] http://twistedmatrix.com/trac/browser/tags/releases/twisted-13.2.0/twisted/web/client.py#L1214
[2] https://github.com/TheTorProject/ooni-probe/blob/master/ooni/templates/tcpt.py#L93
[3] http://twistedmatrix.com/trac/browser/tags/releases/twisted-13.2.0/twisted/names/client.py#L213
[4] http://twistedmatrix.com/trac/browser/tags/releases/twisted-13.2.0/twisted/names/client.py#L350

comment:2 Changed 2 years ago by teor

Severity: Normal

Set all open tickets without a severity to "Normal"

comment:3 Changed 17 months ago by teor

Keywords: archived-closed-2018-07-04 added
Resolution: wontfix
Status: newclosed

Close all tickets in archived components

Note: See TracTickets for help on using tickets.