IPv4 over IPv6（IPoE）と IPv4（PPPoE）を併用可能なインターネット環境を整備する

# 1. 概要
結構な苦労の末、IPv4 over IPv6（IPoE）と IPv4（PPPoE）を一緒に使える環境ができた。
嬉しいので、備忘録も兼ねて設定した内容などをまとめる。

:::note warn
本記事は細かい技術解説等ではありません。
タイトルの内容を実現する1つのモデルケースを構築するまでの読み物としてご覧ください。
やったことや苦労した点はそれなりに書いているので、筆者のように<b>ネットを速くしたい＆在宅勤務等で自宅から外部に VPN 接続する必要がある方</b>には指針になるかもしれません。
:::

## 忙しい人向けの要約
* プロバイダは IPv4 over IPv6 と PPPoE が併用できる事業者を選ぶ
* ONU ー IPoE 用ルータ（A） ー PPPoE 用ルータ（B）と接続する
* A の設定：OCN バーチャルコネクト使用、DHCP 有効、PPPoE パススルー有効
* B の設定：PPPoE クライアント機能使用、DHCP 無効
* 両ルータの LAN のアドレス空間はそろえる
* PPPoE 接続時は PC のデフォルトゲートウェイに（B）の LAN 側 IP アドレスを指定する

## 環境
* 光回線：ドコモ光
* プロバイダ：ドコモnet（OCN バーチャルコネクト）
* ルータ：WSR-5400AX6／WSR-1166DHP（どちらも Buffalo 社製）


# 2. 経緯
遡ること数年、**インターネット回線は IPv4 over IPv6（IPoE）にすれば通信速度出るよ**、ということを遅まきながら知った。
我が家はドコモ光だったので、上記の接続方式を提供しているタイプA[^1]のプロバイダをさらっと調査し、速度の面でそこそこ評判の良かった GMOとくとくBB に変更。**v6プラス**[^2]と呼ばれる IPv4 over IPv6 接続サービスを申し込み、快適なネット生活を送っていた。

昨年、COVID-19 の流行により世は大リモートワーク時代となり、筆者の職場も在宅勤務に移行。自宅回線から VPN 接続で社内 LAN へ入って仕事せよ、という運びとなった。
「まあ、高速化した自宅の回線なら余裕だろう」と高を括っていたところ、**社内 LAN への接続に必要な VPN クライアントのセッション確立ができず、ログインすら NG となる事象が発生**。
PC 再起動、ルータ再起動、ONU 再起動、諸々試してもダメだったので、原理的な部分で引っかかっていると思い本格的に調査したところ、 **v6プラスでは VPN セッションを張れず、 PPPoE 方式による接続が必要**[^3]ということが判明した。


# 3. 検討

このままでは仕事ができないので、どうにかして仕事のできる環境を手に入れる必要があった。
必ず満たさなければならない要件は次の2点。

* プライベートでインターネット接続が可能なこと
* 仕事ができること

これを満たす対処方法として、いくつか思いつく（が、没になる）ものが下記。

## 解決策（没）

### プライベート用の通信も PPPoE 方式で我慢する
この方式なら仕事でもプライベートでも接続可能だが、そもそもプライベートのインターネット回線を高速化するために v6プラスにしたのに、それを諦めることになる。
これでは本末転倒。よって却下。

### 仕事用の通信に別回線を用意する
モバイル Wi-Fi など、回線を新規に契約するのは仕事のために身銭を切り続けることになり、心理的抵抗が強い。
スマートフォンでのテザリングによる VPN 接続も不可能ではないが、かなり不安定。チャットツールで打合せでもしようものなら、容赦なくコマ送りの音声を解読させられる羽目になる。
数日間はテザリングで仕事してみたが、スマートフォン側にも通信制限[^4]などの障壁があり、長期運用はストレスとの戦いとなるので、本格的な対処としては却下。

### 会社の情シス部門を操る
会社で使う VPN クライアントが IPv6 でも VPN 接続可能な設定になってくれればよいが、 `sudo` できない[^5]ため却下。

### 毎日出社する
却下。

### 転職する
却下。

## 解決策（真）
何かいい方法が無いかと思いググりにググった結果、現実的な解として下記を採用することにした。

### ルータを増設し、IPoE 用のルータと PPPoE 用のルータで通信を分ける
**「仕事のためにルータを買うという余計な支出が出るのでは？」**という指摘が出そうだが、ネットの新規契約時に**無料でもらったルータが既に1台手元にあったので、これを仕事用にすれば仕事起因のコストは実質ゼロとなり、全くの無傷**である。

……と思っていたのだが、1点大きな障壁があった。
利用していた GMOとくとくBB では、プロバイダ側の仕様により **v6プラスと PPPoE 接続の併用はできない**とのこと。~~<font color="LightGray">しかも、v6プラスを解除しなければ PPPoE が使えない上、解除方法はナビダイヤル[^6]への電話申込限定というのがまたイケてない。</font>~~
このため、筆者はプロバイダ変更を余儀なくされることとなった。乗り換え先は、下記の点から**ドコモnet** にした。

