У нас есть Win Server 2019 (версия 1809, сборка ОС 17763.1282) с Hyper-V. Мы хотим запустить несколько виртуальных машин Ubuntu с использованием внутреннего NAT, поэтому нам не нужны отдельные внешние IP-адреса для каждой виртуальной машины. Шаги, которые мы используем, - это те, которые мы видели много примеров в Интернете:
New-VMSwitch –SwitchName "NATSwitch" –SwitchType Internal
Get-NetAdapter (to lookup the index of the new "vEthernet (NATSwitch)" - which is 24)
New-NetIPAddress –IPAddress 14.0.0.1 -PrefixLength 24 -InterfaceIndex 24
New-NetNat –Name NATNetwork –InternalIPInterfaceAddressPrefix 14.0.0.0/24
Мы устанавливаем свойства сетевого подключения виртуальной машины для использования NATSwitch, а затем настраиваем виртуальную машину на статические адреса - 14.0.0.1 для шлюза и 14.0.0.2 для самой виртуальной машины. например: /etc/netplan/00-installer-config.yaml выглядит так: -
network:
version: 2
ethernets:
eth0:
addresses:
- 14.0.0.2/24
gateway4: 14.0.0.1
nameservers:
addresses: [14.0.0.1]
Итак, на виртуальной машине ip route говорит:
default via 14.0.0.1 dev eth0 proto static
14.0.0.0/24 dev eth0 proto kernel scope link src 14.0.0.2
а ip a включает:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:1a:84:01 brd ff:ff:ff:ff:ff:ff
inet 14.0.0.2/24 brd 14.0.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe1a:8401/64 scope link
valid_lft forever preferred_lft forever
После загрузки виртуальной машины из Hyper-V я могу успешно подключиться к 14.0.0.2 по SSH с помощью Putty, но виртуальная машина не имеет доступа к Интернету и не может проверить связь с 14.0.0.1. Таким образом, похоже, что NAT ничего не делает для соединения сети 14.0.0.x с основным сетевым адаптером на сервере (который, конечно, имеет доступ в Интернет). С сервера 2019 я могу пинговать как 14.0.0.1 (сам = шлюз), так и 14.0.0.2 (виртуальная машина).
Мы можем заставить вещи работать с внешним адресом в нашей сети, создав «внешний коммутатор» в Hyper-V, подключившись к нему и используя DHCP для получения IP-адреса от нашего контроллера домена для MAC-адреса виртуальной машины - но мы бы предпочли не назначать внешние IP-адреса всем виртуальным машинам.
Есть ли у кого-нибудь идеи, что нам не хватает?
Ответ заключался в том, что изначально настройки брандмауэра в нашей настройке Windows Server 2019 в «гостевых или общедоступных сетях» не позволяли хосту подключаться к любой из виртуальных машин по ssh. Отключение брандмауэра в этой сети включило ssh, хотя мы должны правильно его настроить ...