web-dev-qa-db-ja.com

Windows7の永続的なルートとVPN接続の問題

私の自宅のPCは私のオフィスにVPN接続しています。オフィスネットワークはファイアウォールで保護されており、192.168.0。*にはセキュアゾーンがあり、10.0.0。*にはDMZ

外部から、www.mycompany.comはパブリックIPにルーティングします-たとえば1.2.3.4。私たちのファイアウォールはそれを10.0.0.4にNATします。独自のファイアウォールのパブリックインターフェイスにルーティングできないため、オフィスLAN内からドメインコントローラーのDNSレコードを使用してwww.mycompany.comを10.0.0.4に直接解決します。

自宅からVPNに接続すると、DHCP経由で192.168.0。* IPが割り当てられますが、デフォルトゲートウェイとしてVPNを使用していないため、手動でないと10.0.0。*アドレスにルーティングできません。ルートを追加します。

安全なファイアウォールゾーンのデフォルトゲートウェイを介して10.0.0。*サブネットのトラフィックを渡すための永続的なルートを作成しました。

route add -p 10.0.0.0 mask 255.255.255.0 192.168.0.1

これが問題です。再起動しても、ルートはルーティングテーブルに表示されます-問題ありません。その後、VPNに接続すると、ルートは表示されますが、機能しません。10.0.0.0サブネット上の何にもルーティングできません。しかし、VPNが接続された後でルートを削除してから再度追加すると、正常に機能します。

なぜそうなのか私にはわかりません。前後の構成は同一です-同じIP、同じルートテーブル-しかし、ルートを作成してから接続すると、失敗します。 VPNに接続してからルートを作成すると、成功します。

構成を安定させる方法、またはVPN接続時にルートを自動的に作成する方法に関するヒントをお探しですか?

6
Dylan Beattie

正直なところ、これが正しく機能しない理由についてはいくつかのビットがあります。しかし、今はそれをスキップしましょう。

IPアドレスに任意のルートを追加するのではなく、「インターフェース」を指定してルートを追加してみてください。

つまり、次の場合にVPNに接続している場合:

route print

リストで「インターフェース」を探します。VPNインターフェースに番号が割り当てられているはずです。

 19 ... 00 0e 2e 65 ca 61 ...... Realtek RTL8139/810xファミリファストイーサネットNIC 
 12 ... 00 26 55 44 95 3c ..... .. BroadcomNetXtremeギガビットイーサネット
 28 ... 00 00 00 00 00 00 ...... MyVPNインターフェイスシンジー
 1 ................ .. ...........ソフトウェアループバックインターフェイス1 
 13 ... 00 00 00 00 00 00 00 e0 MicrosoftISATAPアダプター
 11 ... 00 00 00 00 00 00 00 e0 MicrosoftTeredoトンネリングアダプタ

私の例では...#28は私のVPNです。したがって、ルートを追加するときは...次のようにします。

route add -p 10.0.0.0 mask 255.255.255.0 192.168.0.1 if 28

これがすべきあなたのために行うことは、ルートを追加することです...そのインターフェースがアップしているときだけです。それはまだ「永続ルート」にあります...しかし、そのインターフェイスがアップするまで実際にはルーティングテーブルに追加されません...そしてインターフェイスがダウンすると再び削除されます。

6
TheCompWiz

複数のVPNがある場合、ランダムな順序で接続すると、インターフェイスIDが変更されるという問題が発生する可能性があります。その場合、通常のROUTE -P ADD 10.0.0.0 MASK 255.255.0.0 10.0.0.1 IF 42 動作しません。次回VPNに接続するときは、インターフェイス番号が異なる可能性があります。

Powershellには、VPN接続にルートを追加し、VPNが切断されたときにルートを再度削除するコマンドレットがあります: Add-VpnConnectionRoute 。インターフェイスIDを指定しなくても機能します。

基本的な構文は次のとおりです。

Add-VpnConnectionRoute -ConnectionName "VPN Connection Name" -DestinationPrefix 10.0.0.0/16

このコマンドを入力すると、VPNの接続/切断時にルートが自動的に作成/削除されます。

4
ErikvO