Добавление NAT-сети
Хотя, в настройках HYPER-V нет отдельного адаптера типа “NAT” - возможно добавить трансляцию адресов с использованием PowerShell.
В первую очередь это может потребоваться, если мы хотим транслировать запросы из внутренней сети (адаптеры Internal) в Интернет через NAT вместо того, чтобы пользоваться общим интернет-доступом (ICS).
Далее все команды выполняются на хостовой системе.
Сначала создадим свитч HYPER-V типа internal.
New-VMSwitch -SwitchName "SwitchName" -SwitchType Internal
Узнаем и отмечаем индекс интерфейса, который мы создали, выполнив команду
Get-NetAdapter
Теперь присвоим ему адрес, использовав индекс
New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceIndex 24
Если по каким-либо причинам мы получим сообщение о том, что адрес уже существует и его использовать нельзя, но, при этом, в реальности никаким адаптерам он не назначен, то можно его удалить.
Remove-NetIPAddress -IPAddress '192.168.0.1'
Теперь создаем NAT-сеть c в том же адресном пространстве
New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.0.0/24
После создания сети - прописываем в гостевых системах любой адрес из выбранного диапазона, а в качестве шлюза по умолчанию - адрес хостового адаптера.
Можно ограничивать доступ для виртуальной машины при помощи ACL
Пример запрета SSH порта для виртуальной машины, имеющей доступ через NAT:
Add-VMNetworkAdapterExtendedAcl -VMName "UbuntuWS" -Action Deny -Direction Outbound -RemotePort "22" -Protocol "TCP" -Weight 100
Правила с большим weight обрабатываются раньне, чем правила с меньшим, т.е. explicit deny нужно писать с weight “1”.
Пример explicit deny для исходящего трафика
Add-VMNetworkAdapterExtendedAcl -VMName "UbuntuWS" -Action Deny -Direction Outbound -Weight 1
Пример разрешающего правила с указанием конкретного хоста
Add-VMNetworkAdapterExtendedAcl -VMName "UbuntuWS" -Action Allow -Direction Outbound -RemotePort "22" -Protocol "TCP" -RemoteIPAddress 192.168.244.3 -Weight 140
Удалить данное правило можно следующей командой:
Remove-VMNetworkAdapterExtendedAcl -VMName "UbuntuWS" -Direction Outbound -Weight 100