国内で販売されている市販ルーターの多くは回線環境を自動判定して設定から接続までを自動的にやってくれます。
OpenWrtルーターの場合はこんな気の利いた機能(自動判定機能)はないので、自分で自分の回線環境に合ったモジュールの導入および設定を行っていく必要があります。
我が家は長らく楽天ひかりを使ってきたのですがこの度「enひかり」へ事業者変更、回線サービスもクロスパスからv6プラスへと変更になりました。
本記事ではOpenWrtルーターを使ってenひかりのMAP-e(v6プラス)環境での回線接続手順を説明していきます。
作業前提環境およびMAP-eインターフェース完成イメージ
OpenWrtの初期状態でのインターフェースは以下のようになっています(MAP-e環境構築前)。
インターフェース | 用途 | 初期設定値 |
---|---|---|
lan | lan側(自宅ネットワーク側)用インターフェース | 初期IP:192.168.1.1/24 |
wan | wan側IPv4用インターフェース | DHCPv4インターフェース |
wan6 | wan側IPv6用インターフェース | DHCPv6インターフェース |
すでにVNE(v6プラスなのでJPIX)によって付与されたIPv6アドレスがIPv6インターフェース”wan6″に付与されています。
基本的には(若干の設定は必要ですが)IPv6によるIPv6/IPoE方式によるインターネット通信は可能な状態です。
一方でIPv4インターフェース”wan”はDHCPv4なので現時点ではIPv4によるインターネット接続はできません。
本記事ではこの状態からMAP-e(v6プラス)の環境構築を行い、IPv4インターネット通信ができる仕組みを構築していきます。
完成後のインターフェース一覧
本記事でのMAP-e(v6プラス)環境構築後のインターフェースは以下のようになります。
インターフェース | 用途 | 設定作業内容 |
---|---|---|
lan | lan側(自宅ネットワーク側)用インターフェース | 初期IP:192.168.21.1/24へ変更 IPv6/IPoE設定 |
wan | MAP-e(v6プラス)用インターフェース | MAP-eパラメーター設定 |
wan_ | MAP-e(v6プラス)用仮想インターフェース | 自動作成される |
wan6 | IPv6/IPoE用インターフェース | IPv6/IPoE設定 ※IPv6プレフィックス設定(必要な場合) |
各インターフェースは新規作成してもよいですが、本記事では初期状態で構築されているインターフェースを利用して上記のようなインターフェースを構築していきます。
MAP-e(v6プラス)インターフェース構築作業の流れ
最初にOpenWrtインターフェースの初期状態(MAP-e構築前)と完成状態(MAP-e構築後)のインターフェースを見てみました。
本記事ではこの完成状態(MAP-e構築後)のインターフェースを以下の手順にて構築していきます。
- STEP1MAP-eパラメーターの情報収集
MAP-eインターフェース(本記事では”wan”)に設定するためのMAP-e各種情報(パラメータ)を計算します。
- STEP2必要なソフトウェアのインストール
MAP-e環境構築のための必須ソフトウェアおよびおすすめソフトウェアをインストールします。
- STEP3IPv6/IPoEのインターフェース設定
MAP-e構築に先立ち、まずは基本の「IPv6/IPoE」通信方式によりIPv6インターネット通信ができる環境を構築します。
- STEP4IPv6プレフィックスの設定
MAP-e環境構築には「IPv6 PDアドレス」が付与されている必要があります。初期状態でこの「IPv6 PDアドレス」が付与されていない場合には必要な設定を行います。
※すでに「IPv6 PDアドレス」が付与されている場合には本手順は不要
- STEP5MAP-e(v6プラス)のインターフェース設定
MAP-eインターフェース(本記事では”wan”)にMAP-eパラメータを設定していきます。
STEP① MAP-e(v6プラス)設定に必要な各種情報
MAP-e(v6プラス)はIPv6通信パケットの中にIPv4通信パケットをカプセル化(内包)して通信する、つまり通信自体はIPv6通信となります。
MAP-eは1個のIPv4アドレスを複数人契約で分割利用することでIPv4アドレスを節約する仕組みであり、自分のIPv4アドレスには0番~65534番までの全65535個のうち240個のポート番号が付与されます。
MAP-e構築に必要なパラメーター
では「自分のIPv4アドレスは?」「自分が使えるポート番号は?」という情報が必要ですが、これらはすべてVNEから付与されるIPv6アドレスの中に情報として持っている、という仕組みになります。
よって、MAP-eなどの規格に詳しい人ならIPv6アドレスを元にIPv4アドレス/使えるポート番号/各種設定パラメータを自分で計算することができるのですが、普通の人にはそんなの無理です。
MAP-eパラメーター自動計算サイト
そのために、ネット上ではこれらをIPv6アドレスから自動計算してくれるありがたいサイトが公開されています。
上記サイトで自分のルーターに付与されているIPv6アドレスを設定(コピペ)することで、自分のIPv4アドレス/使えるポート番号/MAP-eパラメータを自動計算してくれます。
このサイトはIPv4通信でのみ通信可能なサイトなのでOpenWrtのMAP-e設定中にはサイトを見ることができません。
よって、事前にIPv4通信ができる環境で各種情報を計算し、スクリーンショットを取っておきましょう。
STEP② ソフトウェアのインストール
OpenWrtルーターでMAP-e(v6プラス)を利用するためには追加でmapモジュールのインストールが必要です。
OpenWrtでのソフトウェア管理はメニュー「システム > ソフトウェア」画面より行います。
- 「リストを更新」ボタンでパッケージ一覧を更新
- 「フィルター」欄でパッケージ名で絞り込む
- 「インストール」ボタンでパッケージをインストール
必須ソフト”map”モジュール
- map
MAP-e(v6プラスなど)の環境構築に必須のモジュールが”map”モジュールです。
必ずインストールしてください。
なお、インストール後にルーターを再起動しないと有効になりません。
おすすめソフト”ttyd”モジュール
- luci-app-ttyd(英語モード)
- luci-i18n-ttyd-ja(日本語モード)
本記事ではMAP-e環境構築の手順として一部コマンド操作が必要な場合があります。
通常はteratermなどのsshソフトウェアやOSのSSHコマンドで利用することもできますが、”luci-i18n-ttyd”モジュールをインストールすることでLuCIインターフェース上でTTY画面(ターミナル画面)が利用できるようになります。
TTYDモジュールをインストールすると、メニュー「サービス > ターミナル」からターミナル画面を利用することができるようになります。
お好みソフト”luci-i18n-base-ja
- luci-i18n-base-ja
LuCIインターフェースを日本語化するモジュールです。
LuCIインターフェースは初期状態では英語表記ですが、”luci-i18n-base-ja”モジュールをインストールしいったんログアウトすることで日本語化されます。
日本語表記/英語表記はお好みですが、本記事では日本語化されたLuCIインターフェースで説明を行っていきます。
STEP③ IPv6/IPoEの設定と動作確認
フレッツ光回線網(NGN網)への接続はIPv6/IPoE方式となります。
OpenWrtルーターは標準(初期状態)では「wan6」というインターフェースがDHCPv6インターフェースとして構成されていますが、このままではフレッツ光網へIPv6/IPoE接続することができません。
まず最初にこの「wan6」インターフェースを修正して、IPv6/IPoE接続方式でフレッツ光網(NGN網)へ接続し、そのIPv6アドレスをLAN(自宅ネットワーク)内でも使えるように設定していきます。
「LAN」インターフェース設定
まずはLANインターフェースにおいて、ONU(またはVDSLモデム)に付与されているIPv6アドレスをリレーするための設定を行います。
メニュー「ネットワーク > インターフェース」よりインターフェース一覧画面を開きます。
インストール直後のインターフェースは以下のように「LAN」「WAN」「WAN6」のインターフェースが定義されています。
インターフェース一覧の「LAN」から「編集」ボタンを押下してインターフェース定義の編集画面を開きます。
「DHCPサーバー」タブの「IPv6設定」タブからリレーモード設定を行っていきます。
上記項目に対し、以下のようにリレー設定を行います。
RA-Service | リレーモード |
---|---|
DHCPv6サービス | サーバーモード |
NDPプロキシ | リレーモード |
以上で「LAN」インターフェースに対するIPv6アドレスのリレー設定は完了です。
「WAN6」インターフェース設定
OpenWrtのデフォルトインターフェース「WAN6」はWAN側(インターネット側)のIPv6インターフェースであり、このインターフェースがIPv6/IPoEで通信可能な設定とする必要があります。
具体的にはNTT東西またはVNEよりDHCPv6により割り当てられているIPv6アドレスを内部(LAN側)へリレーし、内部ネットワーク全体でIPv6通信ができるようにするための設定です。
インターフェース一覧画面の「WAN6」定義「編集」ボタンからWAN6インターフェース定義画面を開きます。
WAN6インターフェース定義画面の「DHCPサーバー」タブから「DHCPサーバーをセットアップ」を押下します。
「DHCPサーバー」タブの「IPv6設定」タブ画面が開きます。
「DHCPサーバー > IPv6設定」画面よりDHCPv6の定義を以下のように変更します。
Designaled master | チェックする |
---|---|
RA-Service | リレーモード |
DHCPv6サービス | リレーモード |
NDPプロキシ | リレーモード |
以上で「WAN6」インターフェースに対するIPv6アドレスのリレー設定は完了です。
一覧画面に戻ったら「保存&適用」ボタンにより設定を反映させます。
IPv6/IPoEの接続確認
ここまでの設定でIPv6/IPoEによる接続設定が完了しています。
この状態では、IPv6によるインターネット通信が可能な状態ですが、IPv4によるインターネット通信はまだ利用可能ではありません。
IPv6/IPv4の回線チェックサイト「ipv6test.com」サイトへ接続してみましょう。
IPv6 Connectivity(IPv6接続)は「Supported」であるのに対し、(現時点では)IPv4 Connectiviryは「Not Supported」になっているのがわかります。
実際に、IPv6対応サイトとして、Googleには接続することができます。
一方で、IPv4のみ対応のYahoo Japanには接続することができません。
STEP④ IPv6プレフィックスの設定
OpenWrtルーターでMAP-e通信を行うためにはIPv6/IPoEインターフェース(本記事では”wan6″)に「IPv6 PD」アドレス(IPv6プレフィックス)」が付与されている必要があります。
これは下図のように、IPv4/IPoE(wan6)インターフェースに表示されます。
OpenWrtの初期状態ではこの「IPv6 PD(IPv6プレフィックス)」が表示される場合もあるし、表示されない場合もあります。
これはフレッツ光回線の回線品目(ネクスト回線/クロス回線)やひかり電話の契約有無により異なるようです。
この「IPv6 PD」が表示されていない場合にはIPv6/IPoE(wan6)インターフェースにIPv6プレフィックスを設定してあげる必要があります。
我が家は「フレッツ光ネクスト回線」「ひかり電話契約なし」であり、初期状態でのwan6インターフェースは下図のように「IPv6 PD」が表示されていません。
よって、ここからはIPv6プレフィックスの設定を行っていきます。
※すでに「IPv6 PD」が表示されている場合、本章設定は不要です。
IPv6プレフィックスの設定
OpenWrtでIPv6プレフィックスを設定する場合、LuCI画面からの設定はできません。
そのため、teratermやOSのSSHクライアント、またはLuCIのTTY(ターミナル)画面でのコマンド操作にて行います。
設定するIPv6プレフィックスはIPv6アドレスを参考にします。
IPv6アドレスが「AAAA:BBBB:CCCC:DDDD:EEEE:FFFF:GGGG:HHHH/64」の場合、設定すべきIPv6プレフィクスは「AAAA:BBBB:CCCC:DDDD::/64」となります。
SSHやTTYターミナル画面から以下のコマンドでIPv6プレフィックスを設定します。
## "ip6prefix"の設定
uci set network.wan6.ip6prefix="AAAA:BBBB:CCCC:DDDD::/64"
## 設定内容の確認
uci show network.wan6.ip6prefix
## 設定の反映
uci commit network
## networkサービスの再起動
/etc/init.d/network reload
※”wan6″部分は自分のIPv6インターフェース名に置き換えてください。
IPv6プレフィックスの設定確認
IPv6/IPoEインターフェース(本記事では”wan6″)に下図のように「IPv6 PD」が表示されれば成功です。
「IPv6 PD」が表示されない場合にはルーターを再起動し、ダメならコマンド設定を見直し/やり直ししてみてください。
STEP⑤ MAP-e(v6プラス)インターフェースの設定と動作確認
MAP-eではその規格上、MAP-eインターフェースに設定必要な情報はすべてIPv6アドレスの中に格納されています。
本記事では「STEP①」にてMAP-eのパラメーター自動計算サイトを利用してMAP-e(v6プラス)設定に必要な以下のパラメータを取得しています。
ここで自動計算されたパラメーターを使ってMAP-e(v6プラス)インターフェースを構築していきます。
MAP-eパラメーターの設定
本記事では初期状態で提供されているIPv4用インターフェース”wan”を使って(再利用して)MAP-eインターフェースを構築していきます。
すでに”wan”インターフェースを他インターフェースとして利用している場合など(PPPoEなど)の場合には別途新規インターフェースを作成しても構いません。
本記事では”wan”インターフェースを「編集」ボタンで編集しますが、新規インターフェースを作成してもかまいません。
上記のようにプロトコルを「MAP」へ変更し「プロトコルを切り替える」ボタンを押下します。
“一般設定”タブ画面
「一般設定」タブ画面で以下の設定を行います。
タイプ | “MAP-E”を一覧選択 |
---|---|
BR/DMR/AFTR | “option peeraddr”の値を設定 |
IPv4 prefix | “option ipaddr”の値を設定 |
IPv4 prefix length | “option ip4prefixlen”の値を設定 |
IPv6 prefix | “option ip6prefix”の値を設定 |
IPv6 prefix length | “option ip6prefixlen”の値を設定 |
EA-bits length | “option ealen”の値を設定 |
PSID-bits length | “option psidlen”の値を設定 |
PSID offset | “option offset”の値を設定 |
基本的には自動計算サイトに表示されているパラメーターを上から順番に設定していくだけですね。
“詳細設定”タブ画面
「詳細設定」タブ画面に移動します。
以下の設定を行います。
トンネルリンク | IPv6インターフェースを一覧選択 ※本記事では”wan6″ |
---|---|
トンネルリンクでMTUを使用 | 初期値でも良いですがちょっと小さいので大きくしておく ※本記事では”1460″ |
従来のMAPを使用 | チェックする |
“ファイアウォール設定”タブ画面
「ファイアウォール設定」タブ画面に移動します。
MAP-e(v6プラス)インターフェースがファイアウォール”wanゾーン”に属しているように確認・設定します。
ファイアウォールゾーン | wanゾーンを選択 ※赤いゾーン |
---|
以上の設定・確認を行ったら「保存」ボタンで設定画面を閉じます。
設定の反映
ルーターの再起動と仮想インターフェースの確認
MAP-e(v6プラス)インターフェースの作成が完了したらOpenWrtルーターを再起動しておきましょう。
再起動後のインターフェース一覧は以下のようになっています。
ルーターの再起動後には仮想ダイナミックインターフェースが自動作成されていることを確認してください。
仮想ダイナミックインターフェースはMAP-eインターフェース名(本記事では”wan”)末尾に”_”が付与されたインターフェース名称になっています(本記事では”wan_”)。
ここまでの手順にて「IPv6/IPoE接続」「MAP-e(v6プラス)接続」のインターフェース設定が完了しました。
MAP-e接続の確認
MAP-e(v6プラス)のインターフェースが構築出来たらIPv4によるインターネット通信ができるようになります。
IPv6/IPoE構築後の状態では見れなかったYahoo!JAPANのサイトなども見れるようになります。
本記事ではenひかりが提供しているJPIXのv6プラス環境となるので、本家JPIX(旧JPNE)が提供している「v6プラス接続確認サイト」で確認しても良いでしょう。
番外編 MAP-e(v6プラス)とPPPoEを併用する
OpenWrtルーターならMAP-eやDS-LiteなどのIPv4 over IPv6回線と従来からのIPv4/PPPoE回線を併用(同時に利用)することもできます。
もし自宅回線環境がIPv4 over IPv6とPPPoEが両方利用可能であれば「通常利用はIPv4 over IPv6(MAP-e/DS-Lite)」「サーバー公開やVPN通信はPPPoE」といった使い分けも可能です。
PPPoE回線インターフェースの作成
ではPPPoEインターフェースを構築していきます。
本記事では新規にインターフェース”wanb”をPPPoEインターフェースとして作成します。
メニュー「ネットワーク > インターフェース」画面を開きます。
新規インターフェースの定義画面が表示されので、以下の定義を行います。
名前 | “wanb”と指定 |
---|---|
プロトコル | “PPPoE”を選択設定 |
デバイス | “イーサネットアダプタ’eth1′”を選択設定 |
上記を設定して「インターフェースを作成」ボタンを押下します。
上記「一般設定」タブ画面では基本情報を入力・設定します。
プロトコル | “PPPoE”となっていることを確認 |
---|---|
デバイス | “eth1″となっていることを確認 |
PAP/CHAPユーザー名 | プロバイダーから提供されているPPPoEアカウントを登録 |
PAP/CHAPパスワード | プロバイダーから提供されているPPPoEパスワードを登録 |
上記を確認・入力したら次は「ファイアウォール設定」タブ画面へ移動します。
「ファイアウォール設定」タブ画面では以下の選択・設定を行います。
ファイアウォール・ゾーン | 一覧から”wan”ゾーン(赤いやつ)を選択・設定 |
---|
上記を選択・設定したら「保存」ボタン押下してインターフェース一覧画面へ戻ります。
新規作成したインターフェース「wanb」はまだ保留状態なので、「保存&適用」ボタンを押下してシステム反映しておきます。
以上でPPPoEインターフェース「wanb」の新規作成は完了です。
回線優先度(ゲートウェイメトリック)の設定
PPPoEインターフェース(本記事では”wanb”)を作成したことで、MAP-e(v6プラス)とPPPoEのどちらの回線も利用可能となりました。
おすすめの使い方は「通常利用はMAP-e(v6プラス)」「特定の通信先への通信はPPPoE(テレワークでのVPNなど)」といった使い方です。
このため、MAP-e(v6プラス)回線を優先度の高い回線(メイン回線)とし、PPPoE回線を優先度の低い回線(サブ回線)として定義する必要があります。
この回線優先度は各インターフェース(wan/wanb)の「ゲートウェイメトリック」を設定することで優先順位を決めていきます。
メイン回線MAP-e(v6プラス)のゲートウェイメトリック設定
メイン回線(本記事では”wan”)インターフェースを「優先度高」としてゲートウェイメトリックを設定します。
インターフェース一覧から”wan”を「編集」ボタンで開きます。
上図にように「ゲートウェイメトリック」に値”10“を設定します。
設定したら「保存」ボタン押下で画面を閉じます。
サブ回線PPPoEのメトリック設定
同様にサブ回線(本記事では”wanb”)インターフェースを「優先度低」としてゲートウェイメトリックを設定します。
インターフェース一覧から”wanb”を「編集」ボタンで開きます。
メイン回線と同様にゲートウェイメトリックに値”20″を設定します。
メイン回線”wanb”のゲートウェイメトリック”10″より大きな値”20″を設定することで、サブ回線”wanb”の優先度はメイン回線”wan”より低くなります。
※値が大きいほど優先度が低い
インターフェース一覧から「保存&適用」ボタンで設定をシステム反映させてください。
以上でメイン回線とサブ回線の優先度設定(ゲートウェイメトリック設定)は完了です。
回線優先度の設定結果
MAP-e(v6プラス)とPPPoEの回線優先度を設定したことで、現時点では「通常はメイン回線(MAP-e)を使ってインターネット通信」となり「MAP-e回線が障害の場合などはPPPoEでインターネット通信」という動作になります。
つまり、現時点の設定ではPPPoE回線はメイン回線(MAP-e)のバックアップ回線となります。
PPPoEルーティングテーブルの定義
ここまでの設定で回線優先度の設定が完了しているので、優先度の低いサブ回線は優先度の高いメイン回線のバックアップ回線として動作します。
メイン回線が障害発生時などにおいて自動的にバックアップ回線に切り替わる、という動作です。
これを先に進め、ここからはメイン回線(MAP-e)とバックアップ回線(PPPoE)を自由に使い分ける仕組みを構築していきます。
たとえば、テレワークなどで会社のVPNサーバーへ接続する必要がある場合、MAP-e(v6プラス)では接続できない場合があります(L2TP/IPsecなど)。
この場合、「特定の通信先(会社のVPNサーバー)へはPPPoE回線を使う」という設定を行ってみます。
通信相手によるルーティング(経路制御)の仕組み
現時点でMAP-e(v6プラス)およびPPPoEの各インターフェースのメトリック設定により「メイン回線(優先度高)はMAP-e」「サブ回線(優先度低)はPPPoE」と設定されています。
この定義に加え、さらに「特定の宛先への通信はPPPoEインターフェースへルーティングする」という設定を加えます。
この仕組みは以下の手順にて構築することができます。
- PPPoE回線へのルーティングテーブルを定義
- 特定宛先(IPアドレス)への通信はこのPPPoEルーティングテーブルへルーティングする
では、やってみましょう。
PPPoEルーティングテーブルの作成
OpenWrtの通信のためのルーティングテーブルは”/etc/iproute2/rt_tables”に定義されています。
このファイルに”200 pppoe”というルーティング情報を追記します。
### viエディタで"200 pppoe"を追記
vi /etc/iproute2/rt_tables
### 定義内容を確認
cat /etc/iproute2/rt_tables
#
# reserved values
#
128 prelocal
255 local
254 main
253 default
200 pppoe ←追加を確認
0 unspec
#
# local
#
#1 inr.ruhep
PPPoEインターフェースへのテーブル適用
次にPPPoEインターフェース(本記事では”wanb”)にこのPPPoEテーブル情報を関連付けます。
メニュー「ネットワーク > インターフェース」から「wanb(=PPPoE回線)」のインターフェース定義を編集します。
ちょっと小さいですが「wanb(=PPPoE)インターフェース定義の詳細設定タブ」から以下の変更を行います。
IPv4ルーティングテーブル のオーバーライド |
“pppoe(200)”を一覧選択 |
---|
設定変更したら「保存」ボタン押下でインターフェース一覧画面へ戻り、さらに「保存&適用」ボタンでシステム反映させます。
以上でルーティングテーブル「pppoe(200)」をサブ回線「wanb(=PPPoE)」へ関連付けが完了です。
PPPoEルーティングテーブルの使い方
PPPoEインターフェースにPPPoE(200)ルーティングテーブルを定義したことで、このルーティングテーブル”pppoe(200)”を定義した通信はPPPoE回線を使ってインターネット通信する仕組みとなります。
では、実際にPPPoEルーティングテーブルを使ってみましょう。
使い方の例として、ここからは「特定通信先(5ch.netを想定)への通信はPPPoE回線を利用する」という設定を行っていきます。
特定相手先のIPアドレス確認
まず、相手先はドメイン名ではなくIPv4アドレスが必要なので特定通信先のIPv4アドレスを確認します。
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アドレスが確認できます。
IPv4ルールの設定
では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ルート」に従って通信しているのか?を確認しておきましょう。
現在、「アクティブなIPv4ルート」は以下のように定義されています。
まずはgoogle.comへのIPv4通信によるトレースをとってみます。
root@OpenWrt:~# traceroute -4 google.com
traceroute to google.com (142.250.76.142), 30 hops max, 46 byte packets
1 ne-******.kddnet.ad.jp (113.***.***.251) 14.223 ms 14.352 ms 14.333 ms
2 142.***.***.*** (142.***.***.***) 14.494 ms 14.524 ms 14.758 ms
3 192.***.***.*** (192.***.***.***) 14.994 ms 15.089 ms 192.***.***.*** (192.***.***.***) 16.903 ms
4 142.***.***.*** (142.***.***.***) 16.972 ms 142.***.***.*** (142.***.***.***) 14.514 ms 14.591 ms
5 kix07s06-in-f14.1e100.net (142.250.76.142) 16.679 ms 16.946 ms 16.811 ms
root@OpenWrt:~#
上記の第1ホップでIPアドレス「***.kddnet.ad.jp(JPNEゲートウェイ=v6プラス)」を経由しているのがわかります。
つまり「google.com」への通信はメイン回線であるMAP-e(v6プラス)経由で通信している、ということです。
では個別ルーティングとして定義した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.***.***.***]を経由しています。
これはサブ回線(PPPoE)のゲートウェイであり、5ch.netへの通信はサブ回線(PPPoE)を経由して通信していることがわかります。
以上で特定の通信先に対する個別ルーティング定義が終了です。
MAP-e(v6プラス)とPPPoEの併用効果
このようにOpenWrtルーターならIPv4 over IPv6(MAP-e/DS-Lite)とPPPoEの併用も可能です。
基本は優先度の高い(ゲートウェイメトリックの値が小さい)インターフェースで通信しながらも、pppoeルーティングテーブルを指定した特定の通信はPPPoE回線から通信する、という併用ができます。
ポイントは「PPPoEルーティングテーブル"pppoe(200)"」を定義することでその通信をPPPoE回線へルーティングできる、ということです。
本記事では一例として「特定通信相手(IPv4アドレス)に対してPPPoEテーブルを適用」してみました。
これ以外にもあの手この手でPPPoEテーブルを活用することで、サブ回線(PPPoE)を使っての自宅サーバー公開なども可能となります。
まとめ、OpenWrtルーターでMAP-e(v6プラス)を使う
本記事ではOpenWrtルーターでMAP-e(v6プラス)環境を構築してみました。
具体的な環境としては以下の通りです。
回線事業者(ISP) | enひかり |
---|---|
プロトコル | v6プラス |
ルーター機器 | バッファロー WZR-HP-AG300H |
OpenWrtバージョン | 23.05.5 |
本記事は手順書として書いてあるので結構な長文となっていますが、やっていることはあまり多くなくMAP-e(v6プラス)設定は比較的簡単です。
OpenWrtルーターによるMAP-e(v6プラス)の問題点
MAP-e(v6プラス)の環境構築は本記事手順でもわかるようにVNEより付与されるIPv6アドレスによりMAP-e(v6プラス)パラメーターが決定します。
つまり、VNEやNTT東西のメンテナンスなどでIPv6アドレスが変更された場合、MAP-e(v6プラス)インターフェースは再設定が必要ということになります。
コンシューマー向けのIPv6対応ルーターであれば「回線自動判定」機能があり、IPv6アドレスが変更されてもその都度MAP-eパラメーターを自動計算してくれます。
しかし、OpenWrtルーターにはそんなシャレた便利機能はありません。
あまり頻繁にIPv6アドレスが変わることはない、と言われていますが、事実としてIPv6アドレスが変わったらMAP-e(v6プラス)の各種パラメーターも変更後のIPv6アドレスに合わせて再設定が必要、という点は覚えておいてください。
本記事手順によるMAP-e(v6プラス)パラメーターの設定手順は簡単なので、パラメーター再設定を想定して何度か練習しておくとよいかもしれません。
MAP-e(v6プラス)のちょっとした問題点
MAP-e(v6プラス)は1個のIPv4アドレスを複数人(複数契約)で分割利用することで枯渇しているIPv4アドレスを節約するための仕組みです。
このため、本来は1個のIPv4アドレスに65535個の通信ポートが利用可能ですが(完全なIPv4アドレス)、MAP-e(v6プラス)では1個のIPv4アドレスを複数人で共有するため1人のルーターには240個の通信ポートしか配布されません。
よって「サーバー公開したい」「外出先から自宅ネットワークへ接続したい(VPN利用など)」「IPv4のWell-knownポートを利用する通信をしたい(L2TP/IPSecなど)」という場合に不都合(通信できない?)が発生します。
MAP-e(v6プラス)の環境でポート開放/転送の設定を行う場合には限られた(自分に配布された)240個の通信ポートしか利用できないため、自分が利用できる通信ポートを把握しておく必要があります。
自分のルーターに配布された(利用可能な)通信ポートは、本記事でご紹介した「MAP-e自動計算サイト」の計算結果に提示されているので参考にしてください。