* タイプAのプロバイダである
* IPv4 over IPv6 と PPPoE が同時に使用できる
* ドコモと窓口が一本化できる

……目的を遂げるためだ、3300円（移転事務手数料）くらい喜んで捧げようじゃないか。


# 4. 環境構築

ここからは、実際に筆者の構築した環境とその設定内容についてまとめる。

## ルータ

### IPoE 用ルータ
GMO での v6プラス契約の際に自前で調達したものがこれ。
以下の条件を満たすよう選定したと記憶している。

* IPoE 対応
* Wi-Fi 11ax 対応
* Buffalo 製（PPPoE 用ルータとメーカを揃えたほうが相性問題も出ず、管理しやすそう）
* 1万円台程度（高すぎないこと。上を見たらキリがないので）

https://www.buffalo.jp/product/detail/wsr-5400ax6-mb.html

### PPPoE 用ルータ
ドコモ光を最初に契約したときにドコモショップで渡された物がこれ。
PPPoE 側の回線は仕事でしか使わず、性能にこだわる必要もないため新調はせずそのまま活用する。

https://www.buffalo.jp/product/detail/wsr-1166dhp.html

## 接続
ONU と2台のルータを下図のように配線する。

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601682/c1c42166-9442-39f9-aa73-c7db8322771d.png)

物理的な配線のポイントは下記の通り。
なお、「LANX」ポートは空いているところであればどこでもよい。

* ONU から IPoE 用ルータの「internet」ポートに LAN ケーブルを接続する
* IPoE 用ルータの「LAN2」から PPPoE 用ルータの「internet」ポートに LAN ケーブルを接続する
* PPPoE 用ルータの「LAN1」から IPoE 用ルータの「LAN3」ポートに LAN ケーブルを接続する

## 詳細設定
各ルータの管理画面にログインし、下記の設定を行っていく。

### IPoE 用ルータ
「Internet - Internet」 の「IP アドレス取得方法」で「OCN バーチャルコネクトを使用する」を選択。

![IPoE1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601682/fe0a195e-b133-91bf-0abf-e636d9d539f6.png)

このルータでは PPPoE 接続は使用しないので、PPPoE 接続先設定はしなくて良い。

![IPoE2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601682/79f03867-f400-ab3e-d84a-352f8449cc2e.png)

「Internet - IPv6」の「IPv6 接続方法」は「ND プロキシを使用する」にチェックする。

![IPoE3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601682/a61be7fe-9b9e-f99c-5811-16e0367ffe83.png)

「LAN - LAN」の「DHCP サーバー機能」を「使用する」にチェックし、「割り当て IP アドレス」の範囲を指定する。
このとき、後述の PPPoE 用ルータに割り当てる IP アドレスは避けて範囲指定する。

![IPoE4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601682/2bf53407-d9dc-61a4-394b-d2b832e8aa62.png)

「セキュリティー - パススルー」の「PPPoE パススルー機能」と「PPTP パススルー」は「使用する」にチェックする。

![IPoE5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601682/94300b42-cca4-7a85-da38-2e2569a49186.png)

### PPPoE 用ルータ
「Internet - Internet」 の「IP アドレス取得方法」で「PPPoE クライアント機能を使用する」を選択する。
また、Internet 側 MAC アドレスをデフォルトから変更しておく。
ただし、デフォルトの後続の MAC アドレス数個（画像の場合、末尾「3F」以降）はアクセスポイントとしての MAC アドレスに使われているので、変更先はデフォルト１つ前の MAC アドレスにするとよい。

![PPPoE1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601682/d2437927-84ad-5d73-33d1-c86a4043c2ca.png)

「Internet - PPPoE」 でプロバイダの接続情報を入力し、デフォルトの接続先としておく。拡張設定は特にいじらない。

![PPPoE3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601682/b98ef4b8-9893-c07f-dfb0-0140341c54ab.png)

![PPPoE2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601682/a390a627-4fe6-6f2d-e4a1-5727b414003f.png)

「LAN - LAN」にて、IPoE 用ルータの設定にて空けておいた IP アドレスを LAN 側 IP アドレスとして指定する。また、DHCP 機能はオフに設定する。
IP アドレスを同一セグメントにする理由は、1つの端末からどちらのルータの管理画面にも自由にログインできるようにするため。

![PPPoE4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601682/b936c517-7a01-3abc-8f22-d78e6c462ac1.png)

以上でルータの設定は完了。
しばらく待機し、両ルータの管理画面の上部のインターネットアイコン（左から2番目）から「×」印が消えれば、IPoE 及び PPPoE での接続ができるようになる。

# 5. 性能測定
念のため、双方の通信方式で通信できていることと、両方式での回線速度を確認しておく。
使用したサイトは下記。

