Сетевые настройки кластера
В VMmanager существует три типа сетевых настроек кластера: "Коммутация", "Маршрутизация" и "IP-fabric". Они отличаются порядком назначения IP-адресов виртуальным машинам и топологией построения сетей.
Тип настройки "Коммутация"
Логика работы
Для кластера выделяется пул, объединяющий блоки IP-адресов из физических сетей. IP-адресами из этого пула вы можете управлять в разделе Сети. Для такого типа настройки доступна миграция виртуальных машин (ВМ) между узлами кластера.
Пример сетевых настроек
Для кластера выделен пул IP-адресов 192.168.10.0/24. VMmanager выдаёт адреса из этого пула для ВМ на узлах кластера.
Схема работы
Тип настройки "Маршрутизация"
Логика работы
Обратите внимание!
Используйте этот тип настройки, если узлы кластера находятся в дата-центрах Hetzner или OVH.
Узлу кластера в дата-центре назначается основной IP-адрес и выделяется подсеть дополнительных IP-адресов. ВМ на этом узле могут быть присвоены адреса только из выделенной подсети. При подключении узла в VMmanager указывается диапазон допустимых IP-адресов для ВМ. При создании ВМ на этом узле ей присваивается первый свободный адрес диапазона. Управлять IP-адресами вы можете в карточке узла: Узлы → имя узла → IP-адреса.
Маршрутизация ВМ осуществляется через виртуальные интерфейсы vnet и интерфейс сетевого моста vmbr0. Такой способ маршрутизации подсетей не позволяет осуществлять миграцию ВМ на другие узлы кластера.
На сетевом оборудовании дата-центра включена функция Port Security. Эта функция блокирует отправку кадров Ethernet, если MAC-адрес отправителя не указан как разрешённый. Так как ВМ на основе виртуализации KVM имеет отдельный MAC-адрес, кадры от ВМ будут заблокированы на сетевом оборудовании. Чтобы избежать этого, VMmanager изменяет сетевые настройки узла. После этого в кадрах от ВМ MAC-адрес источника будет заменяться на MAC-адрес сетевого интерфейса узла кластера.
Пример сетевых настроек
Серверу выделен основной IP-адрес 123.45.12.48 и подсеть адресов 203.0.113.40/29. Так как IP-адреса подсети будут использоваться в качестве дополнительных, ВМ можно назначить все адреса этой подсети: 203.0.113.40, 203.0.113.41, ..., 203.0.113.47. В качестве шлюза для подсети используется основной IP-адрес сервера на сетевом интерфейсе eno1.
Схема работы
Настройка IPv6 на узлах кластера в дата-центрах Hetzner и OVH
Для настройки IPv6-маршрутизации добавьте на узел кластера IPv6-адрес: Узлы → имя узла → IP-адреса → IPv6 → Добавить IP-адрес. Для корректной работы IPv6-сети укажите адрес ::2 и длину префикса 64. Например, 2a01:4f8:13b:9a7::2/64. VMmanager проведёт автоматическую настройку сети на этом узле.
Если маршрутизация с сетью провайдера отсутствует, вы можете включить проксирование IPv6 через протокол NDP:
NDP используется для multicast-проксирования ICMP6-запросов типа neighbor discovery (ND). Если IPv6-сеть у провайдера смаршрутизирована on-link, то на физический интерфейс узла кластера будет приходить multicast-запрос ND (аналог ARP-запроса в IPv4). Проксирование позволяет пересылать ND-запросы в бридж vmbr0, а ответы — обратно на физический интерфейс.
- Подключитесь к узлу кластера по SSH.
Установите сервис ndppd:
dnf install ndppd
CODEСоздайте конфигурационный файл /etc/ndppd.conf:
Пример конфигурационного файла
proxy enp3s0f0 { rule 2a01:4f8:13b:9a7::/64 { iface vmbr0 } }
CODEПоясненияenp3s0f0 — сетевой интерфейс для проксирования
2a01:4f8:13b:9a7::/64 — подсеть IPv6
vmbr0 — интерфейс бриджа на узле кластера
Добавьте правило для шлюза по умолчанию:
ip -6 neigh add proxy <address> dev vmbr0
CODEПояснения к команде<address> — IPv6-адрес узла кластера. Например, 2a01:4f8:13b:9a7::2
Тип настройки "IP-fabric"
Логика работы
Тип настройки "IP-fabric" позволяет создавать виртуальные машины с публичными IP-адресами в приватной сети. Для кластера выделяется пул, объединяющий блоки IP-адресов из физических сетей. IP-адресами из этого пула вы можете управлять в разделе Сети. Для такого типа настройки доступна миграция ВМ между узлами кластера.
Создание кластера "IP-fabric" возможно только в сети, поддерживающей маршрутизацию по протоколу iBGP. Передачу информации о маршрутах iBGP выполняет оборудование Route Reflector. В качестве такого оборудования могут использоваться физические или виртуальные маршрутизаторы и/или серверы. При создании кластера добавьте адреса его узлов и номера автономных систем BGP в конфигурацию Route Reflector.
Обратите внимание!
Такой тип настройки возможен только на узлах KVM-кластера с ОС AlmaLinux 8 и LXD-кластера с ОС Ubuntu 20.
При создании кластера вы указываете:
- IP-адрес шлюза для ВМ. VMmanager будет присваивать этот адрес всем виртуальным интерфейсам на узле кластера и использовать его только для маршрутизации ВМ внутри узла. В качестве IP вы можете указать любой адрес, который не будет совпадать с адресами, использующимися на узле кластера.
- BGP-комьюнити.
- IP-адреса и номера автономных систем оборудования Route Reflector.
VMmanager при получении задачи на создание ВМ в кластере "IP-fabric":
Создаёт на узле кластера виртуальный интерфейс <vmname>_net0.
Пояснения<vmname> — имя ВМ. Например, для ВМ с именем vm12, интерфейс будет называться vm12_net0.
- Создаёт ВМ с IP-адресом из выделенного пула и сетевой маской 255.255.255.255 (/32).
Устанавливает в качестве шлюза для ВМ IP-адрес виртуального интерфейса <vmname>_net0. Маршрутизация между ВМ и шлюзом осуществляется через соединение "точка-точка" (PtP).
- Через сервис FRR передаёт информацию о созданном маршруте на оборудование Route Reflector.
Пример сетевых настроек
Для кластера выделен пул публичных IP-адресов 198.51.100.0/24. VMmanager выдаёт адреса из этого пула для ВМ на узлах кластера. Имена созданных ВМ — vm1, vm2, vm3 и т.д. В качестве шлюза используются интерфейсы vm1_net0, vm2_net0, vm3_net0 и т.д. с IP-адресами 10.0.0.1. Внешние интерфейсы узлов кластера имеют приватные IP-адреса в сети 172.16.0.0/24.
Схема работы
route — передача информация о сетевых маршрутах
Node 1, Node 2 — узлы кластера
vm1, vm2, vm3... — виртуальные машины
vm1_net0, vm2_net0... — виртуальные сетевые интерфейсы
eno1 — внешний сетевой интерфейс узла кластера
data center core — оборудование, обеспечивающее доступ во внешнюю сеть (интернет)
FRR — сервис на узле кластера, реализующий работу протокола iBGP
CORE — ядро подсистемы LInux
route reflector — сервер или сетевое оборудование, принимающее информацию о маршрутах от узлов и передающее её в data center core
backup route reflector — резервный комплект оборудования Route Reflector