VPN Challenges

滋賀の実家ではNTT西日本のフレッツ光を契約していて、ついてきたRT-500MIというルーターにVPN機能があることを知って、以前に設定していてアメリカからつないで日本国外では普通見ることのできないYouTube動画とかを見ていたのだけれど、あるころからつながらなくなってしまった。実家に住んでいる親はまったくPCとかネットワークとかはわからないので、どうしようもない。他にもVPNをつかう手段はあるし、それほど日本限定のコンテンツを見たいわけでもないので、つながらなくても不自由はないんだけれど、今回ひさしぶりに帰国したので、ちゃんと設定し直そうとおもった。

まずRT-500MIの設定画面の http://192.168.1.1/ をブラウザで開いてみたら、なんとVPNの設定がなくなっている。しらべてみたら、このブログが見つかって、どうも接続方式がPPPoEというのからIPoEというのに変わったらしい。PPPoEとIPoEが技術的にどう異なるのか知らんけど、VPNを使うためにはPPPoEにしなきゃいけないらしい。PPPoEにするには本来はNTTに連絡しないといけないらしいんだけれど、そのプログに自力でPPPoEにする方法がのっているので、やってみたらできた。

これでRT-500MIのVPNの設定画面も復活して、めでたしめでたし、となったら簡単だったのだけれど、そういうわけにはいかなかった。というのは、VPNを使うには通常固定IPアドレスが必要で、それがない場合は、不定期にIPアドレスが変更されるので、変更のさい通知のメールを送る設定をするようになっている。これまでは、Yahoo JAPANのSMTPサーバー(smtp.mail.yahoo.co.jp)のポート587というのをつかっていたのだけれど、2021年1月19日にTLS(SSL)を使わないSMTPのサポートを終了してしまったらしい。RT-500MIはTLSを使ってIPアドレス変更の通知メールを送る機能がないので、もうYahoo JAPANのSMTPサーバーはつかえないということになる。

よしそれなら、ぼくが個人的に契約して使っているホスティングサービス(まだぜんぜん設定してないんですが)のプロバイダが提供しているSMTPサーバーを使えばいいだろうということで、設定してみたら動くようになった。

これでまたひとつハードルをクリア。で、アメリカに戻ってから接続テストをしても動かなかった場合、修正しようがないので、日本にいる間にテストしようとおもい、Pixel 5aでVPNの設定をしようとしたのだけど、L2TP/IPSecでVPNを設定することができなくなっている。サーチしてみたら、Android 12から新規のL2TP/IPSecのVPNは設定できなくなったみたい。まるでゲームのように次から次へと苦難があらわれますな。

となると、このVPNを使うときは、クライアント側は古いAndroidかChromebookを使うことにする、というのがいちばん安易な案だけど、このさい機材を一新するか、ともおもう。ただ、いま安定運用できているので(親がiPadをつなげているだけですが)、また新しい機材をいれてトラブルが発生するのも困るなぁ、ともおもう。思案中です。

(2022-06-25 追加)

いろいろ調べた結果、このページで説明されているPPoE接続&二重ルーター環境下でのVPNの設定をやればいいのではないかということになった。いまはRT-500MIにNECのAterm WR8170NというのをつなげてWi-Fiをつかっているのだけれど、このWR8170Nはむかし甥っ子たちがNintendo DSをつなげるために買ったもので、まぁまだ動いているけど10年以上つかっているし、もう買い換えてもいいだろうということで、アマゾンでASUSのRT-AX55というルーターを注文してみた。これでPPoE接続&二重ルータ環境下でダイナミックDNSとOpenVPNを使えるようになるはずなので、やってみることにします。

(2022-06-27 追加)

ASUS RT-AX55が届いたので設置してみたのだけれど、信号が弱い。むしろこれまでつかってきたAterm WR8170Nの方がマシなくらい。今回は実家にいる間にすこし仕事をしなきゃいけないので、VPNよりもまずはそこそこ実用に耐える速度が欲しい。もちろんWANが来ている1階の部屋に行けばいいのだけれど、その部屋の数年使っていないクーラーが動作するかあやしいし、できたら2階の部屋でつなげたい。いろいろやってみて、とりあえずAterm WR8170Nをそのまま置いておいて、2階にRT-AX55を設置してリピーターモードで使う、というのがいちばんいいか、ということになった。それでもダウンロードが5.5 Mbps、アップロードが40 Mbpsくらいしか出ない。RT-AX55をリピーターモードで使う前はよく切れていたので、最低限の仕事はできるけど、もうちょっとなんとかならんか。

もっと電波の強力なルーターを買うというのも一案だけど、抜本的な解決は1階の部屋から2階の部屋までイーサーネットのケーブルを引くことだろうとかんがえて、30mのケーブルを買ってみた。20mでも足りるかもしれないけど(計ってません)。それがうまく行ったら、RT-AX55 を2階に設置したままにして、リピーターモードからルーターモードに戻してVPNを設定してみようとおもいます。

(2022-06-29 追加)

イーサーネットケーブルを注文してファミリーマートで受け取ろうとしたら、ヤマト運輸のトラッキングがおかしくて、モノはファミマに届いているのに、アマゾンの受け取りメールが届かないために受け取り処理ができない。しょうがないのでファミマのWiFiをつかってアマゾンアプリを急きょPixel 5aにインストールして、カスタマーサービスとチャットしてやっと受け取れた。Pixel 5aはデフォルト言語を英語にしているので、アマゾンアプリは英語モードで立ち上がり、日本のアマゾンのカスタマーサービスなのに英語でチャットするということになったが、案外その方が待ち時間が短かったりするかもしれんな、とおもった。

