Proxmox настройка сети (bond, trunk, VLANs)
По работе пришлось столкнуться с системой виртуализации ProxmoxPVE. Дело для меня новое, незнакомое. Будем знакомиться.) Кстати, на сайте есть похожая статья по настройке сети на хосте VMWare Esxi.
Итак, есть задача развернуть 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.
столкнулся с почти с такой же задачкой
сделал настройку первым вариантом
пока дальше эксперементирую.
Пока ВМ не получается к интернету.
Что-то уже упускаю.