コジンテキネット

DS-Lite環境でHGWのVPNを使うためにPPPoEを追加した話

インターネットがより快適になるらしい DS-Lite(IPv6 IPoE接続)にフレッツ光のプロバイダを変更したところ、これまで HGW(ホームゲートウェイ)で利用できていたVPN接続が使えなくなったので、その対策をした話です。


Q. DS-LiteでVPNは使えますか?
A. 基本的にHGWで外部から受けるVPNは使えません。

DS-Liteでは、複数の契約者で1つのグローバルIPv4アドレスを共有する仕組みになっています。そのため、VPNで利用するポートが自由に使えなかったり、外部からの着信が制限されたりして、接続に失敗します。


つまり、HGWの機能がどうこうというより、DS-Liteの仕組み上、VPNの待ち受けとは相性が悪いというのが実際のところのようです。

なお、IPv6 IPoE接続でもIPIP方式ならVPNが使えるという情報もありました。
ただ今回は、

  • HGWのルーター機能とVPN機能をそのまま使いたい
  • 固定IPをやめたい
  • 主回線はPPPoEに戻さない

という前提だったので、その方法は見送りました。


PPPoEの格安プロバイダを追加してマルチセッション化

月額550円ほどでPPPoE接続が使える格安プロバイダがあったので、この回線をVPNの待ち受け専用として追加してみます。

今回の構成では、通常のインターネット通信はDS-Liteを使い、VPNの待ち受けだけをPPPoE側で受ける形にしました。


HGWの「セッション2」に接続情報を追加

HGWの設定画面から「セッション2」にPPPoEの接続情報を追加します。

HGWの「セッション2」に接続情報を追加

設定内容はシンプルで、プロバイダから案内された接続IDとパスワードを入力し、その他の項目は基本的に初期値のまま保存するだけでOKでした。


HGWのVPNサーバ設定で「セッション2」を選択する

先ほど追加したPPPoEの接続情報(セッション2)を、VPN接続の待ち受けに使う設定です。

HGWのVPNサーバ設定で「セッション2」を選択する

これにより、通常のインターネット通信はこれまでどおりDS-Lite側を使いつつ、VPNの着信だけをPPPoE側で受ける形になります。

今回のポイントは、HGWを丸ごとPPPoE運用に戻すのではなく、VPN用の入口だけをセッション2へ切り分けることです。


DDNSがPPPoE側IPを取得できるようにする

これだけの設定でVPN接続自体は成功するはずですが、格安プロバイダのため固定IPではありません。VPNを常用するには、ホスト名で接続できるDDNSが必要です。

ということで、以前作成した自作DDNSの記事がこちらです。まずは先に読んでみてください。

この記事の方法だと、取得できるのは主回線であるDS-Lite側のIPアドレスです。そのため、VPN接続に使いたいPPPoE側のIPアドレスとは一致せず、このままではDDNSの更新先として使えません。


HGWの接続ルール設定で「宛先ドメイン名」を指定する

HGWの接続ルールを設定すると、指定したドメイン名へのアクセスだけにセッション2のPPPoE接続を使わせることができます。

HGWの接続ルール設定で「宛先ドメイン名」を指定する

この仕組みを使えば、IPアドレス確認用のURLだけをPPPoE側へ流せるため、取得できるIPアドレスもVPN用のものになります。

IPアドレス確認用のスクリプトは、自分で契約している外部サーバに設置しておくのが確実で分かりやすい方法だと思います。

注意点として、同じIPアドレスのサーバでホスト名だけを分けても、期待どおりには分離できませんでした。そのサーバ全体がセッション2経由になってしまったため、確認用スクリプトは別IPアドレスのサーバへ置く方が無難です。


まとめ

DS-Liteに変更したことでHGWのVPN待ち受けが使えなくなったため、PPPoEの格安プロバイダを追加して対応しました。

HGWのマルチセッション機能を使い、通常通信はDS-Lite、VPNの待ち受けとDDNS判定用通信だけをPPPoE側へ振り分けています。

これにより、普段の通信速度を維持したまま、従来どおりVPN接続も使えるようになりました!