楽天ひかりは高速通信IPv4 over IPv6の通信サービスの一つである「クロスパス(Xpass)」により夜間でも通信混雑の影響を受けない高速通信が可能です。
また、同時に従来の通信サービスであるPPPoE通信も利用可能です。
一般的な家庭用ルーターではこの2つ(XpassとPPPoE)の同時利用はできませんが、OpenWrtルーターというカスタムルーターを使うことでXpassとPPPoEの同時利用が可能、そして通信相手によってどちらの通信経路を利用するか個別に定義することができます。
これにより、通常利用は高速通信「クロスパス(Xpass)」を使いながらも「特定の匿名掲示板ではPPPoE通信を利用」「会社のテレワーク(VPN接続)ではPPPoE通信を利用」など通信相手によって2つの通信方式を使い分けることができるようになります。
この記事では「OpenWrtルーターとは?」に始まり、1台のOpenWrtルーターでXpassとPPPoEの両通信方式を使えるようにする定義手順までをご紹介していきます。
OpenWrtルーターで作る「クロスパス&PPPoE」併用環境
この記事では1台のOpenWrtルーターで楽天ひかりの「クロスパス」通信と「PPPoE」通信を併用できる環境を構築していきます。
構築環境のイメージとしては以下のようになります。
1台のルーターでクロスパスとPPPoEを併用
楽天ひかりにようにIPv4 over IPv6通信方式と従来の通信方式「PPPoE」を同時に提供しているプロバイダーはいくつかあります。
通常は夜間でも高速・快適な通信ができるIPv4 over IPv6通信を利用することになりますが、一部「外部から自宅へ接続したい」「会社のVPNサーバーへ接続したい」などの場合にPPPoE通信が必要となる場合があります。
本記事では1台のルーターでIPv4 over IPv6(クロスパス)とPPPoEを併用できる環境を構築します。
万能ルーター(?)OpenWrtルーターを使って環境構築
一般的な家庭用ルーターではこのような「1台のルーターで2つの通信方式を併用」することはできないため、2台のルーターを並べての環境構築が必要です。
一般的な家庭用ルーター2台を使った併用環境は以下の記事を参考にしてみてください。
一般家庭用のルーターでもクロスパスとPPPoEの併用環境は構築可能ですが、やはり運用上の使い分け(どちらのルーター配下で運用するか?)が面倒です。
この問題に対処するため、本記事ではバッファローの家庭用ルーターWZR-HP-AG300HにOpenWrtファームウェアをインストールし、OpenWrtの機能を使って「1台のルーターで複数の接続環境」を構築していきます。
OpenWrtルターって何?どうやって作るの?
業務用ルーターなど高機能なルーターを使うと1つのWANポートで楽天ひかりのクロスパス(Xpass)とPPPoEを同時に併用することができますが、一般的な家庭用ルーターでは設定や運用を簡単にするためか、このような機能はありません。
よって一般向けの家庭用ルーターなら「クロスパス(Xpass)とPPPoEのどちらを使う?」という選択が必要です。
この一般向け家庭用ルーターである「バッファローWZR-HP-AG300H」にOpenWrtファームウェアをインストールすることで、業務ルーター並みの高機能となり「ひとつのWANポートでクロスパス(Xpass)とPPPoEを併用可能」という環境を作ることができます。
OpenWrtルーターって何?
「OpenWrtルーターって何?どうやって作るの?」という疑問に簡単に答えておきます。
すでに理解している方は読み飛ばしてください。
家庭用ルーター向けのカスタムファームウェア
OpenWrtとは一般家庭用のルーター向けにフリーソフトウェアとして作成・配布されているカスタムファームウェアであり、対応機種は多岐にわたります。
OpenWrtファームウェアは「OpenWrtプロジェクト」により開発・配布されており「誰でも自由に自己責任での利用・再配布が可能」なGPLライセンスに基づいているフリーソフトウェアです。
このOpenWrtファームウェアを対応市販ルーターへインストールすることで、高機能なルーターとなります。
OpenWrtホームページ | OpenWrt Project
対応ルーター(市販品)にインストールして使う
OpenWrtファームウェアは市販のルーター機種ごとに開発・配布されており、対応ルーターは非常に多岐にわたります。
OpenWrtが対応している市販ルーターはOpenWrtプロジェクトのホームページ「対応機種一覧」より検索し、そこからOpenWrtファームウェアをダウンロードすることができます。
OpenWrt対応ルーター(TOH) | OpenWrt Project
自己責任で自由に利用・再配布ができる(GPLライセンス)
OpenWrtファームウェアはGPLライセンスに基づいて世界中の有志が開発・再配布を行っています。
市販ルーターのオリジナルファームウェアをOpenWrtファームウェアに入れ替えて使う仕組みであることから、OpenWrtファームウェアをインストールすることでメーカ保障は受けられなくなります。
そしてOpenWrt自体も「完全に自己責任」のソフトウェアとなるため、「誰でも自由に利用・再配布が可能」というメリットに対し「完全に自己責任での利用」という点に留意する必要があります。
OpenWrtの詳しい情報は以下の記事を参考にしてみてください。
OpenWrtルーターの構築手順
OpenWrtファームウェアは市販ルーターの機種ごとに開発・配布されています。
非常に高機能なファームウェアですが、一度インストールしてしまえば使い方は簡単、一番難しいのはインストールです。
OpenWrtファームウェアのインストール手順は対応している市販ルーターごとに異なり、この機種ごとのインストール手順が一番難しい(面倒)と言えます。
おすすめのOpenWrt対応ルーター
OpenWrtを初めて作る場合、もっともおすすめの市販ルーターはバッファローの「WZR-HP-AG300H」です。
すでに発売から10年以上経っているルーターですが、現在でも十分使えるハイスペックであり、またベストセラーであったことから程度の良い中古品が1,000円程度で購入可能です。
そしてなによりインストール手順やリカバリー手順がもっとも確率していることで、安心してOpenWrtをインストールすることができます。
OpenWrtをWZR-HP-AG300Hへインストールし設定する手順は以下の記事を参考にしてみてください。
また、バッファローWZR-HP-AG300Hと並んでインストールが簡単なおすすめルーターがエレコム「WRC-1167GST2」です。
OpenWrtをWRC-1167GST2へインストールし設定する手順は以下の記事を参考にしてみてください。
この記事で構築目標とする通信環境
この記事で「高速通信IPv4 over IPv6」と「従来の通信方式IPv4/PPPoE」の併用を1台のOpenWrtルーターで実現します。
実現環境としては楽天ひかりのクロスパス(Xpass)通信とIPv4/PPPoE通信の併用です。
2台のルーターを活用してクロスパス(Xpass)とIPv4/PPPoEを併用する構成は比較的シンプルに見えて実は各ルーターの機能制限があったり運用が面倒だったり、という問題があります。
1台のOpenWrtルーターでクロスパス(Xpass)とIPv4/PPPoEを併用することでネットワーク構成や使用するルーターを意識することなく併用可能な環境が構築できます。
1台のルーターでクロスパスとPPPoE併用!構築環境
この記事で構築する環境は以下の図のようになります。
この構成のポイントは以下の通りです。
ポイント① クロスパスとPPPoEのインターフェースを定義
通常の市販ルーターでは(多くの場合)1つのWANポートに対して1つの通信プロトコルのみ設定可能です。
本記事では一般的な市販ルーターでは(多くの場合)不可能な「クロスパスとPPPoEの2つの通信インターフェースを作成」します。
ポイント② ルーティングテーブルの定義
クロスパスとPPPoEの通信の優先度(メイン回線/サブ回線の定義)をルーティング定義します。
また、特定の通信先で使用する回線の個別ルーティングを定義します。
たとえば「通常のインターネット利用は高速なクロスパス通信を利用」「会社との通信はIPv4/PPPoE通信を利用」というルーティング定義です。
ポイント③ 1台のルーターでクロスパスとPPPoEを併用
そしてOpenWrtを使うことでこれら「クロスパスとPPPoEを併用」「メイン回線/サブ回線の定義」「特定宛先の個別ルーティング」を一台のルーターで実現します。
通常のネット利用は夜間でも速度低下しないクロスパス回線を利用、テレワークでのVPN接続や匿名掲示板の利用など特定通信先との通信はPPPoE回線を利用、という使い分けができます。
一般的に併用する構成として紹介されている「二台のルーターで併用構成」ではなく、シンプルに一台のルーター(OpenWrtルーター)でクロスパスとPPPoEを使い分けていく環境です。
たった3ステップ!構築手順概要
1台のルーターで複数プロトコルの通信インターフェースを設定する、という一般的な家庭用ルーターではできないことをOpenWrtルーターで実現していきます。
ただし、その構築手順は非常に簡単でたったの3ステップで環境構築できてしまいます。
- STEP1OpenWrtインストール
OpenWrtファームウェアをインストールし、初期設定を行います。本記事ではバッファロー製ルーター「WZR-HP-AG300H」を対象とします。
- STEP2インターフェース定義
DS-Lite通信(クロスパス)とPPPoE通信で使用するOpenWrt上のインターフェースを定義します。
- STEP3ルーティング定義
どんな通信がどちらの回線を使って通信するのか、メイン回線(DS-Lite)とサブ回線(PPPoE)の使い方を定義します。
ステップ① OpenWrtインストール(WZR-HP-AG300H)
まずは「ステップ①」としてOpenWrtファームウェアのインストールを行います。
本記事ではバッファロー製ルーター「WZR-HP-AG300H」へのインストールを前提としています。
なお、すでにOpenWrtのインストールが完了している方は本ステップは読み飛ばしてください。
ファームウェア(OpenWrt)のダウンロード
OpenWrtファームウェアはOpenWrtプロジェクトにより開発・配布が行われています。
OpenWrtファームウェアのダウンロードや各種マニュアル(ほぼ英語)などはOpenWrtプロジェクトホームページより取得・参照することができます。
OpenWrtプロジェクトホームページ | OpenWrt Project
OpenWrtファームウェアは市販ルーターの機種ごとに開発・配布されており、今回ターゲットとしているバッファロー「WZR-HP-AG300H」の機種情報は以下に記載されています。
Techdata: Buffalo WZR-HP-AG300H v1 | OpenWrt Project
WZR-HP-AG300H用のダウンロードページから最新版をダウンロードします。
OpenWrtファームウェアセレクター | OpenWrtプロジェクト
お好きなバージョンを選択できますが、バージョンはリリースビルド(“-RC”のついていないもの)が良いでしょう。
いくつかのファームウェアイメージを選ぶことができますが、本記事の手順で使うのは「FACTORY」イメージになります。
OpenWrtのインストール
ダウンロードしたOpenWrtファームウェアを使ってWZR-HP-AG300HをOpenWrt化していきます。
インストールは簡単で、WZR-HP-AG300Hのオリジナルファームウェアのアップデートと同じ手順でダウンロードしたOpenWrtファームウェアを読み込ませるだけでインストール完了です。
OpenWrtファームウェアのインストール
WZR-HP-AG300Hのオリジナルの管理画面から「ファームウェア更新」を行います。
オリジナル管理画面のメニュー「ファームウェアを更新する」を選択します。
ファームウェア更新画面へ遷移します。
ファームウェア更新画面で以下の設定を行います。
更新方法 | “ローカルファイル指定”を選択 |
---|---|
ファームウェアファイル名 | ダウンロードしたOpenWrtファームウェアを選択 |
上記を選択・入力したら「設定」ボタン押下でファームウェア更新が開始されます。
ファームウェア更新が始まるとインジケーターが100%になるまで待ちます。
この時、WZR-HP-AG300Hの電源を抜いたりすると文鎮化するので安定した状態で更新してください。
インジケーターが100%になるとファームウェア更新は完了しています。
画面は変わりませんがルーターは更新完了で再起動しています。
なのでパソコンも再起動しておきましょう。
OpenWrtルーターの再起動
ファームウェア更新のインジケーターが100%に達するとWZR-HP-AG300Hは自動的に再起動します。
そして再起動することで今インストールされたOpenWrtが軌道します。
インストール直後のOpenWrtルーターのIPv4アドレスは以下のようになっているので、必要であればPCを再起動してIPv4アドレスの再取得を行いましょう。
ルーターIPv4アドレス | 192.168.1.1 |
---|---|
DHCP配布アドレス | 192.168.1.100~ |
ブラウザでルーターIPv4アドレスを開くと上記のようにOpenWrtのWebUI画面(LuCI)のログイン画面が表示されます。
初期ログインID | root |
---|---|
初期ログインパスワード | 空(未入力) |
以上でWZR-HP-AG300HへのOpenWrtインストールは完了です。
OpenWrtルーターの初期設定
OpenWrtルーターはインストールした直後の状態ですでに利用可能となっていますが、ここでは本格的に使い始める目に設定しておいたほうが良いいくつかの初期設定を行っていきます。
※必須ではなく任意の初期設定項目です
パスワードの設定
まずOpenWrtルーター本体のパスワードを設定しておくとよいでしょう。
OpenWrtのWebUI(LuCI)へログインする場合のパスワード、およびOpenWrtルーターへSSHログインする場合のパスワードになります。
メニュー「System > Administration」からRouter Passwordの設定を行います。
「Password」「Confirm(確認)」でパスワードを設定し「Save」ボタン押下することでルーターパスワードが設定されます。
一度、メニュー「Logout」からログアウトし、再度ログイン時にパスワードが有効になっていることを確認できるとよいでしょう。
管理画面(LuCI)の日本語化
管理画面(LuCI)の初期状態では英語表記となっています。
このままでも問題ありませんが、必要であれば管理画面(LuCI)を日本語化しておきましょう。
管理画面を日本語化するためには管理画面機能(LuCI)の日本語モジュールをダウンロード&インストールする必要があります。
メニュー「System > Software」からソフトウェア管理画面へ遷移します。
ソフトウェア管理画面の「Update List」ボタン押下により、ソフトウェアの最新更新リストを取得します。
更新リストの取得が完了したら、「Filter」入力欄に「base-ja」などと入力し、一覧画面を表示(絞り込み)します。
以下のモジュールをインストールします。
LuCI日本語化モジュール | luci-i18n-base-ja |
---|
日本語化モジュールのインストールが完了すると、管理画面(LuCI)の日本語化は完了です。
画面をリロードするかまたは別画面へ遷移すると日本語表示されるようになっています。
タイムゾーンの設定
OpenWrtインストール時にはタイムゾーン(標準時刻)は「UTC(協定世界時)」に設定されています(かつてのGMT世界標準時と同じ)。
これは日本標準時間(JST)と9時間の時差があります(UTCが9時間遅れている)。
このタイムゾーンを日本標準時間(JST)に設定しておきましょう。
メニュー「システム>システム」からシステムプロパティ設定画面へ遷移します。
「一般設定」タブの「タイムゾーン」より「Asia/Tokyo」を一覧選択します。
画面下の「保存&適用」ボタン押下により、OpenWrtルーターの時刻表記が日本標準時間(JST)での表記となります。
IPアドレスの設定
インストール直後のOpenWrtルーターはIPv4アドレスが「192.168.1.1」に設定、またDHCPサーバーとしても動作しています。
IPv4アドレス環境の初期状態は以下のようになっています。
OprnWRTルーター IPv4アドレス |
192.168.1.1 | |
---|---|---|
DHCPサーバー | 有効/無効 | 有効(DHCPサーバー有効) |
配布開始IPアドレス | 192.168.1.100 | |
配布数 | 150個 | |
リース時間 | 12時間 |
もし必要があればIPv4アドレスおよびDHCPサーバー設定を変更しておくとよいでしょう。
OpenWrtルーターIPv4アドレスの変更
OpenWrtルーターのIPアドレスは初期値として「192.168.1.1」が設定されています。
IPアドレスの変更はメニュー「ネットワーク>インターフェース」より行います。
インターフェース一覧の「インターフェース」タブより「LAN」デバイスの「編集」ボタンを押下します。
インターフェース「LAN」設定画面の「一般設定」タブよりルーターIPアドレスの設定を行うことができます。
DHCPサーバー設定値の変更
「DHCPサーバー」タブからDHCPサーバーとしての設定を変更することができます。
DHCPサーバー初期設定で配布されるIPアドレス範囲などを変更する場合はこちらの画面から変更します。
設定の反映
「LAN」インターフェースの設定を変更した場合、「保存&適用」ボタンで設定を反映させます。
ただしOpenWrtルーター本体のIPアドレスを変更した場合、「保存&適用」ボタン横の「▼」マークから「チェックなしの適用」を選んで設定を適用させます。
これは本体IPアドレスが変更されたことで設定反映後に現在のブラウザからアクセスできなくなるためで、この場合通常の「保存&適用」であれば設定のロールバックが行われるからです。
「チェックなしの適用」ボタンを押下したら、パソコンも再起動して新しい設定後のIPアドレスを取得しておきましょう。
ステップ② クロスパスとPPPoEの通信インターフェース定義
OpenWrtのインストールが完了したところで、次は通信で使うインターフェースを定義していきます。
具体的に以下の3つのインターフェースを定義します。
インターフェース名称 | 通信機能 |
---|---|
WAN6 | IPv6/IPoE用 インターフェース |
WAN | DS-Lite(クロスパス)用 インターフェース ※WAN6へのトンネルインターフェース |
WANB | IPv4/PPPoE用 インターフェース |
IPv6/IPoE通信インターフェース定義
フレッツ光回線は完全なIPv6ネットワークであり、IPv6/IPoE通信が基本となります。
このフレッツ光環境でIPv4通信を行うための仕組みが「IPv4/PPPoE」だったり「IPv4 over IPv6(MAP-eやDS-Lite)」だったりします。
まずはOpenWrtルーターをフレッツ光標準であるIPv6/IPoE通信に対応させるため、以下の定義を行います
- LANインターフェースでのIPv6アドレスリレー設定
- WAN6インターフェースでのIPv6アドレスリレー設定
上記2点の定義を行うことで、フレッツ光回線でONU(またはVDSLモデム)に付与されたIPv6アドレスをルーターやパソコン・スマホへリレーしてあげることで自宅ネットワークがIPv6対応(フレッツ光対応)となります。
LANインターフェースのIPv6アドレス対応
まずはLANインターフェースにおいて、ONU(またはVDSLモデム)に付与されているIPv6アドレスをリレーするための設定を行います。
メニュー「ネットワーク > インターフェース」よりインターフェース一覧画面を開きます。
インストール直後のインターフェースは以下のように「LAN」「WAN」「WAN6」のインターフェースが定義されています。
インターフェース一覧の「LAN」から「編集」ボタンを押下してインターフェース定義の編集画面を開きます。
「DHCPサーバー」タブの「IPv6設定」タブからリレーモード設定を行っていきます。
上記項目に対し、以下のようにリレー設定を行います。
RA-Service | リレーモード |
---|---|
DHCPv6サービス | サーバーモード |
NDPプロキシ | リレーモード |
以上で「LAN」インターフェースに対するIPv6アドレスのリレー設定は完了です。
WAN6インターフェースのIPv6アドレス対応
次にIPv6用のWANインターフェース「WAN6」に対してIPv6アドレスのリレー設定を行います。
インターフェース一覧画面の「WAN6」定義「編集」ボタンからWAN6インターフェース定義画面を開きます。
WAN6インターフェース定義画面の「DHCPサーバー」タブから「DHCPサーバーをセットアップ」を押下します。
「DHCPサーバー」タブの「IPv6設定」タブ画面が開きます。
「DHCPサーバー > IPv6設定」画面よりDHCPv6の定義を以下のように変更します。
Designaled master | チェックする |
---|---|
RA-Service | リレーモード |
DHCPv6サービス | リレーモード |
NDPプロキシ | リレーモード |
以上で「WAN6」インターフェースに対するIPv6アドレスのリレー設定は完了です。
一覧画面に戻ったら「保存&適用」ボタンにより設定を反映させます。
以上でOpenWrtルーターはフレッツ光回線のIPv6/IPoE通信を利用できる環境となりました(ただしIPv6通信だけ)。
「LAN」および「WAN6」について、フレッツ光回線から付与されたIPv6アドレスをリレーする設定してあげることで、自宅ネットワークもIPv6ネットワークになっています。
現時点で「yahoo.co.jp」などのIPv4サイトへは接続できませんが「google.com」や「facebook.com」などのIPv6対応サイトへは接続可能な状態です。
クロスパス通信インターフェース定義
ここまでの手順でフレッツ光回線のIPv6/IPoE接続での通信ができるようになりました。
つぎはこのIPv6/IPoE通信を使った「IPv4 over IPv6」のクロスパス通信を定義し、IPv4通信もできるように設定していきます。
クロスパス(DS-Lite)通信を利用するためには以下の2ステップの作業が必要です。
- DS-Liteモジュールのインストール
- DS-Liteインターフェースの定義
DS-Liteモジュールのインストール
DS-Liteモジュールをインストールします。
メニュー「システム > ソフトウェア」からソフトウェア更新画面へ遷移します。
まずは更新・インストール可能なプログラム一覧を取得します。
ソフトウェア画面のアクション(Actions)「Update List」から更新可能なプログラム一覧を更新します。
更新可能プログラム一覧の更新が完了するとメッセージが表示されるので、画面下の「Dismiss(閉じる)」ボタンでメッセージ画面を閉じます。
更新・インストール可能プログラムの一覧から「ds-lite」で絞り込みを行います。
一覧に表示される「ds-lite」をインストールします。
DS-Liteモジュールのインストール後にはOpenWrtルーターの再起動が必要です。
メニュー「システム > 再起動」からルーターを再起動しておきます。
以上でDS-Liteモジュールのインストールは完了です。
DS-Lite(クロスパス)インターフェースの定義
DS-Liteモジュールのインストールが完了したので、次はDS-Lite(クロスパス)のインターフェースを定義していきます。
メニュー「ネットワーク > インターフェース」からインターフェース定義画面へ遷移します。
本記事では既存のインターフェース「WAN」をクロスパスインターフェースとして使用します。
標準では「WAN」インターフェースは「DHCPv4クライアント」インターフェースとして定義されているので、これをクロスパス用インターフェースへ設定変更していきます。
インターフェース一覧の「WAN」インターフェースの「編集」ボタンを押下します。
標準のWANインターフェースはDHCPv4クライアントとして設定されているので、以下のように設定内容を変更します。
プロトコル | “Dual-Stack Lite(RFC6333)”へ選択変更 |
---|---|
DS-Lite AFTRアドレス | “dgw.xpass.jp”を入力 ※クロスパス(Xpass)の場合 |
その他のDS-Liteサービスについては以下のAFTRアドレスを設定します。
通信サービス(DS-Lite) | AFTR設定値 |
---|---|
Transix | gw.transix.jp |
クロスパス(Xpass) | dgw.xpass.jp |
v6コネクト | dslite.v6connect.net |
上記を設定したら「保存」ボタンを押下してインターフェース一覧へ戻ります。
インターフェース一覧に戻ったら「保存&適用」ボタンを押下して保留中の設定をシステム反映させます。
DS-Liteインターフェース作成に関するより詳しい情報は以下の記事も参考にしてみてください。
クロスパス(Xpass)の疎通確認
以上でOpenWrtルーターでクロスパス(Xpass)通信を利用するための設定はすべて完了、ポイントは以下の3点です。
- LANインターフェースのIPv6リレー設定
- WAN6(IPv6)インターフェースのIPv6リレー設定
- DS-Liteモジュールのインストールと設定
ここまでの作業が完了したらクロスパス接続確認サイトで設定の確認をしておきましょう。
クロスパス(Xpass)での通信状態であれば、以下のように画面表示されます。
「確認」ボタンを押下し、画面最下部に「クロスパス可変サービス利用中」と表示されればクロスパス通信できている状態となります。
IPv4/PPPoE通信インターフェース定義
IPv4/PPPoE通信のためのインターフェースを定義していきます。
IPv4/PPPoE通信で使うインターフェースは新規インターフェース「WANB」を作成・定義していきます。
メニュー「ネットワーク > インターフェース」よりインターフェース定義画面へ遷移します。
インターフェース一覧画面の「インターフェースを新規作成」ボタンを押下します。
新規インターフェースの定義画面が表示されので、以下の定義を行います。
名前 | “wanb”と指定 |
---|---|
プロトコル | “PPPoE”を選択設定 |
デバイス | “イーサネットアダプタ’eth1′”を選択設定 |
上記を設定して「インターフェースを作成」ボタンを押下します。
上記「一般設定」タブ画面では基本情報を入力・設定します。
プロトコル | “PPPoE”となっていることを確認 |
---|---|
デバイス | “eth1″となっていることを確認 |
PAP/CHAPユーザー名 | プロバイダーから提供されているPPPoEアカウントを登録 |
PAP/CHAPパスワード | プロバイダーから提供されているPPPoEパスワードを登録 |
上記を確認・入力したら次は「ファイアウォール設定」タブ画面へ移動します。
「ファイアウォール設定」タブ画面では以下の選択・設定を行います。
ファイアウォール・ゾーン | 一覧から”wan”ゾーン(赤いやつ)を選択・設定 |
---|
上記を選択・設定したら「保存」ボタン押下してインターフェース一覧画面へ戻ります。
新規作成したインターフェース「wanb」はまだ保留状態なので、「保存&適用」ボタンを押下してシステム反映しておきます。
以上でPPPoEインターフェース「wanb」の新規作成は完了です。
PPPoE設定に関するより詳しい情報は以下の記事も参考にしてみてください。
ステップ③ クロスパスとPPPoEの基本ルーティング設定
ここまでで1台のOpenWrtルーターで「クロスパス(Xpass)」と「IPv4/PPPoE」での接続定義が完了し、どちらの通信方式でも通信できる状態となりました。
ここからは、この2つの回線をどう使い分けるのか?という点において「ルーティング」定義を行っていきます。
まずは基本的なルーティング定義として、2つの回線をメイン回線とサブ回線として定義します。
2つの回線(クロスパスとPPPoE)の優先度設定
現在定義されている2つの回線(クロスパスとPPPoE)について、回線の優先順位をつけていきます。
優先順位の高い回線がメイン回線(常に通信する回線)となり、優先順位の低い回線がサブ回線、という設定です。
優先順位は任意の設定が可能ですが、今回は以下のような優先順位をつけていきます。
優先順位はインターフェース定義のゲートウェイメトリックを設定することで行います。
回線用途 | インターフェース | プロトコル | ゲートウェイメトリック |
---|---|---|---|
メイン回線 | WAN | DS-Lite ※クロスパス |
10 |
サブ回線 | WANB | PPPoE | 20 |
インターフェース定義のゲートウェイメトリック値は「小さい値ほど優先順位が高い」という設定になります。
つまり、メイン回線はクロスパス回線を使い、サブ回線(バックアップ回線)としてIPv4/PPPoE回線を使う、という定義です。
メニュー「ネットワーク > インターフェース」のインターフェース一覧より「WAN(クロスパス)」および「WANB(PPPoE)」のインターフェース定義に対してメトリック値を設定します。
まずは「クロスパス(Xpass)」インターフェースに対してゲートウェイメトリック値を設定します。
クロスパスインターフェースは「WAN」インターフェースとして定義しているので、「WAN」インターフェースの「編集ボタン」を押下します。
「クロスパス(Xpass)」インターフェースの「詳細設定」タブの「ゲートウェイメトリックを使用」の欄にメトリック値「10」を設定し、保存します。
つぎにPPPoEインターフェースとして定義していある「WANB」の「詳細設定」タブの「ゲートウェイメトリックを使用」の欄にメトリック値「20」を設定し、保存します。
2つのインターフェースにメトリック値を設定したら、一覧画面より「保存&適用」ボタン押下で設定を反映させます。
以上で回線インターフェースへのメトリック値(優先順位付け)は完了です。
基本ルーティングの確認
では、設定した回線の優先順位が正しく設定されているか確認してみます。
メニュー「ステータス > ルーティング」画面よりシステムステータスの確認画面へ遷移します。
システムステータス画面の「アクティブなIPv4ルート」を確認します。
ちょっと見づらいので表に書き出すと以下のようになります。
ネットワーク | ターゲット | メトリック | ルーティング テーブル |
---|---|---|---|
wan ※クロスパス回線 |
0.0.0.0/0 | 10 | main |
wanb ※PPPoE回線 |
0.0.0.0/0 | 20 | main |
ルーティングテーブルにおいて「ターゲット:0.0.0.0/0」という定義が「外部ネットワークへのルーティング定義」となり「wan」および「wanb」のインターフェースが利用されていることがわかります。
また優先順位である「メトリック」について、「wan=10」「wanb=20」により外部ネットワークへの通信は「wan(=クロスパス回線)」が優先的に利用されることがわかります。
つまり優先的に「wan(=クロスパス)」インターフェースによる通信を利用するけど、クロスパス通信が利用できない場合には自動的にサブ回線であるwanb(=PPPoE)インターフェースが利用される、というルーティング定義になっています。
以上で基本的なルーティング定義(回線優先度)の設定は完了です。
ステップ④ PPPoEの個別ルーティングテーブルの設定
ここまでの設定でクロスパスとPPPoEの2つの回線の基本ルーティング設定が完了しました。
それぞれのインターフェース定義へメトリック設定を行うことで、現在は「メイン回線はクロスパス回線、サブ回線はPPPoE回線」という基本ルーティング設定になっています。
この状態では正常時においてはすべての通信がメイン回線であるクロスパス回線を使って通信することとなり、サブ回線(PPPoE回線)が無駄になってしまいます。
この章では特定の宛先や特定の通信元(サーバー)での通信はPPPoE回線を使うことを目的として、PPPoE専用のルーティング定義を行っていきます。
現在のルーティングテーブルの設定確認
ルーター内部における通信経路およびその優先度はインターフェースメトリックおよびルーティングテーブルにより決定します。
おさらいとして、現時点でのIPv4ルート情報を確認しておきます。
ちょっと見づらいので表に書き出すと以下のようになります。
ネットワーク | ターゲット | メトリック | ルーティング テーブル |
---|---|---|---|
wan ※クロスパス回線 |
0.0.0.0/0 | 10 | main |
wanb ※PPPoE回線 |
0.0.0.0/0 | 20 | main |
上記のように、現在はインターフェースメトリックの設定により「メイン回線(優先度高)はクロスパス回線(=wan)」「サブ回線(優先度低)はPPPoE回線(=wanb)」となっています。
また、その対象となる通信は基本ルーティングテーブルである「main」によりルーティングが決定されます。
PPPoE用ルーティングテーブルの設定
ルーティングテーブル「main」を使った通信は上記設定(インターフェースメトリック)によりメイン回線/サブ回線にルーティングされます。
これに加えてPPPoE回線を利用する通信専用のルーティングテーブルを追加設定することで、特定宛先や特定機器(サーバー)での通信をメイン回線(クロスパス)とサブ回線(PPPoE)に使い分けることができるようになります。
まずはPPPoE通信専用のルーティングテーブル「pppoe」を作成します。
root@OpenWrt:~# cd /etc/iproute2
root@OpenWrt:/etc/iproute2# ls -l
-rw-r--r-- 1 root root 81 Mar 23 07:09 ematch_map
-rw-r--r-- 1 root root 152 Mar 23 07:09 rt_protos
-rw-r--r-- 1 root root 110 Jun 19 07:08 rt_tables
root@OpenWrt:/etc/iproute2#
### viエディタでルーティングテーブルを編集する ###
root@OpenWrt:/etc/iproute2# vi ./rt_tables
root@OpenWrt:/etc/iproute2#
### "200 pppoe"を1行追加する ###
root@OpenWrt:/etc/iproute2# cat ./rt_tables
#
# reserved values
#
128 prelocal
255 local
254 main
253 default
200 pppoe
0 unspec
#
# local
#
#1 inr.ruhep
root@OpenWrt:/etc/iproute2#
以上でサブ回線(wanb=PPPoE)専用のルーティングテーブル”pppoe(200)”を定義しました。
PPPoEインターフェースへのルーティングテーブル設定
非常に簡単ですがPPPoE専用のルーティングテーブル「pppoe」が作成されました。
このルーティングテーブル「pppoe」をインターフェース「wan(=PPPoE)」へ定義することで、ルーティングテーブルとインターフェースを接続します。
メニュー「ネットワーク > インターフェース」から「wanb(=PPPoE回線)」のインターフェース定義を編集します。
ちょっと小さいですが「wanb(=PPPoE)インターフェース定義の詳細設定タブ」から以下の変更を行います。
IPv4ルーティングテーブル のオーバーライド |
“pppoe(200)”を一覧選択 |
---|
設定変更したら「保存」ボタン押下でインターフェース一覧画面へ戻り、さらに「保存&適用」ボタンでシステム反映させます。
以上でルーティングテーブル「pppoe(200)」をサブ回線「wanb(=PPPoE)」へ関連付けが完了です。
つまり、基本ルーティングテーブル「main」ではなく、「pppoe(200)」テーブルを指定した通信はすべて「wanb(=PPPoE回線)」を使って通信することになります。
IPv4ルーティング情報の確認
では、PPPoE回線用のルーティングテーブル「pppoe(200)」によってルーティング情報がどうなっているかを確認してみます。
再度、メニュー「ステータス > ルーティング」より「アクティブなIPv4ルート」を見てみます。
ちょっと見づらいので表に書き出すと以下のようになります。
ネットワーク | ターゲット | メトリック | ルーティング テーブル |
---|---|---|---|
wan ※クロスパス回線 |
0.0.0.0/0 | 10 | main |
wanb ※PPPoE回線 |
0.0.0.0/0 | 20 | pppoe |
上記のように基本的な優先度はメトリックにより「メイン回線はクロスパス回線(=wan)」「サブ回線はPPPoE回線(=wanb)」という定義はそのままに、新たにルーティングテーブルにより「mainテーブルはクロスパス回線(=wan)」「pppoeテーブルはPPPoE回線(=wanb)」というルーティング情報が設定されました。
つまり、基本的な優先度は「メイン回線(優先度高)はクロスパス回線」「サブ回線(優先度低)はPPPoE回線」という設定はそのままですが、加えて特定宛先や特定機器(サーバーなど)においてルーティングテーブル「pppoe(200)」を指定することで優先的にPPPoE回線を使う、というルーティング設定になりました。
ステップ⑤ 個別宛先へのルーティング設定
前節の定義により回線ごとの優先順位は定義が完了しました。
ここからは「個別接続先へのルーティング定義」を行います。
現在は「クロスパス(Xpass)」インターフェースがメイン回線(優先度高)と設定されているため、すべてのインターネット通信は「クロスパス(Xpass)」インターフェースを通じて行われます。
この状態に加え「特定の通信先との通信においてはIPv4/PPPoE(つまりWANインターフェース)で通信する」という個別ルーティング定義を行います。
たとえば会社のテレワークで使うためのVPNサーバーへの接続だったり、匿名掲示板5ch.netへの接続だったり、これら特定接続先への通信はサブ回線(WAN=PPPoE)で通信する、という定義です。
今回は特定の通信先として匿名掲示板5ch.netを想定し、個別ルーティングを設定していきます。
特定接続先のIPアドレス確認
ここでは特定の接続さきとして匿名掲示板「5ch.net」を想定します。
つまり、通常のインターネット通信ではメイン回線(Xpass)を使って通信し、匿名掲示板5ch.netを利用する場合にはサブ回線(WAN)を使って通信する、という定義です。
特定接続先へのルーティング定義を行うには通信先(この場合は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への個別ルーティングを定義していきます。
個別ルーティングはメニュー「ネットワーク⇒ルーティング」で設定します。
ルーティング設定画面の「IPv4ルール」タブ画面より「追加」ボタン押下します。
5ch.netはIPアドレスが2つあるので、まずは1つ目のIPアドレスをルーティング設定します。
1つ目のIPアドレスに対してルーティング設定画面より以下のように選択・入力します。
宛先 | 例)”172.64.106.36/32″を設定 ※本記事における5ch.netのIPアドレス |
---|---|
テーブル | “pppoe(200)”を一覧選択 |
入力確認後「保存」ボタンで設定を保存します。
次に2つ目のIPアドレスに対してルーティング設定を行います。
2つ目のIPアドレスに対してルーティング設定画面より以下のように選択・入力します。
宛先 | 例)”172.64.107.36/32″を設定 ※本記事における5ch.netのIPアドレス |
---|---|
テーブル | “pppoe(200)”を一覧選択 |
入力確認後「保存」ボタンで設定を保存します。
「IPv4ルール」に2つのルーティング定義が行われたことを確認し、「保存&適用」ボタンを押下して設定を反映させます。
以上で特定宛先(本記事では5ch.net)への通信はルーティングテーブルとして「pppoe(200)」を利用する、という設定となりました。
ルーティングテーブル「pppoe(200)」はインターフェース定義「wanb(=pppoe回線)」へオーバーライドされているため、「ルーティングテーブル”pppoe(200)”を使った通信はインターフェースwanb(=pppoe)で通信する」という通信経路(ルーティング)になります。
通信経路の確認
ではここで設定した個別通信先に対するルーティング情報を確認してみます。
メニュー「ステータス > ルーティング」よりルーティング情報を確認します。
「アクティブなIPv4ルート」に今回定義した2つの個別ルーティング情報が反映されているのがわかります。
設定した通信先(今回は5ch.netを想定)に対してはサブ回線である「WANB(=PPPoE)」回線を使って通信するようにルーティング設定がなされているのがわかります。
実際に通信経路を確認
実際の通信が「アクティブなIPv4ルート」に従って通信しているのか?を確認しておきましょう。
現在、「アクティブなIPv4ルート」は以下のように定義されています。
まずはgoogle.comへのIPv4通信によるトレースをとってみます。
C:\>tracert -4 google.com
google.com[142.250.198.14]へのルートをトレースしています
経由するホップ数は最大30です:
1 <1 ms <1 ms <1 ms OpenWrt.lan[192.168.13.1]
2 14 ms 14 ms 14 ms 192.0.0.1
3 14 ms 14 ms 14 ms 163.***.***.**
^C
上記の第二ホップでIPアドレス「192.0.0.1」を経由しているのがわかります。
この「192.0.0.1」は「アクティブなIPv4ルート」によるとクロスパスインターフェースに割り当てられている内部IPv4アドレスであることがわかります。
つまり「google.com」への通信はクロスパス経由で通信している、ということです。
同様にyahoo.co.jpへのIPv4通信によるトレースをとってみます。
C:\>tracert -4 yahoo.co.jp
yahoo.co.jp[183.79.219.124]へのルートをトレースしています
経由するホップ数は最大30です:
1 <1 ms <1 ms <1 ms OpenWrt.lan[192.168.13.1]
2 14 ms 13 ms 14 ms 192.0.0.1
3 14 ms 14 ms 14 ms 163.***.***.**
^C
こちらも第二ホップでIPアドレス「192.0.0.1」を経由しているのがわかります。
yahoo.co.jpへのIPv4通信もクロスパス経由で通信していることがわかります。
では個別ルーティングとして定義した5ch.netへのトレースをとってみましょう。
C:\>tracert -4 5ch.net
5ch.net[172.64.106.36]へのルートをトレースしています
経由するホップ数は最大30です:
1 <1 ms <1 ms <1 ms OpenWrt.lan[192.168.13.1]
2 8 ms 16 ms 16 ms *********Biz.vectant.ne.jp[163.***.***.***]
3 7 ms 7 ms 6 ms 163.***.***.***
^C
5ch.netへの通信経路では第二ホップで「*****.vectant.ne.jp[163.***.***.***]を経由しています。
「163.***.***.***」は「アクティブなIPv4ルート」でWANインターフェースのゲートウェイとして定義されているIPアドレスです。
つまり5ch.netへの通信ではWANインターフェース(= PPPoE通信)を経由して通信していることがわかります。
以上で特定の通信先に対する個別ルーティング定義が終了です。
ステップ⑥ 自宅サーバーをインターネット公開する
前章「ステップ⑤」では特定宛先への通信をPPPoE回線を使う、という個別ルーティングの設定を行いました。
これにより、例えば「会社のVPNサーバーへ接続する」とか「匿名掲示板への書き込み」をメイン回線クロスパスではなくサブ回線PPPoE回線を使って通信することができます。
ここからは、もうひとつの使い方として「PPPoE回線を使って自宅サーバーをインターネット公開」するための設定を行っていきます。
自宅サーバーをインターネットへ公開したい
ここまでの手順による環境では、自宅サーバーをインターネットへ公開することができません。
たとえば「自宅のVPNサーバーを公開してどこからでも自宅ネットワークを使いたい」「自宅のウェブサーバーやゲームサーバーをインターネットへ公開したい」などの使い方ができない、ということです。
優先順位の高いメイン回線としてのクロスパス回線では、インターネットからアクセスできるIPv4グローバルアドレスが付与されないため、サーバー公開する場合にはサブ回線であるPPPoE回線へ接続することになります。
しかし、PPPoE回線から入ってきた通信パケットは優先度の高いクロスパス回線から返っていきます。
この通信経路の仕組みのため、ここまでの環境では自宅サーバーをインターネットに公開することができません。
- PPPoE回線から入ってきた通信(外部からのアクセス)もクロスパス回線から出て行ってしまう
- このため、接続元デバイスから見ると通信が成立しない(通信エラーとなる)
サーバー通信も「pppoe(200)」テーブルでルーティング
PPPoE回線を使ってサーバー公開(自宅接続)する場合の問題点は上記のように「PPPoE回線から入ってきた通信でもクロスパス回線から出て行ってします」というルーティングになるからです。
せっかくPPPoE回線からの接続(外部アクセス)があっても、通信が折り返して出ていくときは基本ルーティングにより優先度の高いクロスパス回線から出て行ってしまいます。
この経路では接続元デバイスからみると通信が成立しないため通信エラーとなってしまいます。
これを、本記事で作成したルーティングテーブル「pppoe(200)」を適用することで、折り返し通信もPPPoE回線から出ていくようにすることで、自宅サーバーを外部(インターネット)へ公開できるようになります。
ルーティングテーブル「pppoe(200)」の登録手順
では、外部(インターネット)へ公開したい自宅サーバーの通信がPPPoE回線を使うように経路設定(ルーティング)していきます。
本記事では自宅サーバーとしてVPN「WireGuard」を導入したサーバー(192.168.1.3/32)を例として設定していきます。
前章の個別宛先設定と同様にメニュー「インターフェース > ルーティング」画面の「IPv4ルール」タブ画面を開きます。
「IPv4ルール」タブ画面から「追加」ボタンで新しいルールを登録していきます。
「一般設定」タブ画面にて以下の設定を行います。
アクセス元 | 例)"192.168.1.3/32" ※本記事では自宅のVPN(WireGuard)サーバーのIPv4アドレス |
---|---|
テーブル | "pppoe(200)"を一覧選択 |
上記のように、「アクセス元」に外部(インターネット)公開した自宅サーバーのIPv4アドレスを設定します。
さらにそのIPv4アドレスの機器が通信で利用するルーティングテーブルとして「pppoe(200)」を利用します。
上記を入力したら「保存」ボタンで画面を閉じて保存します。
「IPv4ルール」タブ画面に戻ったら設定内容(アクセス元/テーブル)を確認し、「保存&適用」ボタンでシステム反映させます。
以上で「特定の機器(アクセス元)はPPPoE回線を使う」という設定が完了です。
このルーティングの仕組みにより、PPPoE回線を使って自宅サーバーを公開する場合は「PPPoE回線から入ってきた通信が入ってくる」「公開するサーバーはPPPoE回線を使う」という仕組みとなり、自宅サーバーをPPPoE回線を使ってインターネット公開できるようになります。
「IPv4ルール」の設定状況を確認しておこう
前項の「IPv4ルール」にて、公開したい自宅サーバーのIPアドレスとルーティングテーブル「PPPoE(200)」を関連付けたことで、サーバーからインターネットへの通信はすべてルーティングテーブル「PPPoE(200)」に従う通信となります。
※「PPPoE(200)」テーブルはwanbインターフェースに関連づけられています。
つまり、自宅サーバーからの通信はすべてPPPoE回線(=wanb)を経由する、という仕組みとなります。
では、この設定がうまく機能しているのか?を確認しておきましょう。
どこでもいいので通信経路を確認してみる
「IPv4ルール」のアクセス元として定義したサーバーからYahoo!JAPANなどの適当なサイトへの通信経路を確認してみます。
root@sawg01:~# traceroute -4 yahoo.co.jp
traceroute to yahoo.co.jp (182.22.31.252), 30 hops max, 60 byte packets
1 OpenWrt.lan (192.168.1.1) 0.471 ms 3.094 ms 0.564 ms
2 XXXXXXXXXXXXX.ventant.ne.jp (163.139.XXX.XXX) 16.755 ms 16.731 ms 16.744 ms
3 163.139.XXX.XXX
root@sawg01:~#
上記のように通信経路の第二ホップが(我が家の環境では)PPPoEのデフォルトゲートウェイとなっています。
これにより、サーバーからYahoo!JAPAN(つまりインターネットへ)への通信はPPPoE回線を経由していることがわかります。
なお、PPPoE回線のデフォルトゲートウェイはメニュー「ステータス > ルーティング」の「アクティブなIPv4ルート」により確認することができます。
もし通信経路がDS-Lite(=wan)のターゲットIPアドレス(我が家の環境では192.0.0.1)を経由している場合、その通信はPPPoE回線ではなくDS-Lite回線を経由しているということであり、前項の「PPPoE(200)によるルーティング」は正しく動作していないことになります。
この場合、本記事「ステップ4~6」の手順内容を再確認してください。
わすれちゃいけない「ポート転送」
本記事ではクロスパスとPPPoEを併用し、さらにその通信を使い分けるための仕組み(ルーティング)について説明してきました。
そして本章の記事により、PPPoE回線を使って自宅サーバーをインターネット公開する仕組みが出来上がりました。
しかし、自宅サーバーを公開するためには追加の設定があります。
すでに自宅サーバーをインターネット公開したことがある人にはおわかりでしょうが、「ポート転送/ポートフォワーディング」という設定が必要です。
これはインターネット側から自宅のPPPoE回線に付与されたIPv4アドレスで接続された場合に、その通信を自宅サーバーへ転送する、という設定です。
OpenWrtルーターでは、メニュー「ネットワーク > ファイアウォール」画面の「ポートフォワーディング」タブ画面よりポート転送の設定を行います。
今回、本記事では例としてWireGuardによるVPNサーバーをインターネット公開したので、以下のようなポートフォワーディングの設定となります。
本記事ではWireGuardによるVPNサーバーをポートフォワーディングしたので以下のような設定となります。
名前 | ご自由に ※ポートフォワーディングの定義名 ※本記事では"UDP51820" |
---|---|
プロトコル | "UDP"を設定 ※"TCP"のチェックを外す |
送信元ゾーン | "wan"を一覧選択 ※インターネットからの通信、ということ |
外部ポート | 本記事では"51820"を設定 ※外部から指定されるポート番号を設定 |
宛先ゾーン | "lan"を一覧選択 |
内部IPアドレス | サーバーのIPv4アドレスを設定 ※本記事では"192.168.1.3" |
内部ポート | 本記事では"51820"を設定 ※サーバーが利用するポート番号を設定 |
以上が本記事でWireGuardサーバーをインターネット公開するためのポートフォワーディング設定となります。
外部公開したサーバーに合わせてポートフォワーディング設定を行ってください。
【番外編】ダイナミックDNSを使う場合
自宅サーバーをインターネット公開する場合にはダイナミックDNSをご利用になる場合が多いと思います。
本記事でのマルチWAN環境では基本的な通信はすべて優先度の高い回線(wan=DS-Lite)から出ていくので、ダイナミックDNSへの登録IPもDS-LiteのWAN側IPアドレスが登録されてしまいます。
このため、ダイナミックDNSをご利用になる場合はダイナミックDNSの登録IPについても仕組みづくりが必要です。
ここからは、OpenWrtのダイナミックDNSクライアント機能と無料のダイナミックDNSサービス「DDNS Now」を使ったダイナミックDNSの仕組みについて説明していきます。
OpenWrtのダイナミックDNSモジュールを使う
OpenWrtではダイナミックDNSクライアントモジュールが提供されています。
非常に多くの(世界中の)ダイナミックDNSサービスに標準対応しているうえに、標準対応していないダイナミックDNSサービスについても簡単なスクリプトを定義することでOpenWrtルーター上でダイナミックDNSクライアントの機能を使えるようになります。
そしてこの機能を使えば「登録する回線IPアドレスはDS-Lite側?PPPoE側?」を選択して登録することができます。
ダイナミックDNSクライアントモジュールの登録
OpenWrtでダイナミックDNSクライアントモジュールをインストールすることができます。
メニュー「システム > ソフトウェア」からモジュールを追加インストールします。
「リストを更新」後にフィルターで「luci-i18n-ddns」を絞り込みます。
一覧表示されたモジュールから以下のいずれかのモジュールをインストールします。
- luci-i18n-ddns(英語環境の場合)
- luci-i18n-ddns-ja(日本語環境の場合)
上記のいずれかをインストールすることで、関連する必要モジュールも同時にインストールされます。
ダイナミックDNSクライアントの設定
DDNSクライアントモジュールがインストールされると、メニュー「サービス > ダイナミックDNS」が追加されます。
OpenWrtのダイナミックDNSクライアントは非常に多くのダイナミックDNSサービスに標準対応しています。
対応しているサービスは以下をご確認ください。
OpenWrtダイナミックDNSクライアントが標準対応しているサービスについては、すでにダイナミックDNS機能を利用するための仕組み(スクリプト)が提供されているので、サービスを選ぶことで簡単にダイナミックDNSクライアント環境が構築できます。
OpenWrtのダイナミックDNSが標準対応しているサービスをご利用になる場合には上記のように必要な項目を「基本設定」タブにて設定します。
そのうえで「詳細設定」タブ画面にて以下の指定を行います。
IPアドレス読み取り元 | "ネットワーク"を一覧選択 |
---|---|
ネットワーク | PPPoE回線インターフェースを一覧選択 ※本記事では"wanb" |
以上の設定によりPPPoE回線(=wanb)のIPアドレスをダイナミックDNSの登録サーバーへ通知・登録することができます。
なお、うまく登録できない場合には「ログファイル・ビューア」タブ画面にて登録実行時のログを確認し修正してください。
無料ダイナミックDNS「DDNS Now」を使う
OpenWrtのダイナミックDNSクライアントモジュールは非常に多くのダイナミックDNSサービスに対応しており、サービスを選択するだけで簡単にダイナミックDNSクライアント機能を実装することができます。
さらに、標準対応していないダイナミックDNSサービスについても簡単なスクリプトを定義するだけで同じように利用できるようになります。
本記事では無料のダイナミックDNSサービスである「DDNS Now」を使ってダイナミックDNSクライアント機能を構築してみます。
DDNS Nowの利用登録
DDNS Nowの利用登録は以下のサイトから簡単に登録可能です。メールアドレスなども不要です。
利用できるドメイン名は「〇〇〇.f5.si」となり、〇〇〇の部分を指定登録することができます。
DDNS NowのIP登録の仕組み
DDNS Nowに限らず、多くのダイナミックDNSサービスでは定期的なIPアドレス登録リクエストが必要です。
そしてそのリクエストされたときのIPアドレスをダイナミックDNSに登録します。
DDNS Nowではその登録方法として以下の説明があります(他のダイナミックDNSでも同じようなものです)。
IPv4アドレスのアクセス元アドレスでAレコードを更新
"https://f5.si/update.php?domain=ユーザ名&password=パスワードもしくはAPIトークン"
つまり、上記の書式に従ってブラウザからアクセスするとアクセス時のIPアドレスが登録される、という仕組みです。
DDNS Now用のスクリプト定義
OpenWrtのダイナミックDNSクライアントモジュールでは、標準対応していないダイナミックDNSサービスでも個別にスクリプト定義(JSON形式)することで利用可能となります。
上記のDDNS NowのIPアドレス更新の仕組みをスクリプト定義すると、以下のようになります。
{
"name": "ddnsnow",
"ipv4": {
"url": "http://f5.si/update.php?domain=[USERNAME]&password=[PASSWORD]&ip=[IP]"
},
"ipv6": {
"url": "http://v6.f5.si/update.php?domain=[USERNAME]&password=[PASSWORD]&ip=[IP]"
}
}
このスクリプト定義(JSON形式)をOpenWrtルーターの「/usr/share/ddns/default/」ディレクトリに作成(アップロード)します。
※[USERNAME][PASSWORD」などはご自分の環境ではなく上記のまま記載します。
※スクリプト実行時にOpenWrtのDDNSモジュールが登録情報にて展開してくれます。
本記事ではファイル名は「ddnsnow.json」としました。
root@OpenWrt:~#
root@OpenWrt:~# cd /usr/share/ddns/default/
root@OpenWrt:/usr/share/ddns/default# ls -l ddnsnow.json
root@OpenWrt:/usr/share/ddns/default# ls -l ddnsnow.json
-rw-r--r-- 1 root root 218 May 9 16:05 ddnsnow.json
root@OpenWrt:/usr/share/ddns/default#
ダイナミックDNS機能への登録
メニュー「サービス > ダイナミックDNS」画面からDDNS Nowをクライアント登録します。
今回、新たに「ddnsnow.json」というスクリプト定義を追加しているので、いったん「DDNSサービスリストを更新」しておきます。
「真意サービスを追加」ボタンより、DDNS Nowを追加します。
以下の設定を行います。
名前 | ご自由に ※本記事では"ddnsnow_ipv4" |
---|---|
IPアドレスのバージョン | IPv4アドレス |
DDNSサービス・プロバイダー | "ddnsnow"を一覧選択 |
以上を設定し「サービスを作成」ボタン押下し、いったん「キャンセル」して画面を閉じます。
作成された「ddnsnow_ipv4」を「編集」ボタンで開きます。
「基本設定」タブ画面で以下の設定を行います。
ルックアップするホスト名 | 〇〇〇.f5.si ※利用登録したDDNS Nowのドメイン名 |
---|---|
DDNSサービスプロバイダー | ddnsnow |
ドメイン | 〇〇〇 ※DDNS Nowへ登録した時のサブドメイン名部分 |
ユーザー名 | 〇〇〇 ※DDNS Nowへ登録した時のサブドメイン名部分 |
パスワード | DDNS Nowへ登録した時のパスワード |
以上を設定します。
次に「詳細設定」タブ画面を開きます。
「詳細設定」タブ画面にて以下の指定を行います。
IPアドレス読み取り元 | "ネットワーク"を一覧選択 |
---|---|
ネットワーク | PPPoE回線インターフェースを一覧選択 ※本記事では"wanb" |
以上を設定後「保存」ボタンで画面を閉じ、「保存&適用」ボタンでシステム反映させておきます。
定期的にスクリプトが実行されてIPアドレスの登録が行われますが、「リロード」ボタンを押下することで任意のタイミングでIPアドレス登録を行うことができます。
実行結果は「ログファイル・ビューア」タブ画面から実行時ログを見ることができるのでうまくIPアドレス登録されない場合には確認してください。
まとめ、1台のルーターでIPv6とIPv4を併用する
この記事では1台のOpenWrtルーターを使ってIPv6/IPoE通信とIPv4/PPPoE通信を併用する環境の構築手順を説明してきました。
この記事で構築した環境は以下のようになります。
本記事では回線サービスとして「楽天ひかり」、IPv6/IPoEを使ったIPv4 over IPv6通信として「クロスパス(Xpass)」を例にとりましたが、楽天ひかりやクロスパス以外での環境でも同じように「1台のOpenWrtルーターでIPv4 over IPv6とIPv4/PPPoEを併用」する環境を構築することができます。
IPv6通信のデメリットをIPv4通信で補完する
フレッツ光回線ではIPv4/PPPoE通信で必要な認証システムの混雑により夜間の通信混雑(通信速度の低下)が大きな問題となっています。
この問題を解決するのが「IPv4 over IPv6」と呼ばれる「MAP-e」や「DS-Lite」という通信方式です。
「MAP-e」や「DS-Lite」通信を行うことで速度低下の原因となっているIPv4/PPPoE認証を迂回することが可能となり、その結果として夜間の速度低下を回避できる仕組みです。
IPv6通信のデメリット
このようにフレッツ光回線では夜間の速度低下の問題により、もはやIPv4 over IPv6高速通信の仕組みは必須となっています。
IPv4 over IPv6の通信を行うことでフレッツ光回線本来の高速通信が可能となります。
その反面、IPv6アドレスを主体とした通信方式においては従来のIPv4通信に対するデメリットが存在するのも、また事実です。
IPv4 over IPv6の高速通信方式では自宅ルーターに完全なIPv4アドレスが付与されないため、「外部(インターネット側)から自宅への接続ができない」「(一部の)VPN通信サービスなどが利用できない」などのデメリットが存在します。
IPv6通信とIPv4通信の併用によるメリット
IPv4 over IPv6高速通信とIPv4/PPPoE通信を併用することで、「通常のネット利用は高速なIPv4 over IPv6通信を利用する」「IPv6通信が苦手な通信はIPv4/PPPoE通信を利用する」という使い分けができます。
これにより「快適なネット利用」と「外出先から自宅への接続」「一部VPN通信の利用」などが併用可能となります。
楽天ひかりの通信サービス
今回は自宅固定回線として楽天ひかりを例に取り上げ環境構築してみました。
楽天ひかりは標準機能として「高速通信クロスパス(Xpass)」と「従来の通信方式IPv4/PPPoE」のどちらも提供してくれるプロバイダーです。
多くの場合は夜間の通信も快適に利用できる「クロスパス(Xpass)」を利用するとよいでしょう。
そして、もし「外部から自宅へ接続したい」「特定の接続先にはIPv4/PPPoE通信で接続したい」という場合において、本記事を参考にして併用可能な環境を構築してみることをおすすめします。
楽天ひかり以外でも流用可能
本記事は楽天ひかりの回線サービスを例として環境構築してみましたが、楽天ひかりの環境以外でも同様な「1台のルーターでIPv6とIPv4を併用」する環境を構築することができます。
本記事で例とした楽天ひかりの高速通信サービスは「クロスパス(Xpass)」なのでTransixやv6コネクトなど他のDS-Lite規格による通信方式と全く同じです。
また、DS-Lite規格と並ぶもう一つの高速通信規格である「MAP-e(v6プラスやOCNバーチャルコネクト)」についても、OpenWrtルーターなら「1台でIPv6とIPv4を併用」する環境を構築することができます。
OpenWrtルーターならポリシーベースでのルーティングもできる!
本記事では楽天ひかりのDS-Lite(クロスパス)とPPPoEの併用可能なマルチWAN環境をOpenWrtルーターを使って構築しました。
また、その環境において自宅サーバーをインターネットへ公開するためのルーティング設定も行いました。
本記事によるサーバー公開の仕組みは「公開したいサーバーの通信はすべてPPPoE回線を利用する」という静的なルーティングにより実現しています。
条件付きのルーティング「ポリシーベース・ルーティング」
VPNやWEBなどの単一機能のサーバーをインターネット公開するための仕組みとしては本記事の静的ルーティングで良いと思います。
一方でサーバー公開(インターネット側からの利用)に加えて「LAN内の監視や運用管理もやっている」など多機能サーバーの場合において、「通常の通信回線は夜間でも高速なDS-Liteを使いたい」「インターネットからの利用についてのみPPPoE回線を利用したい」というニーズもあるかもしれません。
このような条件付きのルーティングはポリシーベースルーティング(PBR)で解決することができます。
そして、OpenWrtルータならポリシーベースルーティングによるサーバー公開の仕組み構築も簡単にできます。
OpenWrtルーターを使ってポリシーベースルーティングの仕組み構築については以下の記事を参考にしてみてください。