ファイアウォールの内側にあるL2TPサーバーにポートフォワーディングさせてVPN接続させる
L2TP VPNで使用するポート
UDP 1701 (L2TPトラフィック)
UDP 500 (IKE)
UDP 4500 (NAT-T)
これらをRASサーバーにフォワーディングさせれば良いはずなのだがこれだけではつながらない。
理由はWindows XP時代からWindows 10までずっとファイアウォールの内側にあるL2TPサーバーへの接続をデフォルトではdisableにしているかららしい。
リンクが消えるといけないのでやり方を下記に書いておく。
regeditで HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent にDWORD (32bit)で
AssumeUDPEncapsulationContextOnSendRule を作成、その後PCを再起動。
値は、
0: VPNセッションを確立しない(これがデフォルト)
1: サーバー同士が共にNATデバイスの背後にいる場合にセッションを確立させる
2: ともにNATデバイスの背後にいるWindows 2008ベースのサーバーとWindows Vistaベースのパソコンの間でセッションを確立させる(Windows Server 2016とWindows 10でも同じらしい)
で、サーバーではなくて、クライアントPCのレジストリを上記の様に設定したところ無事接続できた。
ただ、この操作を手動で多数のPCに展開するのは大変。
ということで、グループポリシーでレジストリを展開する方法を見つけたのでメモしておく。
参考:Step by Step – L2TP/IPsec VPN set up on Windows 10 and Server 2016
L2TPポートフォワーディングのデメリット
L2TPをF/WでフォワードするとF/WでIPSecやL2TPのVPNを終端できなくなる。
もしFW to FW VPNで拠点間をつなぎたい場合にはL2TPポートフォワーディングとの共存はできないので要注意。