Proxmox настройка сети (bond, trunk, VLANs)
По работе пришлось столкнуться с системой виртуализации ProxmoxPVE. Дело для меня новое, незнакомое. Будем знакомиться.)
Итак, есть задача развернуть Proxmox(если всё пойдёт хорошо, не один) и потестировать работу ВМ(виртуальных машин) на нем.
Сама установка вызвать трудностей не должна. С первыми трудностями я столкнулся при настройках сети. Дело в том, что на хосте планируется разместить ВМ, которые будут подключены к разным сетям. Соответственно, сетевые карты сервера подключены к транковым портам коммутатора. Также, необходимо использовать объединение сетевых интерфейсов для отказоустойчивости и увеличения пропускной способности. Стоит отметить, что интерфейс управления Proxmox будет находиться в сети с VLAN ID 100, и к этой же сети будут подключаться и ВМ.
Мне известно два варианта настройки: с помощью стандартных средств Linux и с помощью openvswitch.
Первый способ(его я использовал, когда не знал о втором)))
Не буду рассказывать на сколько и каких «граблей» пришлось наступить(с линуксом я знаком очень поверхностно), выложу содержимое файла /etc/network/interfaces. При этой конфигурации всё, вроде как, заработало.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# Создаем объединение физических сетевых интерфейсов auto bond0 iface bond0 inet manual slaves enp4s0f0 enp4s0f1 bond_miimon 100 bond_mode 802.3ad bond_xmit_hash_policy layer2+3 # Добавляем VLAN100 auto bond0.100 iface bond0.100 inet manual vlan-raw-device bond0 # Добавляем VLAN150 auto bond0.150 iface bond0.150 inet manual vlan-raw-device bond0 # Создаем бридж VLAN150(его используем для подключения ВМ к VLAN150) auto vmbr150 iface vmbr150 inet manual address 0.0.0.0 netmask 0.0.0.0 bridge_ports bond0.150 bridge_stp off bridge_fd 0 # Создаем бридж VLAN100(его используем для подключения ВМ к VLAN100. Также он служит для интерфейса управления ноды.) auto vmbr100 iface vmbr100 inet static address 192.168.102.63 netmask 255.255.252.0 gateway 192.168.102.251 bridge_stp off bridge_ports bond0.100 bridge_fd 0 auto vmbr0 iface vmbr0 inet manual bridge_ports bond0 bridge_stp off bridge_fd 0 bridge_vlan_aware yes |
В данном конфиге используются сети с VLAN ID 100 и 150. Если нужно добавить еще какие то, добавляем в файл:
1 2 3 4 |
auto bond0.<VLAN ID> iface bond0.<VLAN ID> inet manual vlan-raw-device bond0 |
и
1 2 3 4 5 6 7 |
auto vmbr<VLAN ID> iface vmbr<VLAN ID> inet manual address 0.0.0.0 netmask 0.0.0.0 bridge_ports bond0.<VLAN ID> bridge_stp off bridge_fd 0 |
После редактирования файла /etc/network/interfaces не забудьте перезапустить службу /etc/init.d/networking restart(иногда нужно и перезагрузить хост).
В веб-интерфейсе это выглядит примерно так(добавлены еще несколько VLAN, которые не указаны в примере):
P.S. После экспериментов выяснилось, что bonde_mode 802.3ad не обеспечивает отказоустойчивость, в связи с чем она была заменена на bond_mode balance-xor
Второй способ заключается в использовании openvswitch.
Для использования этого способа необходимо установить соответствующий пакет, ну и, конечно же, ваше физическое сетевое оборудование должно быть настроено соответствующим образом.
В моем примере на физическом коммутаторе порты настроены в режиме транка, и в качестве native vlan передается vlan, в котором должен находиться управляющий интерфейс самого проксмокса. Ну и, естественно, в транке должны присутствовать vlans, которые планируется использовать на виртуальных машинах.
Итак, после установки проксмокса, нужно установить пакет OVS. Для этого в консоли выполняем команды:
1 |
apt-get install openvswitch-switch |
Перед этим можно закомментировать коммерческий репозиторий proxmox:
открываем файл в редакторе
1 |
nano /etc/apt/sources.list.d/pve-enterprise.list |
и закомментируем строку
После установки пакета удаляем стандартный Linux Bridge:
Все изменения, сделанные в настройках через графический интерфейс, применяются после перезагрузки, так что удаляйте смело.)
Затем создаем уже OVS Bridge:
После этого создаем OVS Bond с использованием только что созданного бриджа и указываем сетевые интерфейсы, которые хотим объединить в Bond.
Режим балансировки у меня указан LACP(требует настройки на физическом коммутаторе), вы можете выбрать другой.
После этого перезагружаете хост и просите сетевого инженера настроить LACP на портах физического коммутатора.
Прочитайте про конвертацию виртуальных машин в proxmox.
столкнулся с почти с такой же задачкой
сделал настройку первым вариантом
пока дальше эксперементирую.
Пока ВМ не получается к интернету.
Что-то уже упускаю.