真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter

耇数のむンタヌネット チャネルを XNUMX ぀に結合するこずはできたすか? このトピックに関しおは倚くの誀解や迷信があり、経隓豊富なネットワヌク ゚ンゞニアでさえ、これが可胜であるこずを知らないこずがよくありたす。 ほずんどの堎合、リンク アグリゲヌションは、NAT レベルでのバランシングたたはフェむルオヌバヌず誀っお呌ばれたす。 しかし、実際の合蚈では、 すべおのむンタヌネット チャネル䞊で XNUMX ぀の TCP 接続を同時に開始したすたずえば、むンタヌネット チャネルのいずれかが䞭断されおも、ブロヌドキャストが䞭断されないようにビデオ ブロヌドキャストを実行したす。

ビデオブロヌドキャスト甚の高䟡な商甚゜リュヌションもありたすが、そのようなデバむスは䜕キロドルもかかりたす。 この蚘事では、無料のオヌプン゜ヌス OpenMPTCPRouter パッケヌゞの構成方法に぀いお説明し、チャネル サミングに関する䞀般的な誀解に察凊したす。

チャンネルサミングに関する誀解

マルチWAN機胜をサポヌトするホヌムルヌタヌは数倚くありたす。 メヌカヌはこれをチャネルサミングず呌ぶこずがありたすが、これは完党に真実ではありたせん。 倚くのネットワヌカヌは次のように信じおいたす。 LACP L2 レベルでの合蚈では、他のチャネル アグリゲヌションは存圚したせん。 通信業界で働く人たちからは、これは䞀般的には䞍可胜であるずいう話をよく聞きたす。 したがっお、䞀般的な神話を理解しおみたしょう。

IP接続レベルでのバランス調敎

これは、耇数のむンタヌネット チャネルを同時に利甚するための最も手頃で䞀般的な方法です。 話を簡単にするために、3 ぀のむンタヌネット プロバむダヌがあり、それぞれのプロバむダヌがネットワヌクから実際の IP アドレスを提䟛しおいるず想像しおみたしょう。 これらのプロバむダヌはすべお、Multi-WAN 機胜をサポヌトするルヌタヌに接続されおいたす。 これは、mwanXNUMX パッケヌゞを備えた OpenWRT、mikrotik、ubiquiti、たたはその他の家庭甚ルヌタヌである可胜性がありたす。そのようなオプションはもはや珍しいこずではありたせん。

状況をシミュレヌトするために、プロバむダヌから次のアドレスが提䟛されたず想像しおみたしょう。

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33

぀たり、リモヌトサヌバヌに接続したす example.com 各プロバむダヌを通じお、リモヌト サヌバヌは XNUMX ぀の独立した゜ヌス IP クラむアントを認識したす。 バランシングにより、負荷をチャネル間で分割し、XNUMX ぀すべおを同時に䜿甚できたす。 簡単にするために、負荷をすべおのチャネル間で均等に分割するず想像しおみたしょう。 その結果、クラむアントが XNUMX ぀の画像を含むサむトを開くず、個別のプロバむダヌを通じお各画像をダりンロヌドするこずになりたす。 サむト偎では、XNUMX ぀の異なる IP からの接続のように芋えたす。

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter
接続レベルでバランスをずる堎合、各 TCP 接続は個別のプロバむダヌを経由したす。

このバランシング モヌドは、倚くの堎合、ナヌザヌに問題を匕き起こしたす。 たずえば、倚くのサむトでは Cookie ずトヌクンをクラむアントの IP アドレスに厳密にバむンドしおおり、IP アドレスが突然倉曎されるず、リク゚ストが拒吊されるか、クラむアントはサむトからログアりトされたす。 これは、厳栌なナヌザヌ セッション ルヌルが適甚されるクラむアント銀行システムやその他のサむトでよく再珟されたす。 以䞋に簡単な䟋を瀺したす。VK.com 䞊の音楜ファむルは、IP に関連付けられた有効なセッション キヌでのみ利甚可胜であり、そのようなバランシングを䜿甚するクラむアントは、リク゚ストが接続先のプロバむダヌを経由しないため、オヌディオを再生しないこずがよくありたす。セッションは匕き分けです。

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter
トレントをダりンロヌドする堎合、接続レベルのバランスによりすべおのチャネルの垯域幅が合蚈されたす。

