(ネットワーク)IPoE v6プラス環境で、TP-Link AX5400を使ってOpenVPNを構築してみた
公共WiFiを使う際、今までGoogle One VPNを使っていたのですが、これがサービス終了に。。。
記事:Google One VPNが2024年6月10日で終了、代替手段は?
さて、後継をどうしたものか。。無料で仕えるVPNアプリはあるけど、PCでも使いたいし、怪しい所も多いし。かといって、めったに公共WiFiは使わないので有料サブスクリプションに入るのももったいないし。。 AWSでVPNサーバーでも立てようか、いや維持費考えると.... などなど考え、思いついたのが自宅でVPNサーバーをたてる事でした。
ちょうど、使っているWiFiルーターがTP-Link AX5400で、これはOpenVPNサーバー機能(IPv4オンリー)を有しています。
「TP-LinkのOpenVPN機能が使えたらなー、でも、インターネットがフレッツのIPoEなので、公開サーバーは無理だよなー」と勝手に思い込んでいました。
しかし、以下の記事を見つけて、「あ、できるじゃん」ということに。。
Qiita:IPv6 IPoE+MAP-E+二重ルータ環境でのOpenVPN
IPoE環境下で2重ルーター化してOpenVPN接続にてSIPフォン利用
ということで、試してみました。
ネットワーク構成
ネットワーク構成は以下の通りです。
インターネット -- フレッツ -- HGW(PR-S300SE) -- TP-Link AX5400 -- PC/モバイルデバイス LAN:192.168.1.1 WAN:192.168.1.2 (ルーターモード)
インターネット側の環境は以下の通りです。
・フレッツ
・IPoE / IPv4 over IPv6 は v6プラス (MAP-E)
IPv4 over IPv6が MAP-E(v6プラス) だったので、自宅内機器のサーバー公開が可能でした。MAP-EはHGW側でNAT変換されますし、HGWにはポートマッピングの機能があるからです。 これが、 DS-Lite だと、事業者側でNAT変換されるため、ユーザーは何も手出しできず自宅内機器のサーバー公開は不可能です。
ホームゲートウェイ側の設定(PR-S300SE)
以下アドレスから、ホームゲートウェイの[配信事業者ソフトウェア一覧]の画面に入ります。 (IPは適宜環境に合わせて読み替え) http://192.168.1.1:8888/t/
[IPv4設定]を押下します。
ここで、割り当てられている IPv4 アドレス及び、ポート番号が分かります。
ここに無いポート番号は、別のユーザーに割り当てられているということですね。
上記の利用可能なポート番号で、OpenVPNのサービス公開用のポート番号を決めます。
次に、[静的NAPT設定]から、上記で決めたポート宛通信を TP-Link のルータのLAN側IPにフォワーディングするように設定します。
TP-Link のOpenVPNもポート番号を自由に設定できるので、上記で決めたのと同じポートにしました。
(TP-Linkの WAN 側IPは固定にしておくか、HGWのDHCPサーバー機能でMACアドレスを登録して任意のIPを割り振るようにしておくとよいです。なお、PR-S300SEは古いせいかDHCPで任意IPを割り振る機能はなかったようでした。。)
TP-Link WiFiルータ側設定
TP-Link側ですがルーターモードになっている必要があります。
[詳細設定]→[VPNサーバー]→[OpenVPN]から、OpenVPNを有効にします。
[サービスタイプ]はUDP、[サービスポート]は上記HGWで決めた公開用ポート番号とします。
[VPNサブネット]、[ネットマスク]は、VPNクライアントに割り当てるIPですね。
[クライアントアクセス]ですが、今回はVPNクライアントが、このVPNを経由してインターネットできるようにするので[インターネットとホームネットワーク]にします。
そして、証明書を生成します。
設定ファイルの[出力]でOpenVPNの設定ファイルを保存します。
保存された設定ファイルですが、接続先IPがTP-LinkのWAN側IPになっているので、テキストエディタで開き以下のようにHGWで確認したグローバルIPに変更します。
remote 192.168.1.2 8912 ↓ remote 14.9.xxx.xxx 8912
各モバイルデバイスやPCにOpenVPNのアプリをインストールして、上記の設定ファイルを適用し接続します。
これで自宅のOpenVPNを経由して、公共WiFiでも安心してネットが使えるようになりました。
なお、今回の手順ではグローバルIPが変わった場合に備えての設定はしていません。
ダイナミックDNSを使って、IP監視し、IP変わったら書き換えとかがセオリーですが、v6プラスの場合、ほとんどグローバルIPが変わることは無かったような気がするので、とりあえずこのまま運用します。
もしIP変わるときあれば、ポートも変わりそうな気がするので、そうなるとダイナミックDNSだけでは不十分ですよね。。このあたり検証するか情報探してみたいと思います。
追記:
ダイナミックDNSですが、TP-Link WiFiルーターの[詳細設定]→[ネットワーク]→[動的DNS]から簡単に設定できました。
サービスプロバイダーは TP-Link にしましたが、ちゃんとHGW側のWAN側IPv4のアドレスを取得できているようでした。