『リモートアクセスVPN を QNAP 上で動かす』 で書いたように、外部から家のLAN環境に入るため、 SoftEther VPN Server を QNAP 上の VM で動かしています。
去年、ルータ買い替え(顛末はこちらの記事などご覧ください)&新しい仕事場に引っ越し、などいろいろとあり、その後、VPN 接続をきちんと試してなかったので、改めて試してみた話をメモっておきます。
設定確認
結論から言うと、リモートアクセスVPN を QNAP 上で動かす の記事と同じ設定のままで問題なく接続できました。
ちなみに、上記記事の時点から、QNAPのファームウェアをアップデートしていることもあり、ネットワーク周りの概要の画面はこんな感じになります。
ちなみに、今の状態は
- ルータ NVR510 v15.01.14
- QNAP, QTS 4.4.1.1117
です。
別の設定方法
実は、上記設定を試す際に、いろいろと試していたら、 VM に 仮想NICを2つ追加するところまでは同じようにして、 QNAP 上の仮想スイッチを追加せずとも VPN が構成できました。
こちらは、どちらかというと以前の ESXi での構成に近い感じですね(物理NICが一つで、仮想NICが2つ)。
まあ、考えてみれば当たり前なんですが、一応できるよ、ということで載せておきます。
余談
余談です。
実は、ルータ買い替え直後、新しいルーターで一度試したのですが、この時は、 VPN Server に接続できませんでした (こちらの記事にあるように、QNAP の再設定時に発覚しました)。
本来は NAT-T で何もしなくてもポートが開くことを期待していたのですが、なぜか(この時の)NVR510 の場合はうまくいかなかったようです。
でも、今回試した際は問題なく接続できました(当時の詳細な記録が残っていないため戻って検証できないのが残念です)。
VPN Server に接続できなかった後、引っ越しして、その後いろいろと変更したところとしては、
- ルータのファームウェアアップデート v15.01.13 -> v15.01.14
- QNAP のファームウェアアップデート 4.3.5.0760 かそれ以前 -> 4.3.6.0805 (4.4.1.1117 の前にこれでも接続に成功してます)
などがあります。
とはいえ、リリースノートなどを見ても関係しそうなところはないんですよねー。こうなるとまあ正直ちょっとわかんないですね。
少なくとも、現在の環境では問題なく動作しております。
参考
どこまで関係あるかわかりませんが、Yamaha ルータではNAT-Tが効かない、というような話もあるようです。
YAMAHA ルータと Splatoon 2 - mura日記 (halfrack)
でも、Yamahaルータのドキュメントでは、 NAT-T で使う UDP の場合は、 Symmetric NAT 相当にはならないようなので、どうなんでしょうかね? (TCP の場合はポートセービングIPマスカレードで動作して、この動作が Symmetric NAT と同じということのようです)
ちなみに、上記の記事で紹介されている STUNner を使ってみたら、いまの NVR510 は Port Restricted Cone NAT と判定されました。
Symmetric NAT だとか Port Restricted NAT ってなんだろう?と思い、ついでに調べてみると、こんな感じの説明がありました。
- STUN Clientを実装してみる - Qiita
- RFC 3489 - STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)
『なんとか cone NAT 』系のものは、『送信元の IPアドレスとポート番号が同じであれば、変換後のIPアドレスとポート番号も同じものを使う』というのがポイントのようです。
個別の違いは、外部からの通信があった場合に通すときの条件の違いのようです。
一方、 Symmetric NAT は送信元のIPアドレスとポート番号に加えて、送信先のIPアドレスとポート番号も含めて、変換後のIPアドレスとポート番号を決定する、というもののようです。
このため、cone NAT の場合は、下記記事に説明されているような手順で、 NAT 越えを実現することができるということです。
[24日目] NAT Traversalって知ってますか | Cerevo TechBlog
なるほど、勉強になりますね。
で、 NVR510 はこちらの記事中で触れらているように、UDPに対しては、ポートセービングIPマスカレードが使われず、 なんとか cone NAT 系の振る舞いをしているということのようです。
そうなるとますます、最初にNAT-Tが動いていないように見えたのが謎ですね。
ちなみに、最初は下記のサイトの説明からは、 port Restricted NAT と Symmetric NAT って一度送信した相手からしかNATを通さないので同じじゃない?って思ってしまいました。
NAT変換後のIPアドレスとポート番号の決め方についての話が抜けていたので、 port Restricted NAT と Symmetric NAT が同じように思えたようです。
あと、SoftEther で使ってる NAT-T については下記などが参考になりそうです。
VPN の NAT トラバーサル (UDP ホールパンチング) 機能 - 登 大遊 (Daiyuu Nobori) の個人日記
NATまわりはややこしいなー。