レビュー

貧弱なインターネット回線をたくさん束ねて強くできる「OpenMPTCProuter」レビュー


光ファイバー回線が普及したことで、一般の家庭でも1Gbpsや10Gbpsで当たり前にインターネットが利用できるようになりました。しかし、賃貸住宅では100MbpsのVDSL回線しか利用できないケースも数多く存在します。無料のオープンソースソフトウェア「OpenMPTCProuter」を使うと、複数の回線を同時に利用して高速なインターネットを楽しむことができます。

OpenMPTCProuter - Internet connection bonding - Home
https://www.openmptcprouter.com/

OpenMPTCProuterが使っているMultiPath TCP(MPTCP)とは、複数のインターフェースを利用してTCPコネクションを確立し、通信のスループットや冗長性を向上させる技術です。OpenMPTCProuterでは、PCやタブレット端末といったクライアントからの通信をOpenMPTCProuterで複数のWAN回線に分岐させ、終端にあるVPSで再びひとつの経路に集めることで、それぞれのWAN回線が貧弱でも高スループットなインターネットを実現することができます。


OpenMPTCProuterでインターネット接続を行うために必要なものは以下。

・OpenMPTCProuterとなるデバイス:Raspberry Piやx86 CPUを搭載したサーバーなど
・VPS:クラウド上の仮想マシンなど
・複数のWAN回線:スマートフォンのテザリングによるモバイル回線や光回線など

さっそくOpenMPTCProuter環境を構築するため、まずは複数のコネクションを束ねるVPSを用意します。今回はGoogle Cloud Platform(GCP)上にUbuntu 20.04をインストールした仮想マシンを用意しました。


なお、GCPの仮想マシンをVPSとして利用する場合は、TCPとUDPのポートをすべて開放しておく必要があります。


作成した仮想マシンにSSHで接続して、VPS構築用の下記コマンドを実行。

wget -O - https://www.openmptcprouter.com/server/ubuntu20.04-x86_64.sh | sudo sh


パッケージのインストールや各種設定などが行われます。


インストールが完了したら仮想マシンを再起動し、再度SSH接続して「uname -a」コマンドを実行。OpenMPTCProuter用のカーネルが読み込まれていればVPSの構築は完了です。なお、再起動後はSSHのポートがデフォルトの22番から65222番に変更されるので注意が必要。


また、「/root/openmptcprouter_config.txt」内に暗号鍵などの情報が記載されてるので、メモしておきます。


続いてOpenMPTCProuterのセットアップを行います。OpenMPTCProuterはRaspberry Piやx86 CPUを搭載したサーバーのほか、VMWareなどの仮想環境にもインストールすることができ、それぞれに対応するイメージファイルが公開されています。今回はRaspberry Pi 4をOpenMPTCProuterとして利用するため、Raspberry PI 4向け64bitイメージをダウンロードしました。


ダウンロードした圧縮ファイルを7-Zipなどの解凍ソフトで解凍。


RufusbalenaEtcherなどのライブUSB作成ソフトを利用して、イメージファイルをSDカードに書き込みます。今回はRufusを利用し、先ほど解凍したイメージファイルを指定してOpenMPTCProuterの起動用SDカードを作成しました。


作成した起動用SDカードをRaspberry Piに挿入し、LANケーブルをPCに接続。OpenMPTCProuter自体がDHCPサーバーとして動作しIPアドレスを割り当てるため、PC側でのIPアドレス設定などは不要です。


「192.168.100.1」にブラウザからアクセスすると、OpenMPTCProuterのログイン画面が表示されました。初回ログイン時はパスワード欄は空の状態でそのまま「ログイン」をクリック。


OpenMPTCProuterのダッシュボードが表示されました。OpenMPTCProuterはネットワーク機器向けLinuxディストリビューションのOpenWrtをベースとしており、GUIや設定項目についてOpenWrtと共通する部分があります。ダッシュボードではインターネット回線の状況やOpenMPTCProuterのシステム情報、DHCPクライアント情報を確認することが可能。


ひとまずOpenMPTCProuterのログインパスワードを設定するため「システム」から「管理画面」へと進みます。


パスワードを入力して「保存」をクリック。これでウェブ管理画面へのログインやSSH接続時に必要なパスワードを設定することができました。


続いてOpenMPTCProuterの各種設定を行います。上部メニューの「システム」から「OpenMPTCProuter」をクリック。


「vps」の項目では、構築したVPSのIPアドレス、「/root/openmptcprouter_config.txt」内に記載されていたサーバー鍵を入力します。


続いてWAN側のインターフェースを設定していきます。デフォルトで用意されている「wan1」と「wan2」は混乱を避けるため削除。


スマートフォンをUSBでRaspberry Piに接続し、USBテザリングをオンにします。


「Interfaces setting」の項目でインターフェースを指定し「Add an interface」をクリック。


インターフェースの設定欄ではプロトコルを「DHCP」に、Multipath TCPを「有効」に設定。


ページ下部の「保存&適用」ボタンをクリックし、設定を適用すると……


テザリングによるWAN回線が追加され、クライアントとなるPCからOpenMPTCProuterを経てVPSへの疎通が確認できました。


ダッシュボードでもインターネットへの接続が確認できます。


単一のWAN回線でスピードテストを行った結果が以下。上り速度に難アリな回線を追加しているため、この状態ではファイルのアップロードなどを行うのはかなり厳しいです。


そこで上りも快適なWAN回線を追加すべく、先ほどと同じようにインターフェースを追加します。


これでWAN回線が2つになりました。


もう一度スピードテストを行うと、上りの速度が大幅に改善。複数のWAN回線を使用して通信することで通信品質を向上させることに成功しました。


なお、それぞれのインターフェース別の帯域は「ネットワーク」の「MPTCP」で確認することができます。


グラフで見やすく回線の使用状況が可視化されています。


下り通信については青色の「上りが遅い」wan1が主に使用されていますが……


上り通信はほとんど緑色の「上りが高速な」wan2を使用しており、上り回線の速度が改善した理由がわかります。


なお、OpenMPTCProuterは最終的にVPSにトラフィックが集まるため、VPSの帯域がボトルネックになる可能性があります。今回のレビューでも、VPSとして利用した仮想マシンのネットワーク環境やスペックにより、2回線の帯域を単純に合計した数値よりもOpenMPTCProuterによって2回線を束ねた数値の方が低くなってしまいました。高速な回線を複数束ねる場合は、VPSとして使用するマシンのスペックやネットワーク環境に注意を払う必要があります。

この記事のタイトルとURLをコピーする

・関連記事
無料&オープンソースで大規模なネットワークを常時グラフィカルに監視できる「Moloch」 - GIGAZINE

ウィンドウサイズに合わせて表示される情報も変わるオープンソースのネットワーク監視ツール「bandwhich」を使ってみた - GIGAZINE

「ノーブランド」のNICは何者なのか、果たして使い物になるのか検証してみた - GIGAZINE

自分の通信が安全にインターネットを通過しているか確認できるウェブサイト「Is BGP safe yet?」をCloudflareが公開 - GIGAZINE

ネットの速度や遅延をサクッと&詳細に計測できるスピードテストサイトがCloudflareから登場 - GIGAZINE

in レビュー,   ソフトウェア, Posted by darkhorse_log