VMmanager

IP-fabric

IP-fabric — один из типов настройки сети кластера. Такой тип настройки позволяет создавать виртуальные машины (ВМ) с публичными IP-адресами в приватной сети.

ВМ в кластере IP-fabric получают IPv4-адреса с маской /32 или IPv6-адреса с маской /128. В качестве шлюза по умолчанию для каждой ВМ используется отдельный виртуальный интерфейс. Узлы кластера выполняют функцию маршрутизаторов.

Маршрутизация в кластере осуществляется с использованием протокола iBGP. Передачу информации о маршрутах iBGP выполняет оборудование Route Reflector (RR). В качестве такого оборудования могут использоваться физические или виртуальные маршрутизаторы и/или серверы. Рекомендуем использовать не менее двух комплектов оборудования RR в одном кластере — основного и резервного. 

Для работы IPv4-сети в кластере используйте не менее одного комплекта оборудования RR с IPv4-адресом, для работы IPv6-сети — не менее одного комплекта с IPv6-адресом.

Преимущества использования IP-fabric:

  • снижение объёма служебного трафика;
  • экономия адресного пространства;
  • изоляция трафика ВМ;
  • отсутствие привязки IP-адресов к узлам кластера;
  • возможность оперативной миграции ВМ между узлами кластера.
На узлах кластера IP-fabric не поддерживается создание сетевых мостов (бриджей).

Логика работы

При создании ВМ в кластере IP-fabric:

  1. Платформа VMmanager:
    1. Создаёт отдельный виртуальный интерфейс <vmname>_net0. Например, для ВМ с именем sea_gold, интерфейс будет называться sea_gold_net0. Все виртуальные интерфейсы на узле будут иметь одинаковые IP и MAC-адреса.
    2. Устанавливает IP-адрес созданного интерфейса в качестве шлюза для ВМ. Маршрутизация между ВМ и шлюзом осуществляется через соединение "точка-точка" (PtP).
    3. Добавляет созданный маршрут в конфигурацию сервиса FRR на узле кластера.
  2. Сервис FRR передаёт информацию о созданном маршруте по протоколу iBGP на оборудование RR.
  3. Оборудование RR передаёт информацию о маршруте на оборудование Core Gateway. После этого ВМ становится доступна из внешней сети (интернета).

 

Пример работы кластера IP-fabric

Пояснения к схеме

Порядок настройки

  1. В VMmanager:
    1. Создайте пул IP-адресов для ВМ. Подробнее см. Работа с пулами.
    2. Создайте кластер с типом настройки сети IP-fabric. Подробнее см. Создание кластера. При создании укажите:
      1. IP-адрес шлюза для ВМ. VMmanager будет присваивать этот адрес всем виртуальным интерфейсам на узле кластера и использовать его только для маршрутизации между ВМ на узле. Рекомендуем указать частный IP-адрес (например, 10.0.0.1). Этот адрес не должен использоваться где-либо ещё в локальной сети;
      2. BGP-комьюнити;
      3. IP-адреса и номера автономных систем оборудования RR.
    3. Добавьте узлы в кластер. Подробнее см. Управление серверами кластера

      На узлах кластера IP-fabric с виртуализацией KVM должна быть установлена ОС AlmaLinux 8, с виртуализацией LXD — ОС Ubuntu 20.04.
  2. Настройте BGP-сессии для каждого узла кластера на оборудовании RR: укажите в настройках IP-адреса узлов и номера автономных систем BGP.

Пример настройки

В примере рассматривается настройка IP-fabric в кластере серверов, используемых в качестве гипервизоров. Роль Core Gateway выполняет маршрутизатор Juniper MX. В качестве Route Reflector используются физические серверы с ОС Linux.

Подготовка

Для настройки понадобится следующее оборудование:

  • сервер с платформой VMmanager;
  • один или несколько узлов кластера с установленной ОС AlmaLinux 8 или Ubuntu 20.04;
  • один или два сервера Route Reflector;
  • маршрутизатор Juniper MX.

Перед настройкой:

  1. Получите у провайдера информацию о настройках BGP: номере автономной системы и комьюнити.
  2. Убедитесь, что протокол BGP настроен и функционирует правильно.
  3. Создайте пул IP-адресов для виртуальных машин в VMmanager.

Настройка маршрутизатора Core Gateway

Чтобы настроить "соседство" Core Gateway и Route Reflector:

  1. Добавьте в конфигурацию маршрутизатора новый фильтр:

    set policy-options policy-statement VM term isp-ipv4 from protocol bgp
            set policy-options policy-statement VM term isp-ipv4 from route-filter <filter> orlonger
            set policy-options policy-statement VM term isp-ipv4 then accept
            set policy-options policy-statement VM then reject
            set policy-options policy-statement reject-all then reject
    Пояснения к команде
  2. Добавьте в конфигурацию маршрутизатора новую группу:

    set protocols bgp group VM import VM
            set protocols bgp group VM export reject-all
            set protocols bgp group VM peer-as <as>
            set protocols bgp group VM neighbor <rr_ip>
    Пояснения к команде
  3. Проверьте и примените конфигурацию:

    commit check
    commit confirmed 5
  4. Проверьте, что маршруты BGP получены:

    show bgp group VM detail
  5. Подтвердите изменения в конфигурации:

    commit

Настройка серверов Route Reflector

Чтобы настроить "соседство" между Route Reflector, Core Gateway и узлами кластера, установите и настройте ПО FRRouting (FRR). Вы можете автоматизировать этот процесс с помощью скрипта.

Для установки FRR сервер должен иметь прямой доступ к сети Интернет без использования прокси. При необходимости настройте правила сети так, чтобы подключение к Интернет выполнялось в обход прокси через маршрутизаторы или межсетевые экраны.

Если для Route Reflector используется виртуальная машина под управлением VMmanager, запустите на ней скрипт Route Reflector:

  1. Перейдите в Виртуальные машины → меню Запустить скрипт.
  2. Выберите скрипт Route Reflector и укажите его параметры:
    1. AS — номер автономной системы BGP.
    2. NEIGHBOR — IP-адрес "соседа" — узла кластера VMmanager.
    3. PREFIX — префикс IP-сетей, которые будет принимать Route Reflector.
    4. Поддержка VxLAN — нужно ли передавать информацию о виртуальных сетях (VxLAN).
  3. Нажмите Запустить скрипт.

Если для Route Reflector используется физический сервер:

  1. Создайте файл route_reflector.sh следующего содержания:

    Содержимое файла
  2. Замените макросы в тексте файла:
    1. ($AS) — на номер автономной системы BGP.
    2. ($NEIGHBOR) — на IP-адрес "соседа" — узла кластера VMmanager.
    3. ($PREFIX) — на префикс IP-сетей, которые будет принимать Route Reflector.
    4. ($VXLAN) — на:
      • уеs — если сервис должен передавать информацию о виртуальных сетях (VxLAN);
      • no — если информацию о виртуальных сетях передавать не нужно.
  3. Запустите скрипт: 

    sh route_reflector.sh
При добавлении новых узлов в кластер информацию о них нужно будет добавить в конфигурационный файл FRR. Для этого повторно запустите скрипт с нужными параметрами или внесите изменения вручную в файл /etc/frr/frr.conf.

Настройка VMmanager

Для настройки IP-fabric в VMmanager:

  1. Cоздайте кластер с типом сети IP-Fabric. При создании укажите настройки для соединения с Core Gateway и Route Reflector.
  2. Подключите серверы в созданный кластер.
  3. Создайте ВМ в кластере.