Как создать сеть только для хоста и интернета на хосте 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, Host-only) либо не позволяют Host -> Guest или Guest -> доступ в Интернет.

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

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

1 ответ

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

Другие вопросы по тегам