リレーの負荷が変化する理由

Torは、ネットワーク全体の帯域幅を管理します。これはほとんどのリレーで適切に機能します。 しかし、Torの目標はBitTorrentのようなプロトコルとは異なります。 Torは、ヘッドルームを備えた高速接続を必要とする、低遅延のウェブページを求めている。 BitTorrentは、すべての帯域幅を使用する必要がある一括ダウンロードが必要です。

私たちは新しい帯域幅スキャナを開発しています。 測定されていないリレーや、測定値が低いリレーの診断機能も備えています。

なぜTorに帯域幅スキャナが必要なのですか?

ほとんどのプロバイダは、ローカル接続の最大速度を表示します。 しかし、Torには世界中にユーザーがいて、ユーザーはランダムに1つか2つの入口リレーに接続します。 そのため、各リレーがどれだけうまく全世界に接続できるかを知る必要があります。

そのため、すべての中継事業者が宣伝している帯域幅をローカル接続速度に設定したとしても、インターネットの異なる部分間で負荷を分散させるために帯域幅権限が必要になります。

通常のリレー負荷とは何ですか?

ほとんどのリレーは通常、容量の30%から80%の負荷がかかります。 これはクライアントにとって良いことです。過負荷のリレーは遅延が大きくなります。 (各リレーに10%の負荷がかかるように十分なリレーが必要です。そうすれば、Torは一般的なインターネットとほぼ同じ速度になります)。

リレーの速度が遅いのは、プロセッサの速度が遅いか、接続が制限されているためです。 リレーが他のほとんどのtorリレーと正しくピアリングしていないか、距離が遠く離れていることでネットワークが遅い場合もあります。

リレーを制限している原因の特定

リレーを遅くする原因は多数あります。ここでは、それらを突き止める方法をご紹介します。

システムの制限

  • リレーのRAM、CPU、およびソケット/ファイル記述子の使用状況をご確認ください。

Torは起動時にこれらのログの一部を記録します。その他は、topまたは同様のツールを使用して表示できます。

プロバイダーの制限

  • リレーのプロバイダーから他のリレーへのインターネットピアリング(帯域幅、遅延)を確認します。 Comcast(米国のISP)経由の中継は、たまに時間がかかることがあります。 北米や西ヨーロッパ以外でのリレーは、通常さらに遅いです。

Torネットワークの制限

リレー帯域幅は、リレー自身の観測帯域幅、またはディレクトリ管理機関の測定帯域幅によって制限できます。 リレーを制限している測定値を調べる方法は以下の通りです。

  • コンセンサス状態 でリレーの各投票や中央値を確認します。 リレーが一部のディレクトリ管理機関で実行中とマークされていない場合:
    • IPv4またはIPv6アドレスがお間違いではありませんか?
    • そのIPv4またはIPv6アドレスは、いくつかのネットワークから到達不可能ですか?
    • IPv4アドレスに2つ以上のリレーがありますか?

それ以外の場合は、リレーの観測帯域幅と帯域幅レート(制限)を確認します。 Metrics でリレーを検索します。 次に、帯域幅の見出しにマウスを合わせると、観測された帯域幅とリレー帯域幅レートが表示されます。

以下はその詳細と例の コンセンサスウェイトの低下出口リレーの上昇速度です。

修正方法

これらの数値の最小値は、リレーに割り当てられる帯域幅を制限します。

  • 帯域幅レートが原因の場合は、torrcのBandwidthRate/BurstまたはRelayBandwidthRate/Burstを増やしてください。
  • 観測された帯域幅であれば、リレーは自分自身が速くなっていることを確認するまで、それ以上の帯域幅を要求しません。 遅い原因を突き止める必要があります。
  • 測定された帯域幅の中央値であれば、大半の帯域幅機関からはリレーが低速に見えます。 計測が遅い理由を突き止める必要があります。

独自のリレー測定を行う

リレーが遅いと判断した場合、または帯域幅局が遅いと判断した場合は、自分で帯域幅をテストできます。

  • Torを使用してテストを実行し、Torがネットワーク上でどの程度高速になるかを確認します。

    このためには、リレーをエントリとして使用するようにTorクライアントを設定する必要があります。 リレーにGuardフラグしかない場合は、torrcEntryNodesにリレーフィンガープリントを設定してください。 リレーにGuardフラグがないか、GuardフラグとExitフラグがある場合、リレーを入口ノードとして設定することはできません(参照: https://gitlab.torproject.org/tpo/core/tor/-/issues/22204)が、ブリッジでなくてもブリッジとして設定することはできます。 リレーをブリッジとして設定するには、torrcに以下を追加してください。

    Bridge <ip>:<port>
    UseBridge 1
    

    次にsocksプロキシとしてSocksPortを使用して、大きなファイルをダウンロードします。 これには、例えば curlをご利用いただけます。

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

    異なるuser/passwordを使用すると、異なる回路が保証されます。また$RANDOMをご利用いただけます。

    そうすれば、あなたのリレーがどれだけのトラフィックを維持できるか、ある程度の見当がつきます。

    あるいは、sbws と同じように、relay_bw を実行して、2ホップの回線を使ってリレーをテストすることもできます。

  • Torとchutneyを使ってテストを行い、TorがあなたのCPUでどれくらいの速度が出るかを調べます。 帯域幅の増加が止まるまで、データ量を増やし続けます。