Добрый день.
Есть несколько групп виртуальных машин, например, группа 1 - веб сервер, база данных, брокер сообщений; группа 2 - балансировщик, несколько веб серверов, база данных.
Все виртуальные машины подключаются к мосту Open vSwitch и получают IP из хост сети 192.168.1.0/24.
Хочу сделать чтобы каждая из групп находилась в своей изолированной виртуальной локальной сети и ничего не знала о других группах, но внутри своей группы могли общаться; машины в группах получали адреса по DHCP из своей подсети (например, 192.168.2.0/24 - группа 1, а 192.168.3.0/24 - группа 2); при необходимости машину можно было вывести в хост сеть (например, балансировщик или веб сервер) и обращаться к нему. Возможно ли это сделать и как?
Да, это можно реализовать, создав изолированные виртуальные сети (VLAN) для каждой группы виртуальных машин. Open vSwitch (OVS) и DHCP-сервер помогут организовать такие.
1.Создание виртуальных сетей (VLAN) для изоляции групп:
•Задайте каждой группе свой VLAN. Например, для группы 1 — VLAN ID 10, для группы 2 — VLAN ID 20.
•В OVS настройте порты, к которым подключены виртуальные машины, чтобы они работали в соответствующих VLAN.
Пример команды для добавления порта к VLAN 10:
ovs-vsctl set port <имя_порта> tag=10
2.Настройка IP-адресов и DHCP:
•Для каждой VLAN-сети создайте свой интерфейс в OVS и настройте его в соответствующем диапазоне IP-адресов.
•Поднимите отдельный DHCP-сервер для каждой группы, чтобы виртуальные машины получали IP-адреса из своей подсети.
Если, например, группа 1 использует подсеть 192.168.2.0/24, настройте DHCP-сервер для этой сети, чтобы выдавать IP-адреса только из диапазона 192.168.2.x.
3.Маршрутизация и доступ к хост-сети:
•Для виртуальных машин, которые нужно вывести в хост-сеть (например, балансировщик), создайте отдельный виртуальный интерфейс, который подключите к хостовой сети без привязки к VLAN.
•Настройте NAT или соответствующие маршруты на уровне OVS или основного хоста, чтобы изолированные сети имели доступ к хост-сети только для определенных машин, при этом оставаясь изолированными друг от друга.
4.Проверка конфигурации:
•Убедитесь, что каждая виртуальная машина может «видеть» только свою VLAN и получает IP по DHCP из нужного диапазона.
•Проверьте, что маршрутизация работает для тех машин, которым требуется доступ в хост-сеть.
Эта конфигурация обеспечит изоляцию и управляемость сетевого окружения между группами виртуальных машин.
abu_dincher, спасибо за очень подробный ответ, но не очень понятно по п. 3. Мне нужно чтобы ВМ была доступна из хост сети и из vlan так например балансировщик будет обслуживать сервера которые во vlan сети. В итоге хочу получить сеть как в OpenStack
Настроить влан на портах коммутатора open vswitch легко. Сложнее сделать хост порт, тут можно сервер потерять и нужен будет удаленный доступ. Тут лучше поэкспериментировать сначала на сервере, который рядом в доступе.
А точно нужен именно опенвсвич?) его дебажить то ещё удовольствие