Clientによるルーティングテーブルの書き換えが完了しない(Windows)
Posted: Fri Jan 06, 2017 8:03 am
以下が現在の構成です。
1. SoftEther VPN Server (Ver 4.22, Build 9634)
VPSで運用,グローバルIPアドレスあり(例:42.124.126.11)
仮想HUB1: NET_HUB, 仮想NAT/DHCPサーバ有効(192.168.100.0/24)
仮想HUB2: BRIDGE_HUB, SecureNAT無効
2. SoftEther VPN Bridge (Ver 4.22, Build 9634)
192.168.10.0/24空間に配置
192.168.10.1が物理的ルータ・デフォルトゲートウェイ・DHCPサーバ
外側は更に172.16.0.0/24のプライベート空間で、さらに外側がインターネット
BRIDGE_HUBにカスケード接続、ローカルブリッジあり
3. SoftEther VPN Client (Ver 4.22, Build 9634) @ Windows10
10.0.0.0/24のプライベート空間で、外側がインターネット
デフォルトゲートウェイは10.0.0.1、Clientは10.0.0.2
アカウント1: User@NET_HUB
アカウント2: User@BRIDGE_HUB
この場合、User@NET_HUBはSecureNATからDHCPによりIPアドレスを配布され、
User@BRIDGE_HUBは192.168.10.1からDHCPによりIPアドレスを配布されます。
当方で発生している問題点は、Clientがルーティングテーブルの書き換えを正常に行えていない(PCがある)ことです。
例えば正常に接続が完了した場合、User@NET_HUBは192.168.100.10などを受け取りその旨を表示するはずですが、「VPN内で使用するIPアドレスを決定中…」のままとなってしまいます。ここでルーティングテーブルを見ると、
宛先 ネットマスク ゲートウェイ インターフェイス メトリック
0.0.0.0 0.0.0.0 10.0.0.1 10.0.0.2 40
0.0.0.0 0.0.0.0 192.168.100.1 192.168.100.10 2
42.124.126.11 255.255.255.255 192.168.100.1 192.168.100.10 2
(以下略)
となっています。つまり、IPアドレスを受け取れているのに途中で処理が止まっているようなのです。
このままでは、VPN経由で外へ通信しようとしても行き止まりになってしまって結局10.0.0.1経由の通信となってしまいます。
正常な場合は以下のようになると認識していますし、メーカー・機種・ウイルス対策ソフトに至るまで同等の他のPCにおいてはこのように動作しています。
宛先 ネットマスク ゲートウェイ インターフェイス メトリック
0.0.0.0 0.0.0.0 192.168.100.1 192.168.100.10 2
42.124.126.11 255.255.255.255 10.0.0.1 10.0.0.2 2
(以下略)
すなわち、Serverに向かうときのみ本来のゲートウェイを通過し、その他の通信は全て仮想LANカードを通過する、というテーブルになっています。
User@BRIDGE_HUBから192.168.10.0/24空間に出ようとしても全く同じ現象が起きてしまい、Bridgeを介した通信ができません。
本現象はPCの個体差のみにより発生し、アカウントを変更しても再インストールしてもサーバーをリセットして環境を作り直してもルーティングテーブルの調整処理のチェックボックスをどうしようともSoftEtherのバージョンを変更しようとも全く改善されません。
仕方ないので毎度コマンドプロンプトに以下のコマンドをコピペしての接続と切断を余儀なくされていますが、非常に不便です。
【接続時】
for /F "tokens=3" %f in ('route print -4 ^| findstr "\<0\.0\.0\.0\> * \<0\.0\.0\.0\>"') do set dgw=%f
"C:\Program Files\SoftEther VPN Client\vpncmd_x64.exe" localhost /CLIENT /CMD AccountConnect "Internet thru VPN"
set svr=42.124.126.11
route ADD %svr% MASK 255.255.255.255 %dgw%
route DELETE 0.0.0.0 MASK 0.0.0.0 %dgw%
【切断時】
"C:\Program Files\SoftEther VPN Client\vpncmd_x64.exe" localhost /CLIENT /CMD AccountDisconnect "Internet thru VPN"
route DELETE %svr%
route ADD 0.0.0.0 MASK 0.0.0.0 %dgw%
どなたか解決法に心当たりはありませんでしょうか?
1. SoftEther VPN Server (Ver 4.22, Build 9634)
VPSで運用,グローバルIPアドレスあり(例:42.124.126.11)
仮想HUB1: NET_HUB, 仮想NAT/DHCPサーバ有効(192.168.100.0/24)
仮想HUB2: BRIDGE_HUB, SecureNAT無効
2. SoftEther VPN Bridge (Ver 4.22, Build 9634)
192.168.10.0/24空間に配置
192.168.10.1が物理的ルータ・デフォルトゲートウェイ・DHCPサーバ
外側は更に172.16.0.0/24のプライベート空間で、さらに外側がインターネット
BRIDGE_HUBにカスケード接続、ローカルブリッジあり
3. SoftEther VPN Client (Ver 4.22, Build 9634) @ Windows10
10.0.0.0/24のプライベート空間で、外側がインターネット
デフォルトゲートウェイは10.0.0.1、Clientは10.0.0.2
アカウント1: User@NET_HUB
アカウント2: User@BRIDGE_HUB
この場合、User@NET_HUBはSecureNATからDHCPによりIPアドレスを配布され、
User@BRIDGE_HUBは192.168.10.1からDHCPによりIPアドレスを配布されます。
当方で発生している問題点は、Clientがルーティングテーブルの書き換えを正常に行えていない(PCがある)ことです。
例えば正常に接続が完了した場合、User@NET_HUBは192.168.100.10などを受け取りその旨を表示するはずですが、「VPN内で使用するIPアドレスを決定中…」のままとなってしまいます。ここでルーティングテーブルを見ると、
宛先 ネットマスク ゲートウェイ インターフェイス メトリック
0.0.0.0 0.0.0.0 10.0.0.1 10.0.0.2 40
0.0.0.0 0.0.0.0 192.168.100.1 192.168.100.10 2
42.124.126.11 255.255.255.255 192.168.100.1 192.168.100.10 2
(以下略)
となっています。つまり、IPアドレスを受け取れているのに途中で処理が止まっているようなのです。
このままでは、VPN経由で外へ通信しようとしても行き止まりになってしまって結局10.0.0.1経由の通信となってしまいます。
正常な場合は以下のようになると認識していますし、メーカー・機種・ウイルス対策ソフトに至るまで同等の他のPCにおいてはこのように動作しています。
宛先 ネットマスク ゲートウェイ インターフェイス メトリック
0.0.0.0 0.0.0.0 192.168.100.1 192.168.100.10 2
42.124.126.11 255.255.255.255 10.0.0.1 10.0.0.2 2
(以下略)
すなわち、Serverに向かうときのみ本来のゲートウェイを通過し、その他の通信は全て仮想LANカードを通過する、というテーブルになっています。
User@BRIDGE_HUBから192.168.10.0/24空間に出ようとしても全く同じ現象が起きてしまい、Bridgeを介した通信ができません。
本現象はPCの個体差のみにより発生し、アカウントを変更しても再インストールしてもサーバーをリセットして環境を作り直してもルーティングテーブルの調整処理のチェックボックスをどうしようともSoftEtherのバージョンを変更しようとも全く改善されません。
仕方ないので毎度コマンドプロンプトに以下のコマンドをコピペしての接続と切断を余儀なくされていますが、非常に不便です。
【接続時】
for /F "tokens=3" %f in ('route print -4 ^| findstr "\<0\.0\.0\.0\> * \<0\.0\.0\.0\>"') do set dgw=%f
"C:\Program Files\SoftEther VPN Client\vpncmd_x64.exe" localhost /CLIENT /CMD AccountConnect "Internet thru VPN"
set svr=42.124.126.11
route ADD %svr% MASK 255.255.255.255 %dgw%
route DELETE 0.0.0.0 MASK 0.0.0.0 %dgw%
【切断時】
"C:\Program Files\SoftEther VPN Client\vpncmd_x64.exe" localhost /CLIENT /CMD AccountDisconnect "Internet thru VPN"
route DELETE %svr%
route ADD 0.0.0.0 MASK 0.0.0.0 %dgw%
どなたか解決法に心当たりはありませんでしょうか?