ISPをダウンロードのみに使用し、携帯電話の4G接続をアップロードのみに使用したいと思います。これは、ISPのアップロード速度が遅いが、ダウンロードは問題なく、4Gのアップロードは素晴らしく無料だからです(ダウンロードに対してのみ料金を支払う)。
1台のPC、2つの接続:ダウンロード用のISP、およびアップロード用の4G。これを行うと、今日と同じ料金を支払うことになりますが、アップロードを0.1 Mbit / sから約60 Mbit / sに増やします。
ISPをダウンロードのみに使用し、携帯電話の4G接続をアップロードのみに使用したいと思います。これは、ISPのアップロード速度が遅いが、ダウンロードは問題なく、4Gのアップロードは素晴らしく無料だからです(ダウンロードに対してのみ料金を支払う)。
1台のPC、2つの接続:ダウンロード用のISP、およびアップロード用の4G。これを行うと、今日と同じ料金を支払うことになりますが、アップロードを0.1 Mbit / sから約60 Mbit / sに増やします。
回答:
接続間でアップロードとダウンロードを分離することは実際には不可能ですが(他の回答で詳細に説明されているように)、手動による回避策が考えられます。
デフォルトの接続を操作して、開始したいタスクに応じて切り替えることができます。Windowsのデフォルト接続は最初に接続されたインターフェイスであり、その順序はメトリックによって計算されます(これにより、ケーブルよりもワイヤレスが優先されます)。
ネットワーク接続の詳細設定で、Windowsのデフォルト接続を変更する方法で、メトリックを手動で簡単に上書きできます。(XPから8.1までわずかにまたはまったく違いなく同じように動作するはずです)
最新のプログラムのほとんどは、システムが提供するデフォルトの接続を使用します。接続が確立された後は、その接続を維持する必要があります。通常、プログラムは、開始時にデフォルトであった接続を使用することを意味します。接続を開く前にデフォルトの接続を切り替えることにより、タスクに応じて接続を切り替え、両方を同時に開いたままにできる場合があります。
一部のプログラム(たとえば、ダウンロード/アップロードマネージャー)は、セッションごとではなく、タスクごとに接続を開くことに注意してください。
これは不可能です。謝辞は、伝送制御プロトコルの不可欠な部分です。着信データと発信データを2つのインターフェイス間で明確に分割すると、プロトコルの確認応答コンポーネントが本質的に無効になります。
TCPは接続指向のプロトコルです。つまり、各端のアプリケーションプログラムがメッセージの交換を完了するまで、接続が確立および維持されます。アプリケーションデータをネットワークが配信可能なパケットに分割する方法を決定し、ネットワーク層との間でパケットを送受信し、フロー制御を管理し、エラーのないデータ伝送を提供するため、ドロップまたは文字化けしたパケットの再送信を処理します到着したすべてのパケットの確認応答。OSI(Open Systems Interconnection)通信モデルでは、TCPはレイヤー4、トランスポートレイヤー、およびレイヤー5、セッションレイヤーの一部をカバーします。
ルーターは、個別のインターフェイス間でネットワーク負荷分散を実装できますが、通常はハッシュで動作します。これは、ハッシュアルゴリズムに基づいて特定のインターフェイスで接続が確立され、終了するまでそのインターフェイスで維持されることを意味します。高価なルーターであっても、完了まで確立された接続を維持するために各インターフェイスが必要です。
追加:可能かもしれませんが、実装の範囲により、実用的ではありません。さらに、たとえすべてのトラフィックをモバイルテザーにオフロードできたとしても、ISPが利用規約を更新するまでにどれくらいかかると思いますか?すでにどこかにフェアユースポリシーがあります。要件は次のとおりです。
http://lartc.org/howto/lartc.rpdb.multiple-links.html
https://sandilands.info/sgordon/address-spoofing-with-iptables-in-linux
ISPを大きくしたい場合は、BGPを使用した非対称ルーティングを検討してください。
両方のインターネットアクセスを使用してダウンロード/アップロードの負荷を共有することができますが、常に接続ごとにのみです。したがって、1つのTCP(またはUDP)接続は1つのリンクを介してのみ接続できます。これは他の回答にも記載されています-発信TCPパケットの場合、確認応答パケットを受信する必要があり、これらは同じインターフェイスを経由する必要があります。
たとえば、大規模なYouTubeアップロードを行う前にルーティングテーブルを手動で変更して、インターネット経由のすべてのYouTubeトラフィックをより速いアップロード速度で迂回させてから、元に戻すことができます。ただし、YouTubeはさまざまなIPアドレスを使用するため、困難です(ルーティングはホスト名ではなくIPで機能します)。ただし、一部の企業のFTPサーバーでは、実行可能になる場合があります。
これは、ISPからIPアドレスが与えられているすべてのホームインターネットアクセスに当てはまります。したがって、最初のISPでは、たとえばIP 1.2.3.4が取得されますが、携帯電話では、電話ネットワークオペレーターのIP(たとえば5.6.7.8)が取得されます。接続全体(発信データと着信データ)は、これらのIPアドレスのいずれか1つのみを使用する必要があります。
インターネットをホストする商用およびサーバーの場合、ISPから独立した1つのIPアドレスを取得できるため、同時により多くのインターネット接続を使用できます。
アップストリームトラフィックとダウンストリームトラフィックの異なるエンドポイントをサポートするオーバーレイ(トンネル)接続が必要になります。私が知っている唯一のプロトコルは、LISP(Locator Identifier Separation Protocol)をネイティブにサポートしています。近くのLISP ISPを見つけることができる場合、現在の接続に加えて、それらからISPを購入できる場合があります。おそらく無料ではないでしょう。
技術的には、この機能は本質的にIP上に構築されたすべてのネットワークに組み込まれ(パブリックにルーティング可能なIPアドレスが必要です)、クライアント側のルーティングテーブルを変更するだけでアクティブになります。ISP自身のローカルネットワーク向けのトラフィックの可能性が最も高いのは、引き続きそのインターフェイスを介して送信され、他のすべてのトラフィックはデフォルトゲートウェイを介して送信されます。
確認応答などを行うために一致する必要がある「ソース」IPアドレスは、データの送信に使用されるソケットに基づいて選択され、インターフェイス制限ソケットの例外的な場合を除き、何もすることはありませんデータを運ぶために使用されるインターフェースを使用します。(発信ネットワークインターフェイスはソースIPによって選択されるというコメントに反して、実際にはルーティングテーブルのみが影響を及ぼします)。
ただし、ルーティングは宛先アドレスのみに依存しているという事実は悪意のある目的で使用されているため(パケットスプーフィングはリフレクション攻撃の重要なコンポーネントです)、ほとんどのキャリアはリバースパスフィルタリングを実装し、ソースIP偽装されているとみなされるため、アドレスはパスと一致しません。
パブリックIPアドレスがない場合、リバースパスフィルタリングに加えて、NAT / PATレイヤーはこれが機能しないようにします(コンピューターで使用されるソースIPアドレスは他のネットワークでは無意味であり、パケットがNAT / PATルーターを通過しない場合は、正しく書き換えられます)。
実際、大規模なマルチホームネットワークでは、非対称ルーティングが発生します。重要なことに、リバースパスフィルタリングのほとんどの実装では、パケットが到着したインターフェイスに一致するルートが存在する必要があります。優先ルート(最低コストメトリックのルート)である必要はありません。
ですから、あなたがしなければならない「すべて」は、インターネットプロバイダー(アップストリームのプロバイダーを含む)に(a)リバースパスフィルターを無効にするか、(b)非優先ルートを設定するように説得することです。これは発生しません。コアルーターは30億のルートを処理できず、一意のパブリックIPアドレスごとに1つ持つ必要があります。したがって、すべてのローカルサブネットのルートが存在するISPへの内部を除き、/ 20より小さいブロックのルートを持つことは非常にまれです。
簡単な答えは次のとおりです。ケースの95%で実行できず、その95%以内に収まります。
まず、ルーティングをアップロードとダウンロードに分けて話すことはほとんど意味がありません。なぜなら、激しいダウンロードタスクでも、パケットがソースに逆流する必要があるためです。つまり、ダウンロードにはアップロードフローが必要です(UDPの場合は、 TCP、しかし気にしないでください)。
ダウンロード部分に使用されているものとは異なるNICを使用して、ほとんどのダウンロード接続のアップロードをチャネル化する場合、ダウンロードのソースには、パケットの返信が、それが送信されたIPアドレスとは異なるIPアドレスから送信されますパケットの送信。これは、特定の接続に関連していると見なされるが、サードパーティのアドレスから発信されたパケットを無視するための基本的なセキュリティ機能です。したがって、会話のアップロード部分はドロップされ、接続は停止します。これはISPとそのサービスとはほとんど関係ありません。同じLAN上の2つのPCの間でも発生します。2つのうちの1つが同じ接続で2つの異なるNICを使用してIPアドレスに接続しようとしている場合(したがって2つの異なるIP) 。
これが、アップロード/ダウンロードではなく接続について説明する理由です。しかし、次のように質問を再構成するかもしれません:両方のネットワークに接続された2つのNICを持つPCを持っていることができますか?接続、たとえば、電子メールのような遅くて退屈な仕事のための遅い接続と、Webページのダウンロードのような速いプロセスのための速い接続とか?
この適切な質問に対する簡単な答えは、Windowsでは* Nix(MacOSを含む)、Android noです。Linuxではyesです。
Windows(すべてのバージョン)、* NixおよびAndroidでこれを実行できない理由は、ルーティングテーブルにデフォルトゲートウェイ(* LAN *以外のすべてのパケットを送信するアドレス)が1つしかないためです。 OSは1つのルーティングテーブルしか処理できないため、1つのゲートウェイになります。
代わりに、異なるインターフェイスに異なるアプリケーションを割り当てるには、2つの異なる機能が必要です。1つは2つのルーティングテーブルを同時に実行する機能、2つはアプリケーションをいずれかのルーティングテーブルに関連付ける機能です。この記事の執筆時点では、これらの機能を備えているのはLinuxカーネル(競合より数年先)だけです。* Nixカーネルは、ファイアウォールであるpfsenseを賢明に使用することにより、それを部分的に補償しますが、完全な結果は得られません。
2つのルーティングテーブルを同時に実行する機能(ポリシールーティングまたはソースベースルーティングと呼ばれる)は、パケットがIPアドレスに応じて異なる方法でルーティングされることを意味します。これは、ルーターを構築する場合に非常に便利な機能です。
ただし、アプリケーションに応じて異なるNIC(したがってIPS)を使用するには、ネットワークネームスペースが必要です。これは、独自のネットワークスタックで個別のシェルを構築できるLinuxカーネル機能です。これで、この別個のシェル内で実行されるプロセスはすべて、メインPCのルーティングテーブルではなく、ネットワークネームスペースのルーティングテーブルに従ってルーティングされます。
これはもちろん、仮想マシンは言うまでもなく、たとえばLinuxコンテナーよりも弱い形式ですが、仮想化の形式です。しかし、単一のPCを使用して、さまざまなインターフェイスを介してさまざまなプロセスをルーティングするのが実際の方法です。
要約すると、Linux(およびLinuxのみ)では、VPNを介して職場に接続されている別のネットワーク名前空間を実行できます。これにより、仕事用リソースにアクセスでき、Firefoxを実行している場合は、職場にいるように見えると同時に、ネットワーク名前空間の外でGoogle Chromeを実行しているため、(Chromeで)自宅にいるように見えます。
異なるプロバイダー間で関連する接続を分割できるのは、両方のプロバイダーから到達可能/ルーティング可能な単一のIPアドレスがある場合のみです。通常、そのIPは、BGPを介してアドレスの大きなブロックの一部として提供されます。そして、それがあれば、BGPのパス優先保留とローカル優先ルールと呼ばれる機能を使用して、BGPでこれを行うことができます。
ISPと携帯電話プロバイダーとの間でIPが両方のネットワークを介して到達可能になるようにそのような取り決めを得ることができたとしても、両方の接続に現在支払っているよりも多くの費用がかかります。
一方、実際に求めているのは、ftp / sftpまたはhttpを使用してファイルをアップロードする場合など、主にアップロードセッションで4G接続を使用できるかどうかです。そして、通常のWebブラウジングでそのトラフィックにISPを使用させるには、おそらく答えがあると思います。しかし、おそらく動作するためには、セッションを主にアップロードするセッション、またはダウンロードするセッションに分類できる必要があります。ftpとhttpおよびその他のプロトコルは、アップロードまたはダウンロードのいずれにも等しく使用できるため、ポート番号でこれを判別することはできません。したがって、唯一の選択肢は、データの途中で見ることです。その段階までに、データはすでに流れているので、決定は行われていました。したがって、それは自動化できません。
だから、あなたの場合。番号。(少なくとも、ひもに乗っているときはそうではありません)。
両方の接続から到達可能なホストを制御する必要があります。
そのホストへの2つのVPNトンネルを設定します。各トンネルはあなたの側の異なるインターフェースから行きます。それができたら、2本のイーサネットケーブルを持っているようなものです。ボンディングを使用してそれらを一緒に大きなケーブルとして使用し、トラフィックを通過させることができます。
これで実際にパフォーマンスが大幅に向上するかどうかはわかりませんが(モバイルネットワークの遅延はブロードバンドの遅延よりもはるかに長く、問題を引き起こす可能性があります)、試してみてください。