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:

  • 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.