すべてのLinuxディストリビューションのロードバランシング

すべてのLinuxディストリビューションのロードバランシング

個人的な用途にロードバランシングソリューションを実装しようとしています。

私が望むのは、携帯電話のインターネット接続のデータスループットを最大化することです。明らかに言えば:

私は私の携帯電話にデータプランを持っていて、私の家族は自分の携帯電話にそれぞれのデータプランを持っています。最大4台の携帯電話を1台の(デスクトップ)PCに接続できる場合(USB経由で望ましい)(理論的には)4台の携帯電話のいずれかより高速なインターネット接続を得ることができます(もし携帯電話がPCに接続されている場合)場合)。

これにより、デスクトップコンピュータはイントラネットのルーターとして機能します。

上記が良い根拠を持っている場合(私が間違っている可能性があります。関連技術の詳細を知らない)、それを実装する方法が必要です。

私は仕事をするツールを見たことがありますがipvs(正しいですか?)どうすればいいのかわかりません。

ディストリビューションの観点から見ると、これはすべてのディストリビューションで実行できますが、Android携帯電話をUbuntuに接続することはプラグアンドプレイです。したがって、Ubuntuでこれを行うことができる場合は、おそらくstrachですべてをコンパイルするよりも速いでしょう。

親戚があればどうすればいいですか?ロードバランシングを実行し、USBインターネット接続を動的に認識するディストリビューションはありますか?

ベストアンサー1

iptables発信接続のバランスを取るには、標準ルーティングといくつかのポリシールーティングが必要です。 4つの接続を使用すると、接続が行き来するときにリンクを再構成し、バランスを再調整する必要があるため、少し複雑になります。

iptablesの設定は

  • 各接続のルーティングテーブルの作成

    ip rule add fwmark 10 table PHONE0 prio 33000
    ip rule add fwmark 11 table PHONE1 prio 33000
    ip rule add fwmark 12 table PHONE2 prio 33000
    ip rule add fwmark 13 table PHONE3 prio 33000
    
  • 各テーブルに各接続のデフォルトゲートウェイを追加します(ゲートウェイIPは、各テレフォニープロバイダ/設定によって異なります)。

    ip route add default via 192.168.1.2 table PHONE0 
    ip route add default via 192.168.9.1 table PHONE1 
    ip route add default via 192.168.13.2 table PHONE2 
    ip route add default via 192.168.7.9 table PHONE3 
    
  • タグ付けされていないフローにランダムにタグを付けると、特定の接続を介してフローがルーティングされます。OUTPUTローカルプロセス用。PREROUTING他のクライアントにトラフィックを転送する場合に使用)

    iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark
    iptables -t mangle -A OUTPUT -m mark ! --mark 0 -j ACCEPT
    iptables -t mangle -A OUTPUT -j MARK --set-mark 10
    iptables -t mangle -A OUTPUT -m statistic --mode random --probability 0.25 -j MARK --set-mark 11
    iptables -t mangle -A OUTPUT -m statistic --mode random --probability 0.25 -j MARK --set-mark 12
    iptables -t mangle -A OUTPUT -m statistic --mode random --probability 0.25 -j MARK --set-mark 13
    iptables -t mangle -A OUTPUT -j CONNMARK --save-mark
    
  • 各接続のNAT(インターフェイスは、システムに表示されるように携帯電話が接続されているインターフェイスである必要があります)

    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    iptables -t nat -A POSTROUTING -o ppp1 -j MASQUERADE
    iptables -t nat -A POSTROUTING -o ppp2 -j MASQUERADE
    iptables -t nat -A POSTROUTING -o ppp3 -j MASQUERADE
    

単一のTCPまたはUDP接続は依然として単一リンクを通過するため、高速化されません。追加の帯域幅を利用するには、複数の同時接続(少なくとも4つ)を使用する必要があります。ほとんどのブラウザは、複数のオブジェクトが要求されたときに後でこれを行います。一部のダウンロードマネージャでは、単一のファイルに対して複数の接続を使用できます。

garethTheRedが提案したように、ispunityこの設定の上に「接着剤」を追加してiptables接続リストを循環し、ゲートウェイが応答していることを確認し、問題が発生した場合に再調整するなどの操作を実行します。 「固定セッション」管理は、デフォルトの「ラウンドロビン」接続ロードバランシングに加えて、追加のポート固有の設定であるようです。もう一つの解決策はネットワークISPのバランス、iptables、およびルーティングテーブルの設定を自動化し、ISPのステータスを監視し、問題を警告し、1つ以上のISPに接続できない場合にルーティングを再設定するPerlスクリプトとライブラリ。

さらに、複数のIPからの要求によって一貫したIPルックアップに基づいて一部のサービスが中断される可能性があり、これらのサービスを接続にバインドするには、これらのサービスに追加のルールを追加する必要があります。ほとんどのブラウザは、とにかく4つの操作を同時に実行している場合にのみ、単一の接続でスピードアップを見ることはできません。

ipvs複数のホスト間でサービスがフェールオーバーできるようにホストするエントリの仮想サービスアドレスを作成することです。

おすすめ記事