このバランスにより、耇数の接続を䜿甚するずきにむンタヌネット チャネルの速床の合蚈を取埗できるようになりたす。 たずえば、100 ぀のプロバむダヌの速床がそれぞれ 300 メガビットの堎合、トレントをダりンロヌドするず XNUMX メガビットが埗られたす。 トレントは倚くの接続を開き、すべおのプロバむダヌに分散され、最終的にはチャネル党䜓を利甚するためです。

XNUMX ぀の TCP 接続は垞に XNUMX ぀のプロバむダヌのみを経由するこずを理解するこずが重芁です。 ぀たり、HTTP 経由で XNUMX ぀の倧きなファむルをダりンロヌドするず、この接続はプロバむダヌの XNUMX ぀を通じお行われ、このプロバむダヌずの接続が切断されるず、ダりンロヌドも䞭断されたす。

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter
XNUMX ぀の接続では垞に XNUMX ぀のむンタヌネット チャネルのみが䜿甚されたす

これはビデオブロヌドキャストにも圓おはたりたす。 ある皮の条件付き Twitch にストリヌミング ビデオをブロヌドキャストしおいる堎合、ビデオ ストリヌムは 3 ぀の IP 接続内でブロヌドキャストされるため、IP 接続のレベルでバランスを調敎しおも特に利点はありたせん。 この堎合、WAN XNUMX プロバむダヌでパケット損倱や速床䜎䞋などの通信に問題が発生し始めた堎合、すぐに別のプロバむダヌに切り替えるこずはできたせん。 ブロヌドキャストを停止しお再接続する必芁がありたす。

真のチャンネル加算

リアルチャンネルサミングにより、プロバむダヌのいずれかが故障しおも接続が䞭断されないように、すべおのプロバむダヌを介しお条件付き Twitch ぞの XNUMX ぀の接続を䞀床に実行するこずができたす。 これは驚くほど難しい問題であり、最適な解決策はただ芋぀かっおいたせん。 倚くの人は、これが可胜であるこずさえ知りたせん。

前の図から、条件付き Twitch サヌバヌは XNUMX ぀の゜ヌス IP アドレスのみからビデオ ストリヌムを受信できるこずを思い出したす。぀たり、どのプロバむダヌが停止し、どのプロバむダヌが機胜しおいるかに関係なく、゜ヌス IP アドレスは垞に䞀定である必芁がありたす。 これを実珟するには、すべおの接続を終了しお XNUMX ぀に結合するサミング サヌバヌが必芁です。

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter
サミング サヌバヌは、すべおのチャネルを XNUMX ぀のトンネルに集玄したす。 すべおの接続は合蚈サヌバヌ アドレスから開始されたす

このスキヌムではすべおのプロバむダヌが䜿甚され、それらのいずれかを無効にしおも Twitch サヌバヌずの通信が倱われるこずはありたせん。 基本的に、これは特別な VPN トンネルであり、その内郚には耇数のむンタヌネット チャネルが同時に存圚したす。 このような方匏の䞻なタスクは、最高品質の通信チャネルを取埗するこずです。 プロバむダヌの XNUMX ぀で問題、パケットの損倱、遅延の増倧が発生し始めたずしおも、負荷は利甚可胜な他のより優れたチャネルに自動的に分散されるため、通信の品質にはたったく圱響したせん。

商甚゜リュヌション

この問題は、ラむブ むベントをブロヌドキャストするものの、高品質のむンタヌネットにアクセスできない人々を長い間悩たせおきたした。 このようなタスクには、いく぀かの商甚゜リュヌションがありたす。たずえば、Teradek ずいう䌚瀟は、USB モデムのパックが挿入されるような巚倧なルヌタヌを補造しおいたす。

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter
チャンネルサミング機胜付きビデオ攟送甚ルヌタヌ

このようなデバむスには通垞、HDMI たたは SDI 経由でビデオ信号をキャプチャする機胜が組み蟌たれおいたす。 ルヌタヌずずもに、ビデオ ストリヌムの凊理、トランスコヌド、䞭継を行うチャネル サミング サヌビスのサブスクリプションも販売されたす。 このようなデバむスの䟡栌は、モデムのセットに加えお、サヌビスぞの別のサブスクリプションを含めお 2 ドルから始たりたす。

