AtermWR9500Nをルータとし、インターネット上win7からlinux VPNサーバ(xl2tpd/ipsec)に接続

ルータを介さない接続は、他サイトやxl2tpd,openswanのログを見ながら進められた。ルータ経由でwin7からの接続を試みてはまったメモ。iPad(ios5)は問題ない様子。結論はwin7レジストリを弄る必要があった。

現象

lan内から接続すると接続可能だが、インターネットからAtermWR9500N経由で接続しようとすると、何度か再接続を繰り返した後、接続できないというダイアログが出る。必要なポートマッピング(ESP, UDP500, UDP4500)は設定してるのに、、、
このとき/var/log/secureで目立ったメッセージは以下で、意味不明。

netlink recvfrom() of response to our XFRM_MSG_DELPOLICY message for policy eroute_connection delete inbound was too long: 100 > 36

openswan,xl2tpdのバージョンは以下

  • openswan.x86_64 2.6.32-9.el6
  • xl2tpd.x86_64 1.3.1-1.el6
対応

クライアントwin7レジストリを編集し *再起動* する必要があった。レジストリキーは以下。値は接続環境によって異なる様子で、今試してる環境 win7 -> NAT(DWR-PGでbmobile) -> インターネット -> NAT(AtermWR9500N) -> linux(centos6) で2で接続できることを確認。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\PolicyAgent]
"AssumeUDPEncapsulationContextOnSendRule"=dword:00000002