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

Как достичь сети только для хоста и Интернета в хосте Debian и гостевой системе Windows Server с помощью KVM / QEMU?

У меня есть физический / выделенный сервер, на котором работает Debian 9 (Stretch). У сервера достаточно ресурсов для поддержки собственной нагрузки и нагрузки некоторых виртуальных машин (в этом вопросе: Windows Server 2016 Standard edition).

Чтобы упростить этот вопрос, я буду использовать Хост Debian для ссылки на физический / выделенный сервер, на котором работает Debian 9 (Stretch), и ВМ Windows для обозначения (в настоящее время не реализованной) виртуальной машины Windows Server 2016 Standard edition, которая работает на Хост Debian.

Хост Debian использует KVM / QEMU / virsh для обеспечения возможности виртуализации и ее конфигурации. На хосте Debian в настоящее время не настроены никакие виртуальные машины (или сети). На хосте Debian есть только одна физическая сетевая карта (NIC), которая сопоставлена ​​с сетевым интерфейсом. eth0. Сам хост Debian предоставляет различные услуги, которые также должен предоставлять хост Debian при размещении дополнительных виртуальных машин.

Хост Debian должен (в рамках этого вопроса) размещать одну виртуальную машину Windows. Хост Debian и его службы должны иметь доступ к виртуальной машине Windows через частную сеть / адрес IPv4. Виртуальная машина Windows должна иметь доступ к хосту Debian через ту же сеть IPv4 (частный IPv4-адрес хоста Debian). Виртуальная машина Windows должна не быть доступным через общедоступную сеть / адрес IPv4 или IPv6. Виртуальная машина Windows должна иметь доступ к Интернету (исходящие соединения). Виртуальная машина Windows должна не назначить ему общедоступную сеть / адрес IPv4 или IPv6. Прокси-сервер на хосте Debian должен проксировать определенные входящие соединения на частный IPv4-адрес виртуальной машины Windows.

Хост Debian должен также (актуально для этого вопроса) иметь возможность размещать дополнительные виртуальные машины (другие экземпляры Debian). Все виртуальные машины на хосте Debian должны быть изолированы друг от друга. Это означает, что хост Debian может подключаться ко всем виртуальным машинам, все виртуальные машины могут подключаться к хосту Debian и Интернету, но виртуальные машины не могут подключаться друг к другу (напрямую).

Я нашел несколько концепций о сети виртуальных машин. Однако мне не удалось найти решение, соответствующее моим потребностям. Ближайшая (но не совпадающая) концепция, которую я смог найти, была: Мостовая сеть. Таким образом, виртуальная машина Windows будет подключена «к Интернету». Это нежелательно. Другие концепции (NAT, только хост) либо не позволяют Хост -> Гость или Гость -> Интернет доступ.

У меня вопрос: возможна ли моя запланированная сеть с одной виртуальной сетевой картой? Как реализовать такую ​​схему сети с помощью KVM / QEMU на хосте Debian и виртуальной машине Windows?

Из-за сетевых ограничений на стороне хостинг-провайдеров я не могу использовать общедоступный IP-адрес внутри виртуальной машины (фильтры IP-MAC). Также: я не хочу, чтобы виртуальные машины были доступны напрямую из Интернета.

Стандартный «частный» сетевой стек, поставляемый с KVM (dnsmasq), позволяет вам это делать, по умолчанию это частная подсеть 192.168.122.0/24. Весь ваш трафик виртуальной машины выводится с хоста через NAT и выглядит снаружи, как если бы это был общедоступный IP-адрес вашего хоста (как маршрутизатор). Если вы используете virt-manager, вы можете просто перейти к сведениям о хосте и подготовить дополнительные частные сети, а затем присоединить сетевой интерфейс новой виртуальной машины к подсети, которую вы для него определили.