* プロバイダ／IP アドレス確認：[プロバイダー確認君](https://env.b4iine.net/isp.php) 
* 回線速度測定：[Fast.com](https://fast.com/ja)

### IPoE 接続

![IPoE6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601682/41c79ff4-f6c0-1603-b95c-0cfbd15d213c.png)

![IPoE7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601682/fb6a79f9-350c-9c0d-73b8-e9f4ad431c2f.png)

### PPPoE 接続

![PPPoE5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601682/c99266c7-b81d-1a4d-784d-67beb8ca8237.png)

![PPPoE6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601682/9680f316-5555-2500-fb8f-d55dc22b5f9c.png)

ちょっとどちらも遅めな気もするが、いい感じになった。


# 6. ハマったことなど
ここでは今回の環境設定をするにあたり、筆者がハマった箇所とその対処についてまとめる。

### IPoE 用ルータの回線が開通している状態で PPPoE 用ルータを回線判別させると「DHCP サーバを発見」となって PPPoE 接続できない
PPPoE 用ルータの回線自動判別機能を使うと、既に稼働している IPoE 用ルータを DHCP サーバだと認識してしまい、自分で PPPoE 接続することを諦めてしまう。
PPPoE 用ルータの接続方式を「PPPoE クライアント機能を使用する」に設定した後は、慌てずしばらく待機するのが吉。

### PPPoE 用ルータで回線自動判別させると「IP アドレスが競合している」と言われる
両ルータの LAN 側の IP アドレスを同一セグメントにしているため、PPPoE 用ルータから見ると LAN 側も WAN 側も同じ IP アドレス帯になる。このせいで、回線自動判別機能を使うとルータが混乱する模様。
前項同様、回線自動判別機能は使わずに PPPoE クライアント機能での開通を待ってみるとよい。

### 全部正しく設定して待機しても PPPoE 接続できない
IPoE 用ルータの「PPPoE パススルーを許可する」画面でもう一度「設定」ボタンを押す。それで治らなければ、片っ端から設定画面を開いて「設定」ボタンを押してみる。それでもダメならルータを再起動してみる。
筆者はここで一番ハマり、投げやりな気持ちで PPPoE パススルー設定画面の「設定」ボタンを押し直したところ途端に開通し、極度の脱力感に苛まれた。

### IPoE/PPPoE 両方開通しているが、PPPoE 用ルータの Wi-Fi に接続しても IPoE 接続になってしまう
IPoE 用ルータの DHCP 機能が ON になっているため、PC のデフォルトゲートウェイが IPoE 用ルータになることが原因。
PPPoE 接続したい PC は、ネットワーク設定にてデフォルトゲートウェイとプライマリ DNS を PPPoE 用ルータの IP アドレスに変更すればよい。


# 7. おわりに
こうして、高速通信でプライベートを謳歌し、仕事も不満なくこなせる環境が出来上がった。
IPoE と PPPoE を同時に通すことも、ルータを2台使って通信を分けることも、独力では思いつきもしなかった。偉大な先人たちに感謝を。

また、筆者の家には PS4 や Switch などネット接続可能なゲーム機器があるが、これらを IPv4 over IPv6 で使用できるようにする設定は今回実施しなかったので、今後の課題としたい。


# 参考文献
参考にした度合いが強い順に掲載。
その他も山ほどあるが、よく読んだ記事をピックアップしておく。

https://conchan.akita.jp/blog/ipv6-webserver/

http://dotsukareta.blogspot.com/2017/04/v6ipv4pppoe.html

https://cha-shu00.hatenablog.com/entry/2020/03/30/163631

https://digitalyze.net/ipv6-ipoe_ipv4-pppoe_wxr-1900dhp3/


[^1]: ドコモ光のプロバイダはタイプA／タイプBに分かれ、タイプAの方が月額料金が200円安い。提供サービスは各タイプのプロバイダ全体で見ると大きく変わらないため、基本的にタイプBを選ぶ理由はない。
[^2]: 「v6プラス」は JPNE、「OCNバーチャルコネクト」は OCN という事業者が提供する IPv4 over IPv6 サービス名で、使う分には同じものと考えて良い。その他同等のサービスとして「transix」などがある。
[^3]: 会社の VPN 設定では IPv4 の固定ポートが要求されるが、v6プラスなどでは複数人で IPv4 グローバルアドレスを共用するため固定ポートが使えないことが原因。VPN の設定によってはポートを可変にしたり IPv6 でセッションを張れる環境もあるので、v6プラスだからといって全ての場合で NG となるわけではない。
[^4]: ahamo など、20GB使用可能なプランであればギリギリ1ヶ月は耐えるかもしれない。（数日試して食った容量から試算）
[^5]: 「権限が無い」の意。
[^6]: 「0570」から始まり、発信者側の携帯電話のかけ放題プランの加入有無によらず20秒10円の通話料が発生する初見殺し番号。全国各地に拠点のある企業側にとっては問合せ番号を一本化できるメリットがあるが、かけ放題プランだから大丈夫と勘違いして多額の通話料を請求されたことのある勢力からは嫌われている。身近なところでは飲食の宅配等でも使われているが、「 [企業名] 〇〇店」などでググれば元の電話番号を掘り当てられることもあるので諦めてはいけない。