Hyper-V pozwala utworzyć Virtual Switch typu:
- private – wyizolowana sieć, bez dostępu do sieci hosta
- internal – wewnętrzna wirtualna sieć, do której dostęp może mieć komputer wirtualny, jak i system hosta, co za tym idzie, można udostępnić Internet
- external – maszyna wirtualna „widzi” tę samą sieć, co host
Jeśli chcesz, aby maszyna wirtualna miała dostęp do Internetu, to przez eliminację odpada sieć private. Można by skorzystać z sieci external, ale wtedy jest delikatny problem z adresem IP komputera wirtualnego, bo jest on przyznawany przez DHCP, a możesz preferować jednak stały adres IP. Ewentualne skonfigurowanie statycznego adresu IP na maszynie wirtualnej może doprowadzić do konfliktów, a tego byśmy nie chcieli. I tak zostaje sieć internal.
No to po kolei:
- Otwórz managera Hyper-V i w Virtual Switch Manager utwórz sieć typu internal. Możemy ją nazwać np. InternalSwitch. Można to też zrobić poleceniem PowerShell:
New-VMSwitch -SwitchName "InternalSwitch" -SwitchType Internal
- Na komputerze hosta w PowerShell uruchomionym jako administrator uruchom kolejno polecenia, które skonfigurują tę maszynę do NAT:
- Przypisanie do interfejsu hosta odpowiadającego za komunikację z siecią wewnętrzną stałego adresu IP (tutaj 192.168.0.1). Jeśli nie lubisz PowerShella, można to też wyklikać
New-NetNAT -Name "InternalNAT" -InternalIPInterfaceAddressPrefix "192.168.0.0/24"
- Nadal w Powershell na hoście
- Konfiguracja wewnętrznej sieci do NAT. Tutaj trzeba użyć PowerShella, lub ewentualnie dodać do hosta rolę RRAS (Routing and Remote Access Server), ale to dość dużo pracy w porównaniu do jednej komendy
New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceAlias "vEthernet (InternalSwitch)"
- W ustawieniach maszyny wirtualnej podłącz interfejs sieciowy do sieci internal
- Skonfiguruj maszynę wirtualną ze stałym adresem IP:
- Adres IP – dowolny nieużywany jeszcze adres IP z zakresu 192.168.0.0/24
- Brama domyślna – 192.168.0.1 – czyli ten sam adres IP, co używany na wewnętrznym interfejsie hosta
- DNS – dowolny, np googlowski 8.8.8.8
U mnie działa!