web-dev-qa-db-ja.com

2つのインターフェース間のNATとしてのWindows 10 pro(ホストのVPN接続を介してVMトラフィックをルーティングするため)

Hyper-Vで実行されているVMを搭載したWindows 10 proホストがあります。 VMはホストとのプライベートLAN上にあります。 VMへのインターネット接続を提供したいand VMトラフィックに、ホストで構成されたVPN接続を経由させる。特定のソフトウェアVPN(パルスセキュア)は、vswitchで「ブリッジ可能」なインターフェースを作成しません。

Hyper-V VMは192.168.4.0/24にあり、windows 10ホストには192.168.4.215/24に仮想インターフェイスがあり、これをVMトラフィックのゲートウェイとして使用します。 Windowsホストのルーティングテーブルを使用して、192.168.4.0/24上のVMからのトラフィックをルーティングし、ホストに構成されたVPNインターフェイスを通過したいと思います。

私は通常、VMをLANに配置し、同じLAN上のホストの仮想インターフェイスを作成して、仮想インターフェイスを物理インターフェイス(物理NICまたはワイヤレスNIC)。ただし、この場合、VMトラフィックは、Windowsホストで構成されたソフトウェアVPNをバイパスします。VMトラフィックは、VPN経由でルーティングされることを望みます。ホストアプリケーションがルーティングされます。

VPN接続(パルスセキュア)をアクティブにすると、新しい仮想インターフェイスがホストの10.0.0.100/32に表示され、デフォルトルートがホストのルーティングテーブルに自動的に追加され、デフォルトゲートウェイとして10.0.0.100をポイントします。 。これにより、Windowsホストとそのデスクトップアプリケーションによって生成されたすべての外部トラフィックがvpnインターフェイスを通過します。

すべての着信IPトラフィックを192.168.4.0/24からVPNインターフェースに再ルーティング/転送するようにホストを構成します。通常、一緒に接続するインターフェイスをブリッジしますが、この特定のVPNアダプタは、何にもブリッジすることを拒否します。

Win10 proでこれを達成する方法はありますか、それともWindowsサーバーが必要ですか?この特定のVPNソフトウェアはLinuxで十分にサポートされていないため、これも迷惑です。

2
init_js

HyperV NATインターフェイスを作成することで、Windows 10で何かをうまく動作させることができました。そのためにはWindows 10 proが必要だと思います。Win10ホームにはHyper-V(まだ)。

これはかなりうまくいきました:

https://docs.Microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/setup-nat-network

  1. 上記のリンクの指示に従って、Powershellを使用してNATインターフェイスを作成します。ドキュメントによると、そのようなインターフェイスは1つに制限されているようですが、私のコンピューターには現在2つのアクティブなvNATインターフェイスがあります。1つ私は自分で作成し、DockerNATと呼ばれるDocker for Windowsを作成しました。この手順により、新しいvSwitchが提供され、ホストにIPが割り当てられます。
  2. Hyper-Vで、VMの設定を編集して、手順1で作成したNATスイッチインターフェイスに接続された新しいネットワークインターフェイスを追加します。
  3. VMで、NATサブネット上の静的IPを新しいNICに割り当てます(例:ip addr add dev ethX 192.168.0.100/24)、およびデフォルトゲートウェイをvSwitch IPになるように構成します。 (route add default gw 192.168.0.1 ethX
  4. ネームサーバーを/etc/resolv.conf(e.g. echo "nameserver 8.8.8.8" >> /etc/network/interfaces

NATインターフェイスを使用することの効果は、VM NAT vSwitchを使用して、ゲートウェイIP(192.168.0.1(私の例では)、Windowsホストのルーティングテーブルを使用して内部的に再ルーティングされます。したがって、VPNをオンにすると、すべてのNattedトラフィックもVPNに再ルーティングされます。

VMホストから直接アクセスしたい場合が多くあります。NATを使用すると、すべてが192.168.0.1)。一連の動的ポート転送(Powershellでも可能)を実行するのではなく、ホストとVMの間にNAtされていない別の内部ネットワークを作成しました(例:192.168.5.0/24)。

1
init_js