route IP_ADDRESS NETMASK net_gateway
をOpenVPN構成ファイルに(ローカルで)追加しているので、サーバーによってプッシュされておらず、完全に正常に機能します。
ただし、構成ファイルからルーティングラインを削除してOpenVPNサーバーに再接続すると、ルーティングテーブルに残ります(Windows7のroute PRINT
(cmd.exe内)による) 。つまり、OpenVPNは以前に生成されたルートを削除しません。
これを防ぐ方法を知りたいのですが。以下にサンプル構成ファイルを追加しました(これはそれほど特別ではありません)。
client
dev tap
proto tcp-client
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
comp-lzo
verb 3
auth-user-pass
route 192.168.1.100 255.255.255.255 net_gateway
Windows 7クライアントマシンは、ARPテーブルまたはルーティングテーブルにIPエントリをキャッシュしている可能性があります。このMicrosoftの記事では、Windows 7でのデフォルトのARP動作の概要を説明しています http://support.Microsoft.com/kb/949589 エントリが保持されるデフォルトの時間も含まれます。この仮説をテストするには、OpenVPNを使用して接続し、切断してからARPテーブルをフラッシュするか、ルーティングテーブルもフラッシュして、ルートがまだ存続するかどうかを確認します。すぐになくなった場合は、Windows7が手動でフラッシュせずにルートを削除するのにかかる時間を確認してください。その場合は、OpenVPNまたはWindows 7パラメーターを介してroute/arpエントリのデフォルトの有効期間を変更する方法を見つけるか、OpenVPNの切断後にクライアントのテーブルをフラッシュする必要があります。
再接続を定義しますか?どのように再接続していますか?
構成でpersist-tun
を使用しています。これは、標準のリロード中にトンネルデバイスが稼働したままであることを意味します。インターフェイスがダウンすることはないため、インターフェイスに関連付けられているルートがなくなることはありません。
persist-tun
そしてVPNサーバー構成ファイルでクライアントにIPをプッシュします。私は自分が世話をしている会社でこの設定をしていて、完璧に機能します。このソリューションの基本的な考え方は、Windowsが切断後にVPNインターフェイスを構成解除し、接続が成功した後に再構成することです。管理者権限や隠された議題は必要ありません。それはただの仕事です。互換性? MacOS以外のすべて。