Pourquoi la charge des relais varie

Tor gère la bande passante sur l'ensemble du réseau. Il fait un travail raisonnable pour la plupart des relais. Mais les objectifs de Tor sont différents de ceux de protocoles comme BitTorrent. Tor veut des pages web à faible latence, ce qui nécessite des connexions rapides avec de la marge. BitTorrent veut des téléchargements en masse, ce qui nécessite l'utilisation de toute la bande passante.

Nous travaillons sur un nouveau scanner de bande passante, qui est plus facile à comprendre et à entretenir. Il permettra de diagnostiquer les relais qui ne sont pas mesurés et les relais dont les résultats sont faibles.

Pourquoi Tor a-t-il besoin de scanner la bande passante ?

La plupart des fournisseurs vous indiquent la vitesse maximale de votre connexion locale. Mais Tor a des utilisateurs dans le monde entier, et nos utilisateurs se connectent à un ou deux relais de garde au hasard. Nous devons donc savoir dans quelle mesure chaque relais peut se connecter au monde entier.

Ainsi, même si tous les opérateurs de relais fixaient leur bande passante annoncée à la vitesse de leur connexion locale, nous aurions toujours besoin d'autorités de la bande passante pour équilibrer la charge entre les différentes parties du réseau.

Quelle est la charge normale d'un relais ?

Il est normal que la plupart des relais soient chargés à 30-80% de leur capacité. C'est une bonne chose pour les clients : un relais surchargé a un temps de latence élevé. (Nous voulons suffisamment de relais pour que chaque relais soit chargé à 10%. Tor serait alors presque aussi rapide que l'Internet au sens large).

Parfois, un relais est lent parce que son processeur est lent ou que ses connexions sont limitées. Dans d'autres cas, c'est le réseau qui est lent : le relais a un mauvais raccordement à la plupart des autres relais tor, ou est très éloigné.

Déterminer ce qui limite un relais

De nombreux éléments peuvent ralentir un relais. Voici comment les repérer.

Limites du système

  • Vérifier l'utilisation de la RAM, du CPU et des descripteurs de socket/fichier sur votre relais

Tor enregistre certaines de ces données lorsqu'il démarre. D'autres peuvent être visualisés en utilisant top ou des outils similaires.

Limites des fournisseurs

  • Vérifier le trafic Internet (bande passante, temps de latence) entre le fournisseur de votre relais et les autres relais. Les relais transitant par Comcast ont parfois été lents. Les relais en dehors de l'Amérique du Nord et de l'Europe occidentale sont généralement plus lents.

Limites du réseau Tor

La bande passante du relais peut être limitée par la bande passante observée par le relais lui-même ou par la bande passante mesurée par les autorités de l'annuaire. Voici comment déterminer quelle donnée limite votre relais :

  • Vérifiez chacun des votes pour votre relais sur consensus-health (large page), et vérifiez la médiane. Si votre relais n'est pas marqué Exécution par certaines autorités d'annuaire :
    • L'adresse IPv4 ou IPv6 est-elle incorrecte ?
    • Son adresse IPv4 ou IPv6 est-elle inaccessible depuis certains réseaux ?
    • Y a-t-il plus de 2 relais sur son adresse IPv4 ?

Sinon, vérifiez la bande passante observée et le taux de bande passante (limite) de votre relais. Consultez votre relais sur Metrics. Passez ensuite la souris sur le titre de la bande passante pour voir la bande passante observée et le taux de bande passante du relais.

Voici plus de détails et quelques exemples : Baisse du poids du consensus et Augmentation de la vitesse du relais de sortie.

Comment résoudre le problème

Le plus petit de ces nombres est la limitation de la bande passante allouée au relais.

  • Si c'est le taux de bande passante, augmentez BandwidthRate/Burst ou RelayBandwidthRate/Burst dans votre torrc.
  • S'il s'agit de la bande passante observée, votre relais ne demandera pas plus de bande passante tant qu'il ne constatera pas qu'il devient plus rapide. Vous devez déterminer pourquoi il est lent.
  • Si c'est la bande passante médiane mesurée, votre relais semble lent du point de vue de la majorité des autorités de la bande passante. Vous devez déterminer la raison pour laquelle ils mesurent leur lenteur.

Effectuer ses propres calculs de relais

Si votre relais pense qu'il est lent, ou si les autorités de la bande passante pensent qu'il est lent, vous pouvez tester la bande passante vous-même :

  • Run a test using tor to see how fast tor can get on your network

    For this, you need to configure a tor client to use use your relay as entry. If your relay has only Guard flag, set EntryNodes with your relay fingerprint in torrc. If your relay doesn't have Guard flag or it has Guard and Exit flags, you can't set your relay as an entry node (see https://gitlab.torproject.org/tpo/core/tor/-/issues/22204), but you can set it as your bridge, even if it is not a bridge. To set your relay as a bridge, add to your torrc:

    Bridge <ip>:<port>
    UseBridge 1
    

    Then download a large file using your SocksPort as a socks proxy. For this, you can use curl, eg:

    curl https://target/path --proxy socks5h://<user>:<password>@127.0.0.1:<socks-port>
    

    Using different user/password guarantees different circuits. You can use $RANDOM.

    That will give you some idea of how much traffic your relay can sustain.

    Alternatively, you can run relay_bw to test your relay using 2 hops circuits, in a similar way as sbws does.

  • Run a test using tor and chutney to find out how fast tor can get on your CPU. Keep increasing the data volume until the bandwidth stops increasing.