状況: 192.168.0.0/16 のローカル ネットワークは多数のサブネットに分割され、ルーターが設置されています。Hyper-V でホストされている仮想マシンは、192.168.X.0/24 サブネットにあります。タスクは、指定されたリストを除くすべてのホストからのこの VM へのアクセスを制限することです。このリストには、192.168.Y.0/24 サブネットの IP アドレスが含まれます。ここで、Y は X とは異なり、192.168.Y.0/24 サブネットへのネットワーク アクセスはルーティングされます。VM のネットワークの構成は次のとおりです。
IPv4 Address: 192.168.X.10
Subnet mask: 255.255.255.0
Default gateway: 192.168.X.1
そこで、Hyper-V ポート ACL に対して次の変更を実行します。
Add-VMNetworkAdapterAcl -vm $vm -RemoteIPAddress 192.168.Y.Z -action allow -direction both
Add-VMNetworkAdapterAcl -vm $vm -RemoteIPAddress any -action deny -direction both
驚いたことに、ping 192.168.Y.Z
VM から「宛先ホストに到達できません」と表示され、そのホストから VM に ping を実行しても同じ結果が返されました。一方、192.168.X.Z
同じ VM に ACL エントリを追加すると、変更によって VM が問題なくホストを参照できるようになります。
答え1
解決策は、VM のデフォルト ゲートウェイの ACL エントリを追加するか、192.168.Y サブネットへのカスタム ルートの場合はルートの宛先の IP アドレスを追加して、パケットがリモート ホストにルーティングされるようにすることです。
Add-VMNetworkAdapterAcl -vm $vm -RemoteIPAddress 192.168.X.1 -action allow -direction both
残念ながら、Hyper-V の ACL を構成するためのチュートリアルではこれについて言及されていません。これは、これらのチュートリアルの LAN が可能な限り単純化されており、ルーティングされたセグメントが含まれていないためと考えられます。