一種情況:192.168.0.0/16的本地網路被分割成許多子網,並且有路由器。 Hyper-V 託管虛擬機器位於 192.168.X.0/24 子網路中。該任務的任務是限制除給定清單之外的所有主機對此虛擬機的訪問,該清單包含來自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
從虛擬機器顯示“無法存取目標主機”,從該主機 ping 虛擬機器也返回相同的結果。另一方面,如果我向192.168.X.Z
同一台虛擬機器新增 ACL 條目,則變更允許虛擬機器輕鬆查看主機。
答案1
解決方案是為虛擬機器的預設閘道新增 ACL 條目,或在自訂路由至 192.168.Y 子網路的情況下,新增路由目標的 IP 位址,以允許封包路由到遠端主機。
Add-VMNetworkAdapterAcl -vm $vm -RemoteIPAddress 192.168.X.1 -action allow -direction both
遺憾的是,任何為 Hyper-V 設定 ACL 的教學都沒有提到這一點,可能是因為這些教學中的 LAN 盡可能簡單,且不包含路由段。