IPv4 over IPv6(DS-Lite(transix))でインターネットに接続している環境の場合で、VPNを実現させる方法として、VPN用としてIPv4 PPPoE接続を別途用意するのが一般的だと思います。
但し、折角IPv4 PPPoE接続の速度の遅さ(網終端装置の輻輳)から逃れるために、IPv4 over IPv6(DS-Lite(transix))にしたのに、VPNはIPv4 PPPoE接続から逃れられないといったことがいまいちと思い、別の方法を模索してみました。
そして、網終端装置の輻輳の影響を受けないIPv6を活用してVPNを構築する方法を見つけ、構築に成功しました。
構築方法のベースとなった内容は、こちらのサイト
YAMAHA RTX シリーズからの L2TPv3 を用いた VPN 接続方法 (IPv4, IPv6 対応)
https://ja.softether.org/4-docs/2-howto/Other_VPN_Appliance_Setup_Guide/9-yamaha-rtx-l2tpv3
で紹介されている内容のうち、「YAMAHA ルータにおける設定情報例 #4 (IPv6 で通信を行う場合 フレッツ網内折り返し通信対応)」となります。
IPv4 over IPv6(DS-Lite(transix))にて、この方法でのVPN動作を確認しましたが、IPv6を使用しているため、他のIPv6が使用できるインターネット回線でも使用出来ます。
現在、自分のインターネット回線は、IPv4 over IPv6(DS-Lite(transix))からNURO光に変わりましたが、引き続き同じ方法にてVPNを使用できています。
現在のNURO光でこの方法でのVPN接続イメージは、こんな感じです。
構築方法の概要ですが、以下となります。
1.IPv6に対応したVPSを借ります。
自分は、こちらのVPSのKVM(1コア/1GB、ストレージ20GBで月額660円(税込))を借りました
KAGOYA CLOUD VPS
https://www.kagoya.jp/cloud/vps/price/
OSは、Linux(CentOS 7.2 ※2019年8月頃に構築してます)です。
2.VPSのLinux(CentOS 7.2)にSoftEther VPN Serverをインストールします。
3.自宅のWindows 10のPCに、SoftEther VPN Server Manager for Windowsをインストール
4.SoftEther VPN Server Manager for WindowsからVPS上のSoftEther VPN Serverに接続(IPv6、IPv4どちらでもOK)して、以下の設定を行った後、YAMAHAルーターの設定(Config)構築する
上記で紹介した、こちらのサイト
YAMAHA RTX シリーズからの L2TPv3 を用いた VPN 接続方法 (IPv4, IPv6 対応)
https://ja.softether.org/4-docs/2-howto/Other_VPN_Appliance_Setup_Guide/9-yamaha-rtx-l2tpv3
の「YAMAHA ルータにおける設定情報例 #4 (IPv6 で通信を行う場合 フレッツ網内折り返し通信対応)」が参考になります。
・仮想HUBを作成する
・仮想HUBのユーザー(VPNクライアントPCがL2TP/IPsecで接続するユーザー)を作成する
・仮想HUBのユーザー(YAMAHAルーターがL2TPv3/IPsecで接続するユーザー)を作成する
・EtherIP / L2TPv3 over IPsec サーバー機能を有効にする
・EtherIP / L2TPv3 over IPsec サーバ機能の詳細設定画面にて、
仮想HUBのユーザー(YAMAHAルーター用)とISAKMP Phase 1 IDの紐付けを行う
※YAMAHAルーターのConfigでは、この「ISAKMP Phase 1 ID」が用いられる
・IPsec Pre-Shared Key (事前共有鍵) 文字列を設定する
ここまで設定したら、YAMAHAルーターに「VPSのIPv6アドレス」「ISAKMP Phase 1 ID」「IPsec Pre-Shared Key (事前共有鍵) 文字列」をもとに設定(Config)する。
なお、YAMAHAルーターの設定(Config)は、シリアル(RS-232C)接続で行う。
5.YAMAHAルーターの設定(Config)が終わったら、YAMAHAルーターとVPS(SoftEther VPN Server)が正常にL2TPv3/IPsecの通信が出来ているか疎通確認する。
疎通確認するYAMAHAルーターコマンドは、「show status l2tp」「show ipsec sa」で、こちらのサイトの「状態の確認」セクションに実行例が掲載されています。
YAMAHA RTXシリーズを利用した社内ネットワークの作り方(L2TPv3)
https://rin-ka.net/l2tpv3/
6.VPNクライアントPCがL2TP/IPsecで接続するための設定を行う
接続先はVPS(SoftEther VPN Server)で、IPv6アドレスでもIPv4アドレスでもどちらでもOKです。
ここまで設定したら、上記の図のように、
「VPNクライアントPC」--(L2TP/IPsec トンネル)--「VPS(SoftEther VPN Server)」
--(L2TPv3/IPsec トンネル)--「YAMAHAルーター」--「自宅LAN」
といった通信経路にて、VPNが使用出来ます。
なお、自宅のインターネット回線用ルーターなどで、IPv6ファイアーウォールを使う場合、IPv6 L2TPv3/IPsec トンネルを使う為のフィルター設定で通過させることが必要だと思われるプロトコル等は、以下の2個となります。
ESPプロトコル
UDP 500番ポート
※IPv4と異なりIPv6はNAT越えでないため、IPsec - NAT Traversal(NATトラバーサル)用設定の「UDP 4500番ポート」は不要
これは、L2TPv3/IPsecは、「L2TPv3パケットをIPsecでカプセルする」ため、フィルター設定上は、IPsecで使用するプロトコル等に対して設定すればよいことになります。
参考となるサイトは、これらとなります。
IPsecを通すフィルタを教えてください
http://www.rtpro.yamaha.co.jp/RT/FAQ/IP-Filter/public-ipsec-connection.html
IPsec ( Security Architecture for IP )
https://www.infraexpert.com/study/ipsec5.html
ただ、自宅のインターネット回線(NURO光)では、IPv6ファイアーウォールでフィルター設定でESPプロトコルに対応していないため、IPv6ファイアーウォール機能をOFFにしています。