で、さっそくフレッツのルーターとRT-AX55をケーブルでつないで、このあいだと同じスピードテストを流してみたら、ダウンロードが290 Mbps、アップロードが800 Mbpsくらい出るようになった。すばらしい。ぜんぜん本題のVPNの設定はしていないんですが、とりあえず速度的には満足。

(2022-06-29 追加その2)

それからVPNの設定を始めて、OpenVPNが動くようになった。このページの設定でだいたいOKだったけど、ひとつ余分に設定が必要だったのは、RT-AX55のIPv6で、デフォルトでは無効になっているので、それを有効にしなければ PPPoEがつながらなかった。IPv6でつながってからPPPoEブリッジ機能でIPv4のアドレスをもらいにいくということなんでしょうか(想像)。いちおう設定パネルのスクリーンショットをつけときます。

(2022-07-03 追加)

もうこのVPNの件は解決したと思っていたのだけれど、ちょっとテストしたら、DNSがうまく動かないことがわかった。VPNをつないで、ルーターの管理画面にアクセスする、みたいなことはできるんだけど、VPNをつないで、たとえばGyaoを見ようとすると、Gyaoの画面が出ない。ぜんぜんダメじゃん。

ASUSのFAQによると、OpenVPNを使う場合はインターフェースをデフォルトのTUNからTAPモードに切り替えろというのだが、最新(V3)のMacOS用OpenVPNクライアントはTAPモードをサポートしていないし、そもそもAndroidではプラットフォームの制限でTUNモードしかサポートできないらしい。

OpenVPNの代わりに、IPSecのVPNサーバーをルーターで動かしてみるといのもやってみたが、まだ成功していない。だいたいその設定でAndroidからつながるのかどうか不明だし。うーん。

(2022-07-03 追加その2)

RT-AX55のIPSecのVPNサーバー設定でなんとかAndroid 12のPixel 5aにつながったみたいです。ここにメモを書いておきます。とりあえずGyaoのページは出ましたが(笑)、また新たな問題が発見されるかもしれないので、自己責任、ということでお願いします。

【RT-AX55設定】

  1. 詳細設定→VPN、IPSec VPNを選んで、IPSec VPNサーバーを有効にする。
  2. サーバーIPアドレスにはDDNSで設定したホスト名(xxxx.asuscomm.com)を入れる。
  3. 事前共通鍵を入れる。
  4. IKEv2 Configのセクションでモバイル用に証明書をエクスポートする
  5. ユーザー名とパスワードを設定する。

【Pixel 5a (Android 12)設定】

  1. エクスポートした証明書をCA証明書としてインポートする。
  2. VPNの設定は
    1. タイプはIKEv2/IPSec MSCHAPv2
    2. サーバーアドレスはDDNSで設定したホスト名(xxxx.asuscomm.com)。
    3. IPSec identifierというのはとりあえずサーバーアドレスを入れた(使われているのかどうか不明)
    4. IPSec CA証明書はインポートした証明書を指定する。
    5. IPSec サーバー証明書はサーバーから受け取る設定(デフォルト)
    6. あとはユーザー名とパスワードを設定する。

以上です。

(2022-07-10 追加)

ノースカロライナに帰ってきてから、VPNにつないでみたらちゃんとつながった。すばらしい。

日本にいるあいだに Android 12 (Pixel 5a) とMacBookはつながることを確認していたのだけれど、帰ってきてから Windows 11 とアマゾンFire 8 (2020 Version)でもつながることを確認したのでちょっとだけメモしておきます。

Windows 用の設定は、ASUSが Windows 10 用の設定手順を提供しているので、その手順でOKです。というか、regedit でレジストリをいじるところもあって、そんなもん教えてくれなきゃ無理ですな。あと Android や Mac では、pemファイルをインポートするんですが、Windowsの設定では別フォーマットのファイルになるので要注意です。

アマゾンFire 8 にはVPNの設定画面がなくて、”VPN Setting”というアプリをPlayストアからインストールしたらいいよ、という情報があったのでやってみたけど、IKEv2のVPNには対応していないみたいだったので、モバイル用の証明書(Certificate)をインポートしてから、PlayストアからstrongSwanというアプリをインストールしたら、そのあとは割とスムーズに設定できました。

Radikoアプリは位置情報を見ていて、VPNにつなげていても海外からは利用できなくなっています。Fire 8にはGPSがついていないので、ひょっとしたらアプリから使えたりするかも?とおもったけどやっぱりだめでした。アプリはだめですが、VPNにつなげた状態でSilkブラウザでRadikoのデスクトップサイトを表示させてやれば聴けるので、まぁそれでよしとしましょう。

(2022-12-22 追加)

また実家に帰ってきて、念のためファームウェアを最新のものにアップデートしたらVPNが繋がらなくなってしまった。動いているものは変えるな、というのは鉄則だけど、やっぱり最新のファームウェアを使いたいしなぁ。

いろいろ試してみたけど、WAN > DDNSの「IPv6 アップデート」というのを「いいえ」にしたら動くようになりました。なんでそれで動くようになるのかはわからずにやっているので聞かないでください(笑)。