一般的なWi-FiルーターにはWANポートが1個と複数のLANポートがついています。
業務用のルーターだとWANポートが2つ以上ついているものもあり、こんなルーターを使えば複数のプロバイダーへ同時接続して目的に応じて複数のWANポートを使い分けることができます。
たとえば「インターネット接続と支社とのVPN接続」「メイン回線と障害時のサブ(バックアップ)回線」「回線の二重化」「回線の高速化」などです。
バッファローの名機「WZR-HP-AG300H」は標準のハードウェア構成で1つのWANポートと4つのLANポートを持っています。
これにOpenWrtをインストールすることでWANポートを標準の1個から最大で4つまで設定し複数のインターネット接続を確保することができるようになります。
この記事ではWZR-HP-AG300HのLAN1ポートをWANポートとして使えるように設定し、2つのWANポートでインターネット通信できるようにしてみます。
この記事でやりたいこと
この記事でやりたいことは「WZR-HP-AG300H」を使って同時に2つのインターネット接続をしたい、ということです。
ここでいう「インターネット接続」とはプロバイダーへの接続や、上位のルーター(WiMAXやSoftbankAirなど)などへの接続、と考えてください。
このような「1台のルーターで複数のインターネット接続」をデュアルWANと言います。
2つのプロバイダーへ有線接続したい(デュアルWAN)
WZR-HP-AG300Hは1つのWANポートと4つのLANポートがあります。
オリジナルのファームウェアであってもOpenWrtであっても、通常は以下のようなネット接続となります。
標準ではWANポートが1個であり、このWANポートをプロバイダー(または上位のルーター)へ接続することでインターネット接続を可能としています。
WANポートの接続先は上図では「プロバイダー」への接続となっていますが、WiMAXやSoftbank Airなどを使った上位ルーターでも構いません。
WZR-HP-AG300HをデュアルWAN構成にする
ここで、2つめのWANポート(LAN1ポートを流用)を作成し、一台のWZR-HP-AG300Hで2つのプロバイダー(または上位ルーター)へ接続できるようにする、というのが本記事の目的です。
つまりOpenWrtの機能を使って本来LANポートである「LAN1ポート」を「2つめのWANポートとして使えるようにする」ということです。
また、当然ながら上図の「WANポート」「LAN1ポート」は直接プロバイダーへ接続することもできるし上位ルーター(WiMAXやSoftbankAirなど)へ接続することもできます。
※「LAN1~LAN4」のどれでも2つ目のWANポートにできますが、本記事では「LAN1ポートを2つ目のWANポート」として設定していきます。
デュアルWANで何ができる?
このように、一台のルーターで複数のWANポート機能を持つものは家庭用ルーターではほとんどありませんが業務用ルーターでは多くの製品で採用されている機能です。
デュアルWANが使えると何がうれしいのでしょうか?
接続先によって利用するプロバイダーを変える
企業のネットワークだと、一般的な外部との通信(インターネット利用)はWAN1を使い、支社・支店とのVPN接続ではWAN2を使う、などの使い分けができます。
家庭内においても通常のインターネット接続とテレワークで使うVPN接続などの使い分けができます。
また、よくある話題に「IPv6/IPoE通信では某匿名掲示板に書き込み出来ない」という問題があり、この場合は「WAN1は高速なIPv6/IPoE通信を利用」「某匿名掲示板への接続は書き込み可能なPPPoE通信を利用」などの使い分けもできます。
回線を二重化して高速化する
インターネット接続回線を2回線つかうことで理論上の通信速度を2倍に高速化することができます(理論上・・・ですよ)。
特に仕事で大きなファイルの送受信を頻繁に行う人やYouTuberなど大きな動画ファイルを送受信する場合、ファイル送受信中でももう一方の回線で快適な接続を確保することができます。
回線を二重化して障害に強くする
メイン回線とサブ(バックアップ)回線として定義することで、メイン回線が通信障害になった場合でもサブ(バックアップ)回線に自動切換することで継続してネット利用することができます。
サブ(バックアップ)回線を待機系として障害時にメイン回線から切り替えて使うという使い方もできるし、通常から2回線を使って高速化しておき障害時でも片方の回線で通信できる、という使い方もできます。
デュアルWANの構築手順と前準備
実際に2つ目のWANポートを作成定義しデュアルWANを構築する前に、簡単に手順概要と事前準備について説明しておきます。
なお、本記事はバッファロー製ルーター「WZR-HP-AG300H」についてデュアルWAN環境を構築する手順になります。
また、本記事はWZR-HP-AG300HへOpenWrtファームウェアをインストール直後の状態からの構築手順を記載しています。
WZR-HP-AG300HへのOpenWrtインストール手順はこちらの記事を参考にしてください。
デュアルWAN構築のためのたった3ステップ
WZR-HP-AG300HをOpenWrt化し、さらにデュアルWANルーターとして使うための作業は非常に簡単です。
これから行う作業を大きく3ステップで手順紹介しておきます。
※WZR-HP-AG300HはOpenWrtインストール直後の状態とします。
- STEP1VLAN定義(仮想WANポートの作成)
WZR-HP-AG300Hは物理的なWANポートとLANポート(LAN1~LAN4)の通信経路をVLAN(Virtual LAN)として定義しています。
このVLAN定義を変更することで物理ポート(WAN/LAN1~LAN4)の用途(WANとLAN)を変更することで2つ目のWANポートを作成・定義します。
※本記事のキモはこのVLAN定義です。
- STEP2WANインターフェースの作成
STEP1で作成した2つ目のWANポート(仮想デバイス)をWANポートとして使うための定義を行います。
「接続先プロバイダーの定義」などであり、1つ目の(標準の)WANポートと同じように定義していきます。
- STEP3ルーティング定義
2つのWANポートをどう使うかを定義します。
どんな通信を1つ目のWANポートに流し、どんな通信を2つ目のWANポートに流すか、という定義です。
この定義により2つのWANポートの使い方が決まります。
上記の3ステップにより、デュアルWANを構築していきます。
構築作業前(初期状態)の環境確認
デュアルWAN構築まえに初期状態(OpenWrtインストール直後)のWZR-HP-AG300Hの環境を確認しておきましょう。
WZR-HP-AG300HおよびOpenWrtの場合、通信ポートの構成要素は「インターフェース定義」「デバイス定義」「スイッチ定義」の3つになります。
インターフェース定義の確認
OpenWrtインストール直後のインターフェース定義を確認してみます。
メニュー「ネットワーク⇒インターフェース」の「インターフェース」タブで確認してみましょう。
IPv6対応ルーターであれば機種によらず大体は上図のような構成になっています。
デバイス定義の確認
インターフェースを実現するための内部的はハードウェア定義がデバイス定義です。
メニュー「ネットワーク⇒インターフェース」の「デバイス」タブで確認してみましょう。
デバイス定義はハードウェア依存しますが、一般的にこの定義を直接変更することはありません。
VLAN定義の確認
OpenWrtルーターでWANポートとLANポートを定義しているのが「VLAN(Virtual LAN)定義」です。
メニュー「ネットワーク⇒スイッチ」からVLAN定義を確認・編集することができます。
VLAN定義もハードウェア依存しており、以下の定義はバッファローWZR-HP-AG300Hのものであり他のルーターは違う場合があります(ほとんど違うかな?)。
WZR-HP-AG300Hは1つのWANポートと4つのLANポートを持っています。
これを定義したWZR-HP-AG300HにOpenWrtをインストールした直後のVLAN定義は上図のようになっています。
標準のVLAN定義内容は以下のようになります。
VLAN ID | CPU(eth0) | LAN1 | LAN2 | LAN3 | LAN4 |
---|---|---|---|---|---|
1 | タグ付き Tagged |
タグなし untag |
タグなし untag |
タグなし untag |
タグなし untag |
ポイントは「WZR-HP-AG300H」のポート構成(WAN/LAN)はVLANにより定義している、という点です。
ステップ① WZR-HP-AG300HのVLAN定義
- デバイス定義/VLAN定義はハードウェアに依存します
- 本記事はWZR-HP-AG300Hに関して記述しています
WZR-HP-AG300HをOpenWrt化し2つ目のWANポートを作成します。
この定義手順はもとになるルーターのハードウェアに依存しているのですが、WZR-HP-AG300Hの場合にはVLANにより2つ目のWANポートを定義してきます。
VLANの定義(2つ目のWANポートを定義)
それではOpenWrt化されているWZR-HP-AG300HのVLAN定義を変更することで「2つめのWANポート」を作成していきます。
今回は標準のWANポートに加えて4つのLANポート(LAN1~LAN4)のうちLAN1ポートを2つ目のWANポートとして定義します。
メニュー「ネットワーク > スイッチ」からスイッチ(VLAN)定義画面へ遷移します。
「VLANを追加」ボタンを押下してVLAN定義を追加したうえで、下記のようにVLAN定義を追加・修正します。
赤字部分が標準のVLAN定義からの追加・修正部分です。
VLAN ID | CPU(eth0) | LAN1 | LAN2 | LAN3 | LAN4 |
---|---|---|---|---|---|
1 | タグ付き Tagged |
オフ off |
タグなし untag |
タグなし untag |
タグなし untag |
2 | タグ付き Tagged |
タグなし untag |
オフ off |
オフ off |
オフ off |
VLAN定義を修正したら「保存&適用」ボタン押下で設定を反映させます。
以上でVLAN定義は完了です。
新しく作成された仮想デバイス定義を確認
VLAN定義を変更したことで、2つめのWANポートが新しいデバイス「eth0.2」として作成されています。
これをメニュー「ネットワーク⇒インターフェース」の「デバイス」タブで確認してみます。
初期値として作成されていた1つ目のWANデバイス「eth0.1」に加えて2つ目のWANデバイス「eth0.2」が作成されているのがわかります。
初期デバイスの「eth0.1」とは物理デバイス「eth0(標準のWANポート)」に対する仮想デバイス(VLAN)の「VLAN ID=1」ということです。
2つのWANポートをどう使い分けるの?
そして今回、VLANに「VLAN ID=2」の定義を追加したことで仮想デバイス「eth0.2」が追加作成された、ということになります。
よって現時点(VLAN定義変更後)でのWZR-HP-AG300Hの物理ポートの使い方は以下のようになります。
物理ポート | 仮想デバイス | ポート構成 |
---|---|---|
WAN | eth1 | WZR-HP-AG300H標準のWANポート |
LAN1 | eth0.2 | 「VLAN ID=2」で作成したWANポート ※物理LAN1ポート |
物理ポート「WAN」を利用する場合は「eth1」デバイスを定義し、物理ポート「LAN1(2つめのWANポート)」を利用する場合には「eth0.2」デバイスを定義します。
ステップ② WANインターフェースの作成・定義
VLAN定義により2つ目のWANポートデバイス「eth0.2」が作成されたので、この「eth0.2」を使ってインターフェースを定義していきます。
目標としている構成は以下のような構成です。
標準のWANポートは楽天ひかりのPPPoE接続でインターネットへ接続します(PPPoEクライアント接続)。
今回追加した2つ目のWANポート(物理LAN1ポート)はすでにインターネット接続されているホームルーター「home5G」へ有線接続します(DHCPクライアント接続)。
物理ポート | 仮想デバイス | インターフェース構成 |
---|---|---|
WAN | eth1 | PPPoEクライアント ※楽天ひかりへ接続 |
LAN1 | eth0.2 | DHCPクライアント ※NTTドコモhome5Gへ接続 |
なお、今回構築するネットワーク環境はIPv4環境のみとしIPv6環境は構築しません。
インターフェースの構成
メニュー「ネットワーク⇒インターフェース」画面よりインターフェースを定義していきます。
インストール直後の標準構成ではIPv4通信用インターフェース「WAN」とIPv6通信用インターフェース「WAN6」が定義されています。
どちらも標準のWANポートに対する定義であり、この定義を流用して設定してもよいのですが紛らわしくなるので今回はいったん「WAN」および「WAN6」は削除しておきます。
「WAN」「WAN6」の各インターフェース定義の右側にある「削除」ボタンを押下し、「保存&適用」ボタンを押下するとインターフェース定義は削除されます。
今回は次のようなインターフェース定義を行います。
インターフェース名 | 物理ポート | 仮想スイッチ | プロトコル |
---|---|---|---|
WAN | WANポート | eth1 | PPPoEクライアント |
WANB | LAN1ポート | eth0.2 | DHCPクライアント |
1つ目のWAN(WAN)インターフェースの定義
1つ目のWANポート(物理WANポート)の定義を行っていきます。
1つ目のWANポートは楽天ひかりへPPPoE接続するためのポートとして定義します。
メニュー「ネットワーク⇒インターフェース」よりインターフェース定義画面へ遷移します。
インターフェース定義画面より「インターフェースを新規作成」ボタンを押下します。
新規インターフェースの作成(WAN)
一つ目のWANインターフェースを定義していきます。
ここではインターフェース名を「WAN」としてます(名称は任意)。
※標準で定義されているインターフェース名と同じにしています。
名前 | “wan”とします |
---|---|
プロトコル | PPPoEを選択します。 |
デバイス | “イーサネットアダプタeth1“を選択します。 |
上記を設定し「インターフェースを作成」ボタンを押下します。
画面が「一般設定」タブに切り替わり以下の画面が表示されます。
ここで設定値の確認と追加設定を行います。
プロトコル | PPPoEになっていることを確認 |
---|---|
デバイス | eth1になっていることを確認 |
PAP/CHAPユーザー名 | PPPoE接続ユーザー名を設定 |
PAP/CHAPパスワード | PPPoE接続パスワードを設定 |
ファイアーウォールゾーンの定義
以上を確認・設定したら「ファイアウォール設定」タブへ切り替えます。
ファイアウォールゾーン「WAN」を割り当てます。
以上を確認・設定したら「保存」ボタンを押下します。
インターフェースの有効化
インターフェース一覧画面に戻ると、今作成したインターフェース「WAN」が作成されています。
この時点ではまだインターフェース「WAN」は有効化されていないので、画面下部の「保存&適用」ボタンを押下してインターフェース「WAN」を有効化します。
インターフェース「WAN」が有効化されると以下のようにインターフェース一覧が更新されます。
インターフェース「WAN」にIPv4またはIPv6のIPアドレスが付与されていれば上位ネットワークへ接続できてます。
今回はインターフェース「WAN」は上位プロバイダー「楽天ひかり」へPPPoE接続しているので、プロバイダーからIPv4アドレスが付与されています。
以上で「1つ目のWANインターフェース」の定義は完了です。
この時点で物理WANポートを使ったインターネット接続はできている状態です。
2つ目のWAN(WANB)インターフェースの定義
次に2つ目のWANポート(物理LAN1ポート)の定義を行っていきます。
2つ目のWANポートはNTTドコモのホームルーター「home5G」接続のための「DHCPクライアント」として定義します。
メニュー「ネットワーク⇒インターフェース」よりインターフェース定義画面へ遷移します。
インターフェース定義画面より「インターフェースを新規作成」ボタンを押下します。
新規インターフェースの作成(WANB)
二つ目のWANインターフェースを定義していきます。
ここではインターフェース名を「WANB」としてます(名称は任意)。
※名称は任意なのですがOpenWrtでは二つ目のインターフェースを「WANB」「WANB6」と名称設定するのが一般的であり、各種設定や資料を見る場合において「WANB/WANB6」としておいたほうが便利です。
名前 | “wanb”とします |
---|---|
プロトコル | DHCPクライアントを選択します。 |
デバイス | “スイッチVLAN:eth0.2“を選択します。 |
※「デバイス」を間違えないように注意してください。VLAN定義(ID=2)で作成された「eth0.2」をデバイス指定することで、二つ目のWANポート(物理LAN1ポート)を利用するインターフェースとして定義されます。
上記を設定し「インターフェースを作成」ボタンを押下します。
画面が「一般設定」タブに切り替わり以下の画面が表示されます。
ここで設定値の確認と追加設定を行います。
プロトコル | DHCPクライアントになっていることを確認 |
---|---|
デバイス | eth0.2になっていることを確認 |
ファイアーウォールゾーンの定義
以上を確認・設定したら「ファイアウォール設定」タブへ切り替えます。
ファイアウォールゾーン「WAN」を割り当てます。
以上を確認・設定したら「保存」ボタンを押下します。
インターフェースの有効化
インターフェース一覧画面に戻ると、今作成したインターフェース「WANB」が作成されています。
この時点ではまだインターフェース「WANB」は有効化されていないので、画面下部の「保存&適用」ボタンを押下してインターフェース「WANB」を有効化します。
インターフェース「WANB」が有効化されると以下のようにインターフェース一覧が更新されます。
インターフェース「WANB」にIPv4またはIPv6のIPアドレスが付与されていれば上位ネットワークへ接続できてます。
今回はインターフェース「WANB」はNTTドコモのホームルーター「home5G」へDHCPクライアントとして接続しているので、ホームルーターからIPv4アドレスが付与されています。
以上で「2つ目のWANインターフェース」の定義は完了です。
この時点で物理LAN1ポートを使ったインターネット接続はできている状態です。
インターフェースのまとめ
以上でOpenWrtをインストールしたWZR-HP-AG300Hに2つめのWANインターフェース(WANB)を定義する手順は完了です。
今回の構築手順により、WZR-HP-AG300Hは以下のような物理ポート構成となっており、標準のWANポートに加えて物理LAN1ポートを2つ目のWANポート(WANB)として利用可能です。
今回は2つのWANポートを以下のようなインターフェース構成としました。
物理ポート | デバイス | インターフェース名 | インターフェース用途 |
---|---|---|---|
WANポート | eth1 | WAN | PPPoE接続 ※楽天ひかり |
LAN1ポート | eth0.2 | WANB | DHCPクライアント接続 ※NTTドコモ「home5G」 |
今回は2つのWANポート(WAN/WANB)をそれぞれPPPoEクライアント/DHCPクライアントとして定義しました。
WAN/WANBどちらもWANポートとして自由に定義できるので、ご自宅の環境に合わせてインターフェース定義をしてください。
今回はIPv4環境のみを定義しましたが、もちろんフレッツ光回線で標準化されている「IPv4 over IPv6(MAP-e/DS-Liteなど)」などを使ったインターフェース定義も可能です。
WANポートに対してIPv4 over IPv6のDS-Liteによるインターフェース定義については以下の記事を参考にしてみてください。
ポイントは「物理WANポートはデバイスeth1を使う」「物理LAN1ポート(2つ目のWANポート)はデバイス”VLAN eth0.2″を使う」という点になります。
ステップ③ ルーティングの定義
「ステップ①VLAN定義」「ステップ②インターフェース定義」により、ここまでの手順によりWZR-HP-AG300Hは以下のような構成になっています。
本来のWANポート(物理WANポート)は楽天ひかりへPPPoE接続(PPPoEクライアント定義)であり、2つ目のWANポート(LAN1ポート)はNTTドコモのホームルーター「home5G」へDHCPクライアントとして接続しています。
現在この2つのインターネット接続が利用可能ですが、ではルーター配下のPCやスマホはどちらのインターネット回線を使っているのでしょうか?
ルーティング定義を確認してみる
OpenWrtルーターがクライアント(PCやスマホ)からの通信をどのように処理するかはルーティングテーブルで定義されています。
ルーティングテーブルはメニュー「ステータス⇒ルーティング」から確認することができます。
私の環境では現時点(構成定義完了直後)のルーティング定義は以下のようになっていました。
※初期のルーティング定義は環境により異なります。
この場合、すべての外部通信「ターゲット:0.0.0.0/0」がインターフェース「WANB」に流れていく(通信する)、という定義になっています。
つまりこの時点ではせっかくデュアルWAN構成にしたのにすべての通信は「WANB(NTTドコモhome5G)」を使って通信する、というルーティング設定です。
設定① メイン回線/サブ回線を定義する(回線の二重化)
今回、2つのWANインターフェース(WAN/WANB)を定義し、利用可能な状態としています。
この2つのインターフェースを以下のように使い分けたいと思います。
インターフェース | ルーティング優先度 | 利用目的 | 用途 |
---|---|---|---|
WAN | 優先度高 | メイン回線 | 通常のインターネット通信で利用する回線 |
WANB | 優先度低 | サブ回線 | メイン回線の障害時に利用する回線 |
インターフェース「WAN」をメイン回線とし、2つ目のインターフェース「WANB」を障害時などのサブ(バックアップ)回線として優先順位付けする、ということです。
ゲートウェイメトリックの定義
回線(インターフェース)ごとの優先順位はインターフェース定義の「メトリック」を設定することで行います。
インターフェース一覧から「WAN」「WANB」をれぞれにメトリックを設定していきます。
まずメイン回線「WAN」インターフェースの「詳細設定」タブを開きます。
ゲートウェイメトリックを以下のように設定します。
ゲートウェイメトリックを使用 | “10”を設定 |
---|
次にサブ回線「WANB」インターフェースの「詳細設定」タブを開きます。
ゲートウェイメトリックを以下のように設定します。
ゲートウェイメトリックを使用 | “20”を設定 |
---|
※メトリックの小さい値のほうが優先順位が高い、という意味になります。
今回は「WAN=10」「WANB=20」とメトリックを設定したので、WANが優先順位が高い(WANがメイン回線)という設定になります。
最後に設定を反映させます。
インターフェース一覧の「保存&適用」ボタンを押下して設定を反映させます。
以上で回線(インターフェース)単位の優先順位付けが完了です。
ルーティング定義の確認
メニュー「ステータス⇒ルーティング」で現在のルーティング情報を確認してみましょう。
設定通り、「WANインターフェースがメイン回線(優先度高)」「WANBインターフェースがサブ回線(優先度低)」とルーティング設定されています。
「メトリック」の数字が小さいほうが「優先度高」になるので、インターフェースの優先順位は各インターフェースのメトリック値を調整することで優先順位付けが可能という仕組みです。
簡単な動作の確認
この状態でたとえばYouTubeの動画を視聴するとします。
回線は優先度の高いメイン回線を使って通信しています(この場合はWAN)。
動画視聴中にメイン回線のLANケーブルを抜いてみてください。
メイン回線のLANケーブルが抜かれるとすでにメイン回線は通信不可となり、ルーティングはサブ回線(この場合はWANB)に切り替わります。
YouTubeは動画データをバッファリングすることもあり、メイン回線からサブ回線に切り替わったのも気づかない程度にスムーズに動画視聴を続けることができます。
設定② 通信先によって回線(WAN/WANB)を使い分ける
メイン/サブ回線という使い方に加えて「特定の通信先だけサブ回線を使う」という定義が可能です。
つまり2つの回線(インターフェース)の使い方として以下のように定義できます。
インターフェース | ルーティング優先度 | 利用目的 | 用途 |
---|---|---|---|
WAN | 優先度高 | メイン回線 | 通常のインターネット通信で利用する回線 |
WANB | 優先度低 | サブ回線 | メイン回線の障害時に利用する回線 特定の接続先への接続に利用 |
ここで「特定の接続先」とは例えば仕事のテレワークなどで使う会社のVPNサーバーへの接続などが想定されます。
また、よくある問題としてメイン回線では某匿名掲示板に書き込みができないためサブ回線で書き込みを行う、という使い方も想定されます。
特定接続先のIPアドレス確認
ここでは特定の接続先として匿名掲示板「5ch.net」を想定します。
つまり、通常のインターネット通信ではメイン回線(WAN)を使って通信し、匿名掲示板5ch.netを利用する場合にはサブ回線(WANB)を使って通信する、という定義です。
特定接続先へのルーティング定義を行うには通信先(この場合は5ch.net)のIPアドレスが必要なので「nslookup」コマンドで以下のようにIPアドレスを確認しておきます。
root@OpenWrt: nslookup 5ch.net ←コマンド入力
Server: 127.0.0.1
Address: 127.0.0.1:53
Non-authoritative answer:
Name: 5ch.net
Address: 172.64.107.36
Name: 5ch.net
Address: 172.64.106.36
Non-authoritative answer:
root@OpenWrt:
上記の「nslookup」コマンドにより、5ch.netドメインが紐づけられているIPアドレスは以下の2つあることがわかりました。
ドメイン名 | IPアドレス |
---|---|
5ch.net | 172.64.107.36 172.64.106.36 |
同様に、仕事のテレワークなどで会社のVPN接続を別ルートとしたい場合は「nslookup ドメイン名」でIPアドレスが確認できます。
個別ルーティングの設定
では5ch.netへの個別ルーティングを定義していきます。
個別ルーティングはメニュー「ネットワーク⇒ルーティング」で設定します。
ルーティング設定画面で「追加」ボタン押下します。
5ch.netはIPアドレスが2つあるので、まずは1つ目のIPアドレスをルーティング設定します。
1つ目のIPアドレスに対してルーティング設定画面より以下のように選択・入力します。
インターフェース | 「WANB」を選択 |
---|---|
ターゲット | 「172.64.106.36/32」を入力 ※1個目のIPアドレス |
入力確認後「保存」ボタンで設定を保存します。
次に2つ目のIPアドレスに対してルーティング設定を行います。
2つ目のIPアドレスに対してルーティング設定画面より以下のように選択・入力します。
インターフェース | 「WANB」を選択 |
---|---|
ターゲット | 「172.64.107.36/32」を入力 ※2個目のIPアドレス |
入力確認後「保存」ボタンで設定を保存します。
「IPv4静的ルーティング」に2つのルーティング定義が行われたことを確認し、「保存&適用」ボタンを押下して設定を反映させます。
個別ルーティングの確認
では特定の接続先(ここでは5ch.net)に対して設定した静的ルーティングを確認します。
メニュー「ステータス⇒ルーティング」からルーティング情報を確認します。
「アクティブなIPv4ルーティング」に今定義した2つの静的ルーティングが反映されていることを確認します。
通信経路の動作確認
最後に実際の通信により通信経路を確認してみましょう。
現在の設定は以下のようになっていることを確認します。
インターフェース | ルーティング優先度 | 利用目的 | 用途 |
---|---|---|---|
WAN | 優先度高 | メイン回線 | 通常のインターネット通信で利用する回線 ※vectant.ne.jpへ接続 |
WANB | 優先度低 | サブ回線 | メイン回線の障害時に利用する回線 特定の接続先(5ch.net)への接続に利用 ※192.168.128.0/24へ接続 |
ここでメイン回線(WAN)は楽天ひかり(プロバイダーはvectant.ne.jpであり、サブ回線はNTTドコモhome5Gルーター(ネットワークアドレス192.168.128.0/24)です。
sshクライアント(TeraTermなど)でOpenWrtルーターへログインし、「traceroute」コマンドで経路を確認します。
まずはgoogle.comへの通信経路を確認してみます。
root@OpenWrt:~# traceroute google.com
traceroute to google.com (172.217.26.238), 30 hops max, 46 byte packets
1 ********Biz.vectant.ne.jp (163.***.***.***) 8.489 ms 7.173 ms 9.377 ms
2 163.***.***.*** (163.***.***.***) 6.747 ms 6.675 ms 6.688 ms
3 163.***.***.*** (163.***.***.***) 6.366 ms 6.604 ms 6.292 ms
4 163.***.***.*** (163.***.***.***) 22.357 ms 22.408 ms 21.914 ms
5 163.***.***.*** (163.***.***.***) 20.208 ms 20.135 ms 20.306 ms
6^C
root@OpenWrt:~#
google.comへの経路を確認すると、第一ホップで「***.vectant.ne.jp(163.***.***.***)」を経由していることがわかります。
「アクティブなIPv4ルート」によるとこのIPv4アドレスはインターフェース「WAN(=PPPoE)」のゲートウェイIPv4アドレスであることがわかります。
つまり、google.comへの通信はWANインターフェースを経由していることがわかります。
次にyahoo.co.jpへの通信経路を確認してみます。
root@OpenWrt:~# traceroute yahoo.co.jp
traceroute to yahoo.co.jp (183.79.248.252), 30 hops max, 46 byte packets
1 ********Biz.vectant.ne.jp (163.***.***.***) 12.179 ms 7.507 ms 9.518 ms
2 163.***.***.*** (163.***.***.***) 6.682 ms 6.499 ms 6.535 ms
3 163.***.***.*** (163.***.***.***) 14.322 ms 6.397 ms 6.292 ms
4 163.***.***.*** (163.***.***.***) 16.617 ms 15.926 ms 15.605 ms
5 124.***.***.*** (124.***.***.***) 14.984 ms 14.203 ms 18.152 ms
6^C
root@OpenWrt:~#
yahoo.co.jpへの経路においても、第一ホップで「***.vectant.ne.jp(163.***.***.***)」を経由していることがわかります。
つまり、yahoo.co.jpへの通信も同様にWANインターフェースを経由していることがわかります。
では、個別宛先としてルーティング定義した5ch.netへの通信経路を確認してみましょう。
root@OpenWrt:~# traceroute 5ch.net
traceroute to 5ch.net (172.64.161.3), 30 hops max, 46 byte packets
1 192.168.128.1 (192.168.128.1) 498.476 ms 2.447 ms 1.999 ms
2 172.***.***.*** (172.***.***.***) 311.566 ms 88.400 ms 70.188 ms
3 172.***.***.*** (172.***.***.***) 35.779 ms 37.567 ms 38.997 ms
4 172.***.***.*** (172.***.***.***) 38.084 ms 172.19.82.17 (172.19.82.17) 37.714 ms 172.19.82.13 (172.19.82.13) 38.848 ms
5^C
root@OpenWrt:~#
5ch.netへの通信経路においては、第一ホップで「192.168.128.1」のデバイスを経由していることがわかります。
この「192.168.128.1」は「アクティブなIPv4ルート」において「WANB(home 5G)」のゲートウェイアドレスとして定義されており、home5Gルーター本体のIPアドレスです。
つまり、5ch.netへの通信においては「WANB」インターフェースを経由していることがわかります。
この「192.168.128.1」はサブ回線として利用しているNTTドコモhome5GのIPアドレスであり、5ch.netへの通信はサブ回線を経由していることが確認できました。
mwa3モジュールによる回線冗長化の環境構築
ここまでの手順によりWZR-HP-AG300Hに2つ目のWANインターフェース(WANB)を定義し、2つのインターネット接続を確保しました。
本記事では以下のように定義しています。
インターフェース | ルーティング優先度 | 利用目的 | 用途 |
---|---|---|---|
WAN | 優先度高 | メイン回線 | 通常のインターネット通信で利用する回線 |
WANB | 優先度低 | サブ回線 | メイン回線の障害時に利用する回線 |
ここまでの定義でも「メイン回線(WAN)のLANケーブルを引き抜くと自動的にサブ回線(WANB)へ切り替わる」という動作をします。
しかし、これはあまりにも乱暴な仕組みだし切り替えや切り戻しをコントロールできていません。
このために「mwan3」というモジュールを追加インストールし、複数回線のロードバランスを制御する仕組みを構築していきます。
ここからの記事では以下の環境構築を目標とします。
- メイン回線/サブ回線の死活監視を行う仕組み
- 死活監視でメイン回線異常と判断した場合のサブ回線への切り替えの仕組み
- メイン回線が復旧した場合に自動的にメイン回線へ切り戻しの仕組み
mwan3モジュールのインストール
まずはmwan3モジュールおよびWebUI(LuCI)インターフェースをインストールします。
メニュー「システム⇒ソフトウェア」からモジュールインストールします。
「リストを更新」ボタンを押下してインストール可能なパッケージリストを更新します。
パッケージリストの更新が完了したらフィルター欄に「mwan3」を入力するとmwan3関連モジュールが一覧表示されます。
一覧から以下の2モジュールをインストールします。
- mwan3
- luci-i18n-mwan3-ja
mwa3モジュールがインストールされるとLuCIにメニュー項目が追加されるので確認します。
メニュー「ステータス⇒MultiWAN Manager」が追加されています。
こんな画面が追加されています。
また、メニュー「ネットワーク⇒MultiWAN Manager」が追加されています。
こちらはこんな画面が追加されています。
これらの画面機能はmwan3モジュールの設定と環境確認で使っていきます。
以上でmwan3モジュールのインストールは完了です。
mwan3の環境定義
続いてmwan3モジュールの環境構築を行っていきます。
mwan3モジュールはインストール時に標準構成定義が組み込まれています。
今回はこの標準構成定義を修正していくことで目標とする環境を構築します。
インターフェースの名称について
mwan3モジュールはインストール時に標準構成定義(サンプル定義)が組み込まれています。
このサンプル定義では1つ目のWANインターフェースを「wan」と定義し、2つ目のインターフェースを「wanb」と定義しています。
作業を簡単にするため、事前に2つ目のインターフェース名が「wanb」でない場合にはインターフェース定義画面よりインターフェース名を「wanb」と変更しておきましょう。
冗長化定義の修正
ではmwan3の標準構成定義(サンプル定義)を利用しながら回線の冗長化定義を行っていきます。
メニュー「ネットワーク⇒MultiWAN Manager」から設定画面を開きます。
MultiWAN Manager画面の「インターフェース」タブを開きます。
mwan3の標準構成定義は上記のように定義されていますが、本記事の環境では「wan6」と「wanb6」つまりIPv6環境は利用しないので「wan6」「wanb6」の定義を「削除」ボタンで削除します。
これにより、冗長化対象の回線は以下のようになります。
インターフェース | ルーティング優先度 | 利用目的 | 用途 |
---|---|---|---|
WAN | 優先度高 | メイン回線 | 通常のインターネット通信で利用する回線 |
WANB | 優先度低 | サブ回線 | メイン回線の障害時に利用する回線 |
「wan6」「wanb6」のサンプル定義を削除したら「保存&適用」ボタンを押下し設定を反映させておきます。
WANB(2つ目のWANポート)の死活監視定義を有効化
標準定義では2つ目のWANポート「WANB」の死活監視がオフになっているので、これをオンにしてあげます。
一覧画面の「WANB」の「編集」ボタンから編集画面を開きます。
「WANB」インターフェースの「有効」をチェックし「保存」ボタンを押下します。
これにより一覧画面上の「WAN」定義の「有効」が「はい」になりました(死活監視有効状態)。
「WANB」の死活監視「有効」が「はい」に変更されているのを確認したら「保存&適用」ボタン押下して設定を反映させておきます。
不要なルール定義の削除
次に「ルール」タブから死活監視ルールを修正していきます。
mwan3の標準構成定義では複数のルールが定義済ですが、本記事の構成では「https」ルールと「default_rule_v6(IPv6の通信ルール)」は使用しないので「削除」ボタンで削除します。
不要なルールを削除後、「保存&適用」で設定を反映させておきます。
IPv4通信の死活監視ルールを定義
IPv4通信の死活監視ルールを定義します。
一覧画面より「default_rule_v4」を「編集」ボタンで編集画面を開きます。
上図のように「Policy Assigned」を一覧から「wan_wanb」を選択します。
本記事では「メイン回線はWAN/サブ回線はWANB」なので上記のように「wan_wanb」を選択しています。
もし「メイン回線はWANB/サブ回線はWAN」での構成であれば「wanb_wan」を選択してください。
最後に「保存&適用」ボタン押下により設定を反映させます。
以上でmwan3モジュールの標準構成定義(サンプル定義)を使った回線冗長化の定義が完了しました。
mwan3モジュール定義の意味を確認
mwan3モジュールをインストールし簡単に設定を修正しました。
この結果、現在のmwan3の設定内容は以下のようになっています。
上記の設定内容を書き出すと下表のようになります。
名前 | Ping Interval | Interface down | Interface up | メトリック |
---|---|---|---|---|
WAN | 10 | 5 | 5 | 10 |
WANB | 10 | 5 | 5 | 20 |
この設定値の意味と冗長化の動作について簡単に説明します。
回線(インターフェース)の優先順位:メトリック
回線の優先順位は「メトリック」で判断されます。
WANインターフェースがメイン回線(優先度高)でありWANBインターフェースがサブ回線(優先度低)となります。
メトリックの小さいほうの回線が優先順位が高い、ということになります。
優先順位(メトリック値)の変更を行う場合、mwan3モジュールではなくインターフェース定義より行います。
回線の死活監視間隔:Ping Interval
WAN回線およびWANB回線に対して10秒間隔でpingによる死活監視を行います。
回線異常(ダウン)の判定時間:Interface down
ping死活監視により5秒以内にping応答がない場合に回線異常と判断します。
メイン回線が異常と判断された場合、自動的にサブ回線に切り替わります。
回線復旧(アップ)の判定時間:Interface up
回線異常と判断された回線がその後のping死活監視により5秒以内に応答があった場合、回線が復旧したと判断します。
一度「回線異常」と判断されたメイン回線が「回線復旧」と判断された場合、自動的にサブ回線からメイン回線へ切り替わります。
まとめ、OpenWrtルーターでデュアルWAN
WZR-HP-AG300Hは標準で1つのWANポート(インターネット接続)と4つのLANポートを持っています。
今回、LANポート1個をWANポートとして定義変更し2つのWANポートをもつデュアルWANルーターとして構築しました。
これにより、「2つのWANポート(有線接続)でデュアルWAN構成が組める」ということになります。
デュアルWANルーターでできること
1台のルーターが複数の外部ネットワーク(インターネットなど)へ接続できるデュアルWANは業務用のルーターではよくある製品となりますが、一般的な家庭用ルーターではWANポートは1つです。
OpenWrtを使うことで、家庭用ルーターでも簡単に2つ目のインターネット接続を確保することができます。
2つの回線でメイン/サブ回線運用
2つのインターネット回線をメイン回線とサブ回線として使うことで、万が一メイン回線に障害が起きてもサブ回線で引き続きネット利用ができます。
通常はメイン回線を使いながらも障害時には自動的にサブ回線を使った通信に切り替わることで安定して継続的なネット利用が可能となります。
2つの回線で高速化
2つの回線を同時に使い通信速度を高速化することができます。
ルーターを経由する通信を2つのインターネット接続に振り分けることで1回線あたりの負荷を軽減し、ネットワーク全体での通信速度を高速化する仕組みです。
もちろんこの状態でどちらかの回線に障害が起きたとしても、残った回線を使ってネット接続を継続することができます。
接続先ごとに回線を分ける
通信する接続先ごとにどちらの回線を使って通信するのか、を使い分けることができます。
通常のインターネット通信はメイン回線で通信しながら、会社のテレワークなどで特定のドメイン(会社など)へVPN接続する場合はサブ回線を利用する、など通信先ごとの使い分けができます。
メイン回線はフレッツ光の夜間でも高速なIPv4 over IPv6を使いながら、会社とのテレワークによるVPN接続はIPv4ベースで安定しているサブ回線を使う、などの使い方が想定されます。
また、本記事で紹介したようにメイン回線では匿名掲示板への書き込みができない、などの場合にも匿名掲示板への通信はサブ回線を使う、という使い方も可能です。
デュアルWANルーターの作り方
本記事ではWZR-HP-AG300Hの物理ポートの中で物理LAN1ポートを2つ目のWANポートとして使う使い方をご紹介しました。
これにより2つのWANポート(有線接続)でインターネット回線の使い分けができます。
また、今回ご紹介したやり方以外でも、OpenWrtルーターなら簡単に2つ目のWANポートを構築することができます。
WANポートとUSBポートでデュアルWAN
WZR-HP-AG300HのようにUSBポートを持っているルーターであれば、USBデバイスと接続することで簡単に2つ目のWANポートを確保することができます。
たとえばノートパソコンなどで利用可能なUSBインターフェースを持つLANポートをOpenWrtルーターに接続すると接続するとUSBデバイスとして認識し簡単に2つ目のLAN/WANポートとなります。
このUSBにより追加されたLAN/WANポートをWANポート(インターネット接続利用可)として利用することができます。
また、OpenWrtルーターのUSBポートとスマホをUSB接続することで、スマホのインターネット接続をOpenWrtでも利用できるようになります(USBテザリング機能)。
これによりスマホがあれば簡単にOpenWrtルーターにインターネット接続機能を確保できるし、標準WANポートと合わせて2つ目のWANポートとしてスマホ回線を使うこともできます。
OpenWrtルーターとスマホのUSBテザリング設定については以下の記事を参考にしてみてください。
WANポートとWi-FiでデュアルWAN
OpenWrtのWi-Fi機能を使いOpenWrtルーターをWi-Fi子機(クライアント)として使うことで、スマホや上位ルーターとWi-Fi接続によるインターネット接続が可能となります(Wi-Fiテザリング機能)。
USBテザリング機能と同様、OpenWrtルーターに簡単にインターネット接続を確保することができるし、また標準WANポートと合わせて2つ目のWANポートとしてWi-Fiテザリングを使うこともできます。
OpenWrtルーターとスマホや上位Wi-Fiルーターとのテザリング設定については以下の記事を参考にしてみてください。
IPv4 over IPv6通信ももちろん可能!
本記事では簡単化のために通信方式をIPv4のみとして環境構築してみましたが、もちろんIPv6を使った通信でもデュアルWAN環境は作れます。
フレッツ光などでは夜間の通信混雑への対応としてすでにIPv4 over IPv6通信方式が主流となっており、この通信方式をデュアルWANで利用することもできます。
WANポートに対してIPv4 over IPv6のDS-Lite規格の通信サービス(Transix/Xpass/v6コネクト)を設定する手順はこちらの記事を参考にしてみてください。
OpenWrtルーターのススメ
このように一般家庭向けルーターをOpenWrt化することでさまざまな通信方式やデバイスを使ったり、複数のWANポートを活用することができます。
OpenWrtルーターを作るのはちょっと面倒ですが初心者でも十分作成することができるし、なにより中古品ルーターを使って1,000円で作ることができます。
「OpenWrtルーターって何?」という方はまずこちらの記事を読んでみてください。
また、OpenWrtルーターに興味を持った方、入門用としては本記事でも使ったバッファローの名機「WZR-HP-AG300H」をおすすめします。
程度の良い中古が1,000円程度で手に入るしOpenWrt化に関する情報も一番充実しています。
WZR-HP-AG300HをOpenWrtルーター化する手順はこちらの記事を参考にしてみてください。
また、バッファローWZR-HP-AG300Hと同様にOpenWrt関連の情報が豊富なルーターとしてエレコムWRC-1167GST2もおすすめです。
エレコムWRC-1167GST2をOpenWrtルーター化する手順はこちらの記事を参考にしてみてください。