- Записки IT специалиста
- Настраиваем сеть в Proxmox Virtual Environment
- Внешняя сеть
- Внешняя изолированная сеть
- Внутренняя сеть с NAT
- Внутренняя сеть
- Частная сеть
- Организуем службы DNS и DHCP для внутренних сетей
- Настройка сети в Proxmox
- Виды сетевых соединений в Proxmox VE
- Установка OVS в Proxmox VE
- Настройка сети в Proxmox VE
- 1. Настройка bridge
- 2. Настройка bond
- 3. Настройка VLAN
- Выводы
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
- Главная
- Настраиваем сеть в Proxmox Virtual Environment
Настраиваем сеть в Proxmox Virtual Environment
Настройка сетевой конфигурации системы виртуализации — одна из самых главных задач, она же вызывает наибольшие затруднения у начинающих. Поэтому начиная цикл статей о Proxmox мы сразу решили подробно разобрать этот вопрос. Тем более, что официальная документация довольно скупо освещает эту тему и может сложиться впечатление, что Proxmox ограничен в сетевых возможностях по сравнению с другими гипервизорами. Однако это не так, скорее даже наоборот, потому что перед нами открытое ПО и мы можем конфигурировать его именно так, как считаем нужным, даже если этих возможностей не было из коробки.
Если обратиться к официальной документации, то там будет рассказано о двух основных сетевых конфигурациях: с использованием моста и маршрутизации. Приведенные примеры покрывают основные сценарии использования и не углубляются в подробности, но различные комбинации настроек для этих вариантов позволяют реализовывать самые разнообразные сетевые конфигурации. В данном материале мы рассмотрим базовые возможности Proxmox, не касаясь объединения сетевых адаптеров или использования Open vSwitch, потому как это отдельные темы, лежащие за рамками базовой настройки.
Все сетевые параметры настраиваются на уровне ноды, для этого перейдите на нужный сервер и раскройте Система — Сеть. Ниже показан пример нашего тестового сервера, где реализованы все те сетевые конфигурации, о которых мы будем говорить ниже.
Внешняя сеть
Сетевая конфигурация, создаваемая по умолчанию, когда и виртуальные машины, и гипервизор получают прозрачный доступ к вешней сети, подключенной через физический сетевой адаптер. Она же самая часто используемая, так как позволяет организовать простой доступ к виртуальным машинам, как к самым обычным узлам локальной сети.
В основе всех виртуальных сетей в Proxmoх лежит сетевой мост (Linux Bridge) — vmbr, допускается создание до 4095 таких устройств. Сетевой мост может включать в себя как физические, так и виртуальные адаптеры, выполняя для них роль неуправляемого коммутатора. Физическая сетевая карта, подключенная к мосту, не имеет настроек и используется как физический Ehternet-интерфейс для данного виртуального коммутатора. Все сетевые настройки производятся внутри виртуальных машин, которые через мост и физический адаптер прозрачно попадают во внешнюю сеть.
Присвоение интерфейсу моста IP-адреса фактически подключает к виртуальному коммутатору сам хост, т.е. гипервизор, который также прозрачно попадет во внешнюю сеть. Если в Hyper-V для подключения гипервизора к сети на хосте создавался еще один виртуальный сетевой адаптер, то в Proxmox для этого следует назначить IP-адрес интерфейсу моста. Ниже показан пример такой настройки:
В настройках указывается адрес и шлюз, опция автозапуска и привязанный к мосту физический адаптер. Также мы советуем в поле комментарий оставлять осмысленное описание сетевого устройства, чтобы всегда было понятно, что это и зачем.
Фактически это сетевые настройки самого гипервизора. Обратите внимание, что сервера DNS указываются отдельно, в Система — DNS:
Для того, чтобы подключить к такой сети виртуальную машину в настройках ее сетевого адаптера следует выбрать нужный мост (виртуальный коммутатор):
Сетевые настройки виртуальной машины либо задаются вручную, либо могут быть получены от DHCP-сервера внешней сети.
Внешняя изолированная сеть
Данная конфигурация требует минимум двух сетевых адаптеров и предусматривает изоляцию гипервизора от внешней сети и виртуальных машин. Это может быть полезно при виртуализации пограничных устройства, например, шлюза. Либо когда виртуальные машины арендуются третьими лицами, либо находятся вне доверенной сети и доступ к гипервизору оттуда должен быть закрыт.
Для создания изолированной внешней сети нам потребуется создать новый сетевой мост без сетевых настроек и привязать к нему физический адаптер (тоже без настроек), таким образом будет обеспечен доступ виртуальных машин во внешнюю сеть с изоляцией этой сети от гипервизора.
Для доступа к самому гипервизору может быть использован либо другой сетевой адаптер (как показано на нашей схеме), так и созданная по умолчанию внешняя сеть с сетевым мостом. Оба варианта имеют право на жизнь, а во втором случае вы сможете также подключать виртуальные машины к разным виртуальным сетям. Поэтому не следует рассматривать приведенную нами схему как догму, это только один из возможных вариантов и выбран нами в целях упрощения схемы.
Для примера мы подключили к такой сети виртуальную машину, которая тут же получила по DHCP адрес из внешней сети, никак не связанной с гипервизором.
Внутренняя сеть с NAT
Применяется в тех случаях, когда нужно изолировать виртуальные машины в собственной сети, но в тоже время обеспечить им доступ в интернет, а также доступ из внешней сети к некоторым из них (или отдельным сетевым службам). Широко используется в лабораторных сценариях, а также при работе с контейнерами.
Обратите внимание, данная конфигурация не может быть изолирована от хоста, так как именно хост предоставляет ей службу трансляции сетевых адресов (NAT) и выступает шлюзом для виртуальных машин. Для настройки такой сети создайте новый сетевой мост без привязки к физическому адаптеру и назначьте ему IP-адрес из произвольной сети, отличной от внешней.
Все изменения сетевой конфигурации требуют перезагрузки узла гипервизора, поэтому, чтобы не перезагружать узел дважды перейдем в консоль сервера и перейдем в директорию /etc/network, в котором будут присутствовать файлы interfaces — с текущей сетевой конфигурацией и interfaces.new — с новой, которая вступит в силу после перезагрузки.
Откроем именно interfaces.new и внесем в конец следующие строки:
В качестве сети, в нашем случае 192.168.34.0/24, укажите выбранную вами сеть, а вместо интерфейса ens33 укажите тот сетевой интерфейс, который смотрит во внешнюю сеть с доступом в интернет. Если вы используете сетевую конфигурацию по умолчанию, то это будет не физический адаптер, а первый созданный мост vmbr0, как на скриншоте ниже:
Перезагрузим узел и назначим виртуальной машине или контейнеру созданную сеть (vmbr1), также выдадим ей адрес из этой сети, а шлюзом укажем адрес моста.
Не забудьте указать доступный адрес DNS-сервера и убедитесь, что виртуальная машина имеет выход в интернет через NAT.
Внутренняя сеть
Позволяет изолировать виртуальные машины от внешней сети и не предоставляет им доступ в интернет, используется в основном в лабораторных целях, когда в качестве шлюза будет выступать одна из виртуальных машин и обычно сочетается на хосте с одной из сетей, имеющих выход в интернет.
Чтобы получить такую сеть, просто создайте еще один мост без привязки к адаптеру и назначьте ему IP-адрес из любой отличной от используемых сети.
Частная сеть
Разновидность внутренней сети, которая подразумевает изоляцию не только от внешней сети, но и от хоста. Что позволяет получить полностью независимую сеть между виртуальными машинами, может быть полезна в лабораторных условиях, когда нужно смоделировать сеть, адресация которой пересекается с используемыми вами сетями.
Для такой сети просто создайте еще один сетевой мост без каких-либо настроек:
Подобные сети также обычно используются не самостоятельно, а в сочетании с иными типами сетей на хосте.
Организуем службы DNS и DHCP для внутренних сетей
Как вы уже могли заметить все адреса для виртуальных машин во внутренних сетях мы назначали вручную. Но можно это делать автоматически, сняв с себя еще одну заботу, это удобно, особенно в лабораторных и тестовых средах, где виртуальных машин много и назначать им адреса вручную может быть достаточно затруднительно.
В нашем примере мы организуем службы DNS и DHCP для внутренней сети с NAT и просто внутренней сети. Для первой мы должны будет выдавать адрес, шлюз и сервера DNS, для второй просто адрес. Данная конфигурация не является реальной, а создана нами исключительно в учебных целях.
В качестве серверов DNS и DHCP мы будем использовать уже известный нашим читателям пакет dnsmasq, который является простым и легким кеширующим DNS и DHCP-сервером. Установим его:
Затем перейдем в конфигурационный файл /etc/dnsmasq.conf и найдем и приведем к следующему виду параметры:
Здесь мы явно указали интерфейсы и адреса, на которых будет работать наш сервер. С одной стороны, присутствует некоторая избыточность, но лучше так, чем потом, при изменении сетевых настроек в вашей сети неожиданно появится неавторизованный DHCP-сервер.
Затем укажем выдаваемые клиентам диапазоны адресов:
Обратите внимание на формат записи, перед каждой настройкой мы указываем сетевой интерфейс к которой она применяется.
Аналогичным образом зададим нужные DHCP-опции, в нашем случае это Option 3 и 6 (шлюз и DNS-сервер).
Если настройки для моста vmbr1 не вызывают вопросов, то настройки для второй сети следует пояснить. Так как нам нужно передавать ей только IP-адрес и маску, без шлюза и серверов имен, то соответствующие опции следует передать пустыми, иначе будут переданы опции по умолчанию, где в качестве этих узлов будет передан адрес сервера.
Сохраняем конфигурационный файл и перезапускаем службу
После чего в виртуальных машинах, подключенных к внутренним сетям, мы можем установить настройки для получения адреса через DHCP и убедиться, что все работает как надо.
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Источник
Настройка сети в Proxmox
В первую очередь, на сервере виртуализации необходимо настроить сетевые подключения, которые в дальнейшем будут использоваться для доступа виртуальных машин в Интернет, обмена данными друг с другом, при необходимости распределить сети по VLAN. Для этого можно использовать реализованные в ядре Linux функции или установить Open vSwitch. В панели управления Proxmox VE реализован простой и понятный интерфейс управления сетями.
Таким образом, сервер на Proxmox VE можно использовать в качестве ядра виртуальной сети. В этой статье разберемся как выполняется настройка сети Proxmox Ve. Разберем, как настроить виртуальный мост и интерфейс с балансировкой по различным алгоритмам. Proxmox VE позволяет настроить VLAN на базе ядра Linux или Open vSwitch, но это отдельная большая тема, вне рамок обзора возможностей.
Виды сетевых соединений в Proxmox VE
- Linux Bridge — способ соединения двух сегментов Ethernet на канальном уровне, то есть без использования протоколов более высокого уровня, таких как IP. Поскольку передача выполняется на канальном уровне (уровень 2 модели OSI), все протоколы более высокого уровня прозрачно проходят через мост.
- Linux Bond — метод агрегации нескольких сетевых интерфейсов в единый логический bonded интерфейс. Таким образом, bond обеспечивает балансировку нагрузки либо горячий резерв по определённому сценарию.
- Linux VLAN – реализация на ядре Linux виртуальной локальной компьютерной сети.
- OVS Bridge – реализация моста на базе Open vSwitch.
- OVS Bond – реализация балансировки на базе Open vSwitch. Отличается от реализованной в ядре Linux балансировки режимами.
- OVS IntPort — реализация VLAN на базе Open vSwitch.
Установка OVS в Proxmox VE
После установки Proxmox VE доступны сетевые функции ядра Linux. Для того, чтобы использовать функциональность Open vSwitch, необходимо установить его в систему. В программе терминал напишите команды:
sudo apt install openvswitch-switch
После этого нужно перезагрузить компьютер.
Настройка сети в Proxmox VE
После установки всех необходимых пакетов и перезагрузки ОС в WTB-интерфейсе Proxmox VE перейдите в раздел Датацентр, выберите имя гипервизора (на скриншоте PVE). В меню Система найдите раздел Сеть и нажмите кнопку Создать:
1. Настройка bridge
Создание интерфейса bridge для Open vSwitch и для ядра Linux практически ничем не отличаются, за исключением выбора способа создания и возможности указания для OVS Bridge дополнительных ключей Open vSwitch. Если планируется использовать VLAN для сетевого интерфейса, не забудьте указать чек-бокс возле пункта VLAN при создании bridge. Включение чек-бокса Автозапуск позволяет запускать выбранный сетевой интерфейс при загрузке гипервизора:
В общем случае, если сетевой интерфейс bridge создаётся единственный для гипервизора, то нет необходимости перечислять в пункте Порты сетевого моста все имеющиеся сетевые карты. Однако, если существует необходимость на уровне интерфейса разделить подключения к различным каналам связи или сегментам сети, то можно использовать различные комбинации сетевых устройств. На представленном хосте гипервизора их четыре, поэтому можно ввести два из них (перечислением через пробел) в bridge OVS:
Адрес интерфейса можно не указывать, настроенные на подключение к интерфейсу виртуальные машины будут использовать его как обычный свитч. Если же указать адрес IPv4 и/или IPv6, то он будет доступен извне на всех сетевых интерфейсах или на интерфейсах, перечисленных в поле Порты сетевого моста:
2. Настройка bond
Для балансировки нагрузки и объединения нескольких сетевых интерфейсов в один виртуальный, создайте OVS Bond. Это связано с тем, что его возможности шире, чем Linux Bond, а процесс создания практически идентичен. Для создания балансировщика нагрузки нажмите в меню Сеть кнопку Создать и выберите пункт OVS Bond:
В отличие от создания OVS bridge, в параметрах vmbr1 OVS Bond указано в портах сетевого моста bond0 и в пункте OVS Options для тегирования VLAN можно использовать ключ tag=$VLAN, где $VLAN надо заменить на целое числовое значение, в примере это 50:
Режимы балансировки можно установить только при создании интерфейса bond, перечислим их основные характеристики.
Для OVS Bridge:
- Режим Active-Backup использует один из перечисленных сетевых интерфейсов для работы, а остальные находятся в резерве в статусе down, на случай выхода из строя основного интерфейса
- Режимы Balance-slb, LACP (balance-slb), LACP (balance-tcp) подходят для случая, когда вам необходимо расширить полосу пропускания и отказоустойчивость канала, объединив в единый бонд несколько сетевых интерфейсов.
Для Linux Bond:
- Режим balance-rr ядра Linux скорее переназначен для исходящего траффика, чем для входящего. Пакеты отправляются последовательно, начиная с первого доступного интерфейса и заканчивая последним. Применяется для балансировки нагрузки и отказоустойчивости.
- Режим active-backup ничем не отличается от аналогичного режима в OVS. Передача распределяется между сетевыми картами используя формулу: [( «MAC адрес источника» XOR «MAC адрес назначения») по модулю «число интерфейсов»]. Получается одна и та же сетевая карта передаёт пакеты одним и тем же получателям. Режим XOR применяется для балансировки нагрузки и отказоустойчивости.
- Режим агрегирования каналов по стандарту IEEE 802.3ad. Создаются агрегированные группы сетевых карт с одинаковой скоростью и дуплексом. При таком объединении передача задействует все каналы в активной агрегации, согласно стандарту IEEE 802.3ad. Необходимо оборудование гипервизора и активной сетевой части с поддержкой стандарта.
- Режим адаптивной балансировки нагрузки передачи balance-tlb. Исходящий трафик распределяется в зависимости от загруженности каждой сетевой карты (определяется скоростью загрузки). Не требует дополнительной настройки на коммутаторе. Входящий трафик приходит на текущую сетевую карту. Если она выходит из строя, то другая сетевая карта берёт себе MAC адрес вышедшей из строя карты.
- Режим адаптивной балансировки нагрузки Balance-alb. Включает в себя политику balance-tlb, а также осуществляет балансировку входящего трафика. Не требует дополнительной настройки на коммутаторе.
3. Настройка VLAN
В меню Система найдите раздел Сеть и нажмите кнопку Создать и выберите OVS InPort:
Задайте имя интерфейса vlan50 тег VLAN, равный 50, укажите OVS Bridge. VLAN 50 на указанном виртуальном интерфейсе OVS Bridge vmbr1 с тегом 50 создан и может быть использован, например для организации видеонаблюдения. Таким образом, предлагаю настроить дополнительно VLAN30 для IP телефонии и VLAN100 для локальной сети с виртуализированными рабочими местами. Для создания всех VLAN используйте интерфейс vmbr1.
Выводы
В этой статье рассказано как выполняется настройка сети Proxmox VE. Теперь вы знаете про различные сетевые подключения с помощью интерфейса управления сервером. Гибкость решения позволяет использовать Proxmox VE в качестве управляемого и неуправляемого коммутатора, балансировать нагрузку по различным режимам балансировки.
Источник