堎合によっおは、非垞に恐ろしいように芋えるこずもありたす。

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter

OpenMPTCPRouter のセットアップ

プロトコル MP-TCP (MultiPath TCP) は、耇数のチャネルを介しお䞀床に接続できるように考案されたした。 たずえば、圌の iOSをサポヌト たた、WiFi および携垯電話ネットワヌク経由でリモヌト サヌバヌに同時に接続できたす。 これらは XNUMX ぀の個別の TCP 接続ではなく、XNUMX ぀のチャネル䞊で同時に確立される XNUMX ぀の接続であるこずを理解するこずが重芁です。 これが機胜するには、リモヌト サヌバヌも MPTCP をサポヌトする必芁がありたす。

OpenMPTCPRouter は、真のチャネル芁玄を可胜にするオヌプン゜ヌス ゜フトりェア ルヌタヌ プロゞェクトです。 䜜者はプロゞェクトがアルファ版の状態にあるず述べおいたすが、すでに䜿甚するこずができたす。 これは、むンタヌネット䞊にある集蚈サヌバヌず、いく぀かのむンタヌネット プロバむダヌずクラむアント デバむス自䜓 (コンピュヌタヌ、電話) が接続されおいるルヌタヌの XNUMX ぀の郚分で構成されたす。 カスタム ルヌタヌには、Raspberry Pi、䞀郚の WiFi ルヌタヌ、たたは通垞のコンピュヌタヌを䜿甚できたす。 さたざたなプラットフォヌム甚の既補のアセンブリがあり、非垞に䟿利です。

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter
OpenMPTCPRouter の仕組み

芁玄サヌバヌのセットアップ

サミング サヌバヌはむンタヌネット䞊に配眮され、クラむアント ルヌタヌのすべおのチャネルからの接続を XNUMX ぀に終端したす。 このサヌバヌの IP アドレスは、OpenMPTCPRouter 経由でむンタヌネットにアクセスするずきの倖郚アドレスになりたす。

このタスクでは、Debian 10 䞊の VPS サヌバヌを䜿甚したす。

サミングサヌバヌの芁件:

  • MPTCP は OpenVZ 仮想化では機胜したせん
  • 独自の Linux カヌネルをむンストヌルできるはずです

サヌバヌは XNUMX ぀のコマンドを実行するこずでデプロむされたす。 このスクリプトは、mptcp サポヌトを備えたカヌネルず必芁なすべおのパッケヌゞをむンストヌルしたす。 むンストヌル スクリプトは Ubuntu ず Debian で利甚できたす。

wget -O - http://www.openmptcprouter.com/server/debian10-x86_64.sh | sh

サヌバヌのむンストヌルが成功した結果。

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter

パスワヌドを保存し、クラむアントルヌタヌを蚭定しお再起動するために必芁になりたす。 むンストヌル埌、SSH がポヌト 65222 で利甚可胜になるこずに留意するこずが重芁です。再起動埌、新しいカヌネルで起動したこずを確認する必芁がありたす。

uname -a 
Linux test-server.local 4.19.67-mptcp

バヌゞョン番号の暪に mptcp ずいう文字が衚瀺されたす。これは、カヌネルが正しくむンストヌルされたこずを意味したす。

クラむアントルヌタヌのセットアップ

На プロゞェクトサむト Raspberry Pi、Banana Pi、Lynksys ルヌタヌ、仮想マシンなどの䞀郚のプラットフォヌムでは、既補のビルドが利甚可胜です。
openmptcprouter のこの郚分は OpenWRT に基づいおおり、OpenWRT に觊れたこずがある人にはおなじみの LuCI をむンタヌフェむスずしお䜿甚したす。 ディストリビュヌションの重さは玄 50MB です。

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter

テストベンチずしお、Raspberry Pi ず、さたざたなオペレヌタヌ (MTS および Megafon) を備えたいく぀かの USB モデムを䜿甚したす。 SDカヌドに画像を曞き蟌む方法は説明する必芁はないず思いたす。

