Назад | Перейти на главную страницу

Windows Server 2019 Virtual NAT - виртуальные машины не имеют доступа к Интернету

У нас есть 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, хотя мы должны правильно его настроить ...