User-mode Router + VPN Server = SecureNAT

SoftEther VPN User-mode Router 2.0 単体での提供は Beta 2 では無しになりそう。
その代わり、VPN Server 2.0 の中に組み込まれる。
VPN Server 2.0 と User-mode Router 2.0 を同一の PC で動かして、localhost に対して接続しっ放しみたいなことが、ボタン 1 つでできる。しかも localhost 向けの socket を使わずにプロセスメモリ内で仮想 Ethernet フレームを交換するだけなので、とても軽くなる。(カーネルモード呼び出しの回数が減るため)
それでは、これまでインターネット側に VPN Server を置いて、イントラネット側から User-mode Router でつないで、リモートアクセスのために使っていた場合はどうするか。
解決策は簡単で、イントラ側にも VPN Server を入れて SecureNAT 機能を ON にして、インターネット側の VPN Server に L2 で「カスケード接続」をすれば良い。
なんと美しい形態だろうか。


結論。全部 1 つのプロセスで動くようになる。VPN Server 機能も、その仮想ネットワーク内で動く NAT ルータ機能も、DHCP サーバー機能も、DNS リダイレクタ機能も、ACL (アクセス制御リスト) も、全部 1 つのプロセスにまとまって動く。しかも、全部ユーザーモードで動作し、呼び出しているシステムコールmalloc 系と socket 等の I/O 関係だけ。(スレッドはユーザーモードスレッドでもできる。)
これのソースそのまま gcc のクロスコンパイラに通して色々なハードウェアに載せてみよう。きっと素晴らしいことになるはず。