Ситуация: Локальная сеть 192.168.0.0/16 разделена на множество подсетей, и маршрутизаторы установлены. Виртуальная машина Hyper-V, размещенная в подсети 192.168.X.0/24, была поставлена задача ограничить доступ к этой виртуальной машине со всех хостов, кроме заданного списка, который содержит IP-адреса из подсетей 192.168.Y.0/24, где Y отличается от X, а сетевой доступ к подсети 192.168.Y.0/24 маршрутизируется. Конфигурация сети виртуальной машины выглядит следующим образом:
IPv4 Address: 192.168.X.10
Subnet mask: 255.255.255.0
Default gateway: 192.168.X.1
Поэтому я вношу следующие изменения в ACL порта Hyper-V:
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
показал "Destination host unreachable" от VM, также ping VM с этого хоста вернул то же самое. С другой стороны, если я добавлю запись ACL к 192.168.X.Z
той же VM, изменение позволит VM видеть хост без проблем.
решение1
Решением было добавить запись ACL для шлюза виртуальной машины по умолчанию или, в случае пользовательского маршрута к подсети 192.168.Y, IP-адрес назначения маршрута, чтобы разрешить маршрутизацию пакетов на удаленный хост.
Add-VMNetworkAdapterAcl -vm $vm -RemoteIPAddress 192.168.X.1 -action allow -direction both
К сожалению, об этом не упоминается ни в одном руководстве по настройке списков контроля доступа для Hyper-V, вероятно, из-за того, что локальные сети в этих руководствах максимально просты и не содержат маршрутизируемых сегментов.