web-dev-qa-db-ja.com

LANおよびWi-Fiとの負荷分散

私はMacOS X10.6またはUbuntu9.10またはWindows XP(マルチブート)を実行するMacを持っています。解決策はどのシステムにも当てはまります。

私は2つのISPを持っており、1つはWi-Fi[〜#〜] lan [〜#〜]からアクセスできます。 Mac OS Xでは、優先順位、つまり最初に選択するネットワークを定義できます。しかし、私がやりたいのは、両方のネットワークで負荷分散することです。

追加のハードウェアを購入したくありません。これが役立つなら、私はいくつかの未使用のWi-Fiルーターを持っています。

Linuxでプログラムをコンパイルして構成することは私にとって問題ではありません。

同様の質問: 複数のゲートウェイを使用した負荷分散

8
Synox

Connectify Dispatch には、必要なことだけを実行するソリューションがあります。現在はWindowsのみですが、人々は 仮想化に成功しました そしてOSXでソフトウェアを使用しています。

あなたはすでにWindowsを実行している(実行していた)のでXP私はあなたがあなた自身でその部分を理解することができるだろうと思った。


これに関する最大の問題は、Windowsが複数のNICのサポートを簡単に提供するのに対し、OSXでは実装がそれほど簡単ではないことです。

1
bemental

Linuxの場合、非常に近いトピックは、ルートの「メトリック」設定です。大きい数値よりも小さい数値が優先されます。両方のルートに同じメトリックを指定すると、同じ確率で選択されると思います。

あなたが達成しようとしているテクニックは マルチホーミング と呼ばれていると思います。直接の経験はありません。ただし、おそらく覚えておく必要のあることがいくつかあります。

  • デフォルトでは、デフォルトルートは1つだけになると思います。これは、すべての発信トラフィックがデフォルトで1つのインターフェイスを優先することを意味します。複数のデフォルトルートがあるか、時間の経過とともにそのルートを動的に変更するかを検討する必要があります。
  • 個々の着信(TCP)接続の存続期間中は、接続されたのと同じインターフェイスにとどまる必要があります。おもう。

とにかく、これらは私が現時点で考えることができるすべてのポインタです。

1
pioto

ルーティングテーブルに両方のインターネット接続を等しいメトリックでインストールするルーティングメトリックシステムを使用できます。オペレーティングシステムは、これらのルートの両方を等しく使用して、アウトバウンドトラフィックを両方のリンクに効果的に分割する必要があります。

リクエストに応答する着信トラフィックも、リクエストが送信されたインターフェイス(パブリックIP)に戻るため、バランスを取る必要があります。

これに伴う問題は、セッションの永続性です。たとえば、リンクの1つを介してWebサイトを表示しますが、次のページビューは他のインターフェイスから負荷分散されます。これにより、送信元IPアドレスが絶えず変化するため、一部のアプリケーションが混乱します。

したがって、アプリケーション、宛先、またはプロトコルによって、同じコストのルートを使用せずに、トラフィックの一部を他のインターフェイスに分割するだけです。トラフィックパスの一貫性を保つための何か。

1
iTom

私はこの同じ質問を十数回、十数の異なる方法で聞いたことがあります。まず、内部セッションと外部セッションは同じように処理されますが、同じではありません。内部セッションごとに、複数の外部セッションが存在する可能性があり、その逆も同様です。あなたが話していることは論理的に不可能ではありませんが、少しのプログラミングと準備が必要です。一部のデバイスは、イーサネット接続またはWi-Fiを集約して、ネットワークの内部でネットワーク速度を高速化する機能を備えて構築されていますが、外部ネットワークの場合、フェイルオーバーのあるデバイスしか見つかりませんでした。つまり、必要なときにのみ切り替えるということです。ただし、接続プロトコルで基本的なスイッチング(0または1のifステートメント)を使用して、EXTERNALセッションごとに異なるゲートウェイを介してトラフィックをリダイレクトすることができます。次に、メインセッション内のサブセッションをsessionIDでラップすることにより、各内部セッションに関連付けられた各外部セッションを追跡する必要があります。次に、サイトドメインを確認するか、sessionIDを使用して内部ルーティングを完了する方法が必要になります(つまり、外部セッション/接続ごとにクライアントからのメッセージを区別できる必要があります。各サイトのパイプが設定され、サイトがパイプを拒否しないように、データを要求または送信していたサイト)。これは、ルーターに新しいネットワークプロトコルを組み込み、接続を区別する方法を決定する必要があることを意味します(サイトドメインによってのみ行われる場合、ルーターから実行できる可能性がありますが、クライアントはのIPアドレスを使用しようとする可能性がありますこれを否定するウェブサイトの外部ゲート。両端で行われる場合、クライアントは、メインでルーティングされている外部セッションと送信受信を照合できるようにする識別子(通常はバイナリマスキングの数値)を追跡する必要があります。ゲート)。つまり、ネットワークを処理するために独自のプロトコルをプログラムする必要があり、それを自分で構築するか(クライアントとホストの両方のプログラミングを使用して)、何かを構築するかを決定する必要があります。これは、古い既存のプログラミングと互換性があります(ホストとクライアント間のメッセージングに拘束される必要があり、ホストの摩耗が大きくなりますが、クライアントにとって新しいことは何もありません)。 UNIXを知っている場合、またはwinserverプログラミングを知っている場合、これはほんの少しの時間で実行できますが、バランスをとる各デバイスに大量のリソースを割り当てる必要があります。

大規模な企業スタイルのネットワークの場合、ネットワークをメッシュ化し、各フロアまたは部門に専用のゲートウェイを与えることができます。これにより、複数のISPが可能になり、いずれか1つに過度の負荷をかけることはありません。いずれかのゲートウェイで問題が発生した場合に、変更を送信したり、別のゲートウェイにリダイレクトしたりするハブでフェイルオーバーを処理することもできます。これにより、ある程度のフォールトトレランスが提供されます。

0
Htd Tech

発信するすべてのトラフィックが1つのISPであり、着信するトラフィックが別のISPであるというようなことをしなければ、これが可能になるとは思いません。

両方のトラフィックを2つの別々のネットワークに分割している理由は、元に戻らないようです。 1つのISPから2つのパイプがある場合、それが可能になる可能性があります。

前に言ったように、とにかくデフォルトが必要で、あるルートを通る特定のトラフィックと別のルートを通る残りのトラフィックを抑制することができると思います。ここでは、LANのように負荷分散が機能するとは思わないでください。

例:192.168.2。*を使用して更新を実行します。Wi-FiISPは、192.168.1。* LANISPを使用して半減期を実行します。

0
Johnny

ある種の回避策があります。私のアプリケーションは負荷分散が可能で、2つの接続を定義して、両方を使用することができます。

次に、サーバーIPの1つをIPSの1つにルーティングします。

mac os 10.6の場合:

route add -Host XXX.XXX.XXX.XXX 192.168.1.1

これは非常に具体的であり、server-ipsが常に同じである場合にのみ機能します。そして、アプリケーションが何らかの方法で負荷分散できるかどうか。

0
Synox

下記のURLは、特にWin 7を対象としていますが、そこからアイデアを得る必要があります。インターフェイスの負荷に応じてデフォルトゲートウェイのメトリックを変更するため、負荷分散につながります。

http://www.youtube.com/watch?v=Qh5Eb8sXvuk

0
Samir Sogay