Por qué varía la carga en repetidores

Tor gestiona el ancho de banda a lo largo de la red completa. Hace un trabajo razonable para la mayoría de los repetidores. Pero los objetivos de Tor son diferentes de los de protocolos como BitTorrent. Tor quiere páginas web de baja latencia, lo cual requiere conexiones rápidas con capacidad de sobra. BitTorrent quiere descargas masivas, lo cual requiere usar todo el ancho de banda.

Estamos trabajando en un nuevo escáner de ancho de banda, el cual es más fácil de entender y mantener. Tendrá diagnósticos para repetidores que no son medidos, y repetidores que tienen bajas mediciones.

¿Por qué necesita Tor escáners de ancho de banda?

La mayoría de los proveedores te dicen la máxima velocidad de tu conexión local. Pero Tor tiene usuarios a lo largo del mundo, quienes se conectan a uno o dos repetidores guardianes al azar. Por lo que necesitamos saber qué tan bien puede conectarse cada repetidor al mundo entero.

Por eso, aunque todos los operadores de repetidores ajustaran su ancho de banda anunciado a la velocidad de su conexión local, seguiríamos necesitando autoridades de ancho de banda para equilibrar la carga entre las distintas partes de Internet.

¿Cuál es la carga normal de un repetidor?

Es normal para la mayoría de los repetidores estar cargados al 30%-80% de su capacidad. Esto es bueno para los clientes: un repetidor sobrecargado tiene alta latencia. (Queremos suficientes repetidores de manera que cada cual esté cargado al 10%. Entonces Tor sería casi tan rápido como Internet en su amplitud).

A veces, un repetidor es lento porque su procesador es lento, o sus conexiones son limitadas. Otras veces, es la red quien es lenta: el repetidor está mal apareado con la mayoría de los otros repetidores tor, o está ubicado a una gran distancia.

Encontrando qué cosa está limitando a un repetidor

Montones de cosas pueden hacer lento a un repetidor. He aquí como rastrearlas.

Límites del sistema

  • Comprueba la RAM, la CPU y el uso de sockets/descriptores de archivo en tu repetidor

Tor registra algunos de estos cuando arranca. Otros pueden ser visualizados usando top o herramientas similares.

Límites del proveedor

  • Comprueba la calidad de comunicación de Internet (ancho de banda, latencia) desde el proveedor de tu repetidor a otros repetidores. Los repetidores transitando vía Comcast han sido lentos a veces. Los repetidores fuera de América del Norte y Europa Occidental usualmente son más lentos.

Límites de la red Tor

El ancho de banda de un repetidor puede estar limitado por el propio ancho de banda observado por él, o por el ancho de banda medido por las autoridades de directorio. He aquí cómo descubrir qué medida está limitando a tu repetidor:

  • Comprueba cada uno de los votos para tu repetidor en consensus-health (una página grande), y mira la mediana. Si tu repetidor no está marcado Running por algunas autoridades de directorio:
    • ¿Tiene las direcciones IPv4 o IPv6 equivocadas?
    • ¿Su dirección IPv4 o IPv6 es inalcanzable desde algunas redes?
    • ¿Hay más de 2 repetidores en su dirección IPv4?

De otra manera, comprueba el ancho de banda observado de tu repetidor, y la tasa de ancho de banda (límite). Busca tu repetidor en Metrics. Luego pasa con el mouse por arriba del encabezado de ancho de banda para ver el ancho de banda observado y la tasa de ancho de banda del repetidor.

He aquí algún detalle más y algunos ejemplos: Caída en el peso del consenso y Velocidad de escalamiento de repetidores de salida.

Cómo arreglarlo

La más pequeña de estas cantidades está limitando el ancho de banda asignado al repetidor.

  • Si es la tasa de ancho de banda, incrementa las directivas BandwidthRate/Burst o RelayBandwidthRate/Burst en tu torrc.
  • Si es el ancho de banda observado, tu repetidor no solicitará más ancho de banda hasta que se vea operando más rápido. Necesitas darte cuenta de por qué es lento.
  • Si es la mediana del ancho de banda medido, tu repetidor aparece lento para una mayoría de autoridades de ancho de banda. Necesitas darte cuenta de por qué lo midieron como lento.

Efectuando mediciones en tu propio repetidor

Si tu repetidor piensa que es lento, o así lo creen las autoridades de ancho de banda, puedes probar por tí mismo el ancho de banda:

  • Ejecutar una prueba utilizando tor para ver qué tan rápido tor puedes obtener en tu red

    Para ello, es necesario configurar un cliente tor para utilizar tu relé como entrada. Si tu repetidor sólo tiene la etiqueta Guard, configura EntryNodes con la huella digital de tu repetidor en torrc. Si tu relé no tiene la etiqueta Guard o tiene las etiquetas Guard y Exit, no puedes configurar tu relé como un nodo de entrada (ver https://gitlab.torproject.org/tpo/core/tor/-/issues/22204), pero puedes configurarlo como tu puente, aunque no sea un puente. Para configurar tu relé como un puente, añade torrc:

    Bridge <ip>:<port>
    UseBridge 1
    

    A continuación, descarga un archivo grande utilizando SocksPort como un proxy socks. Para ello, puedes utilizar curl, por ejemplo:

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

    El uso de diferentes user/password garantiza diferentes circuitos. Puedes usar $RANDOM.

    Eso te dará una idea de cuánto tráfico puede soportar tu repetidor.

    Alternativamente, puedes ejecutar relay_bw para probar tu relé utilizando los circuitos de 2 saltos, de forma similar a como lo hace sbws.

  • Ejecuta una prueba usando tor y chutney para averiguar qué tan rápido puedes llegar a ser tor en tu CPU. Sigue aumentando el volumen de datos hasta que el ancho de banda deje de aumentar.