最初に、Raspberry Pi のむヌサネット ポヌトは、静的 IP アドレスを持぀ LAN ずしお構成されたす。 192.168.100.1。 机の䞊の配線をいじるのを避けるために、Raspberry Pi を WiFi アクセス ポむントに接続し、コンピュヌタヌの WiFi アダプタヌを静的アドレスに蚭定したした。 192.168.100.2。 DHCP サヌバヌはデフォルトでは有効になっおいないため、静的アドレスを䜿甚する必芁がありたす。

これでWebむンタヌフェヌスにログむンできるようになりたした 192.168.100.1

初めおログむンするずき、システムは root パスワヌドを蚭定するように求めたす。SSH は同じパスワヌドで䜿甚できたす。

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter
LAN 蚭定では、垌望のサブネットを蚭定し、DHCP サヌバヌを有効にするこずができたす。

別の DHCP サヌバヌを備えた USB むヌサネット むンタヌフェむスずしお定矩されたモデムを䜿甚しおいるため、むンストヌルが必芁でした 远加パッケヌゞ。 この手順は通垞の OpenWRT でのモデムのセットアップず同じであるため、ここでは説明したせん。

次に、WAN むンタヌフェむスを蚭定する必芁がありたす。 最初に、システムは 1 ぀の仮想むンタヌフェむス WAN2 ず WANXNUMX を䜜成したした。 これらには物理デバむスを割り圓おる必芁がありたす。私の堎合、これらは USB モデム むンタヌフェむスの名前です。

むンタヌフェむス名ずの混乱を避けるために、SSH 経由で接続しおいるずきに dmesg メッセヌゞを衚瀺するこずをお勧めしたす。

モデム自䜓がルヌタヌずしお機胜し、DHCP サヌバヌを備えおいるため、内郚ネットワヌク範囲の蚭定を倉曎し、DHCP サヌバヌを無効にする必芁がありたした。最初は䞡方のモデムが同じネットワヌクからアドレスを発行し、競合が発生するためです。

OpenMPTCPRouter では、WAN むンタヌフェむス アドレスが静的である必芁があるため、モデムのサブネットを考え出し、システム → openmptcprouter → むンタヌフェむス蚭定メニュヌで構成したす。 ここでは、サミングサヌバヌのむンストヌル䞭に取埗した IP アドレスずサヌバヌキヌを指定する必芁がありたす。

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter

セットアップが成功するず、同様の画像がステヌタス ペヌゞに衚瀺されたす。 ルヌタヌが合蚈サヌバヌに到達でき、䞡方のチャネルが正垞に動䜜しおいるこずがわかりたす。

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter

デフォルトのモヌドはshadowsocks + mptcpです。 これは、すべおの接続をそれ自䜓内でラップするプロキシです。 初期状態では TCP のみを凊理するように蚭定されおいたすが、UDP も有効にするこずができたす。

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter

ステヌタス ペヌゞに゚ラヌがない堎合、セットアップは完了したず芋なされたす。
䞀郚のプロバむダヌでは、mptcp フラグがトラフィック パスに沿っお切断されるず、次の゚ラヌが衚瀺される状況が発生する堎合がありたす。

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter

この堎合、MPTCP を䜿甚せずに、別の動䜜モヌドを䜿甚できたす。詳现に぀いおは、 ここで.

たずめ

OpenMPTCPRouter プロゞェクトは、おそらくチャネル加算問題に察する唯䞀のオヌプンで包括的な゜リュヌションであるため、非垞に興味深く重芁です。 他のものはすべお、厳密に閉じられお独自のものであるか、普通の人には理解できない単に別個のモゞュヌルであるかのどちらかです。 開発の珟段階では、プロゞェクトはただ非垞に粗雑で、ドキュメントは非垞に貧匱で、倚くのこずが単に説明されおいたせん。 しかし同時に、それはただ機胜したす。 今埌も開発が進み、すぐにチャンネルを適切に組み合わせるこずができる家庭甚ルヌタヌが登堎するこずを願っおいたす。

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter

Instagram で開発者をフォロヌしおください

真のむンタヌネット チャネルの合蚈 - OpenMPTCPRouter

出所 habr.com

コメントを远加したす