IP-fabric — один из типов настройки сети кластера. Такой тип настройки позволяет создавать виртуальные машины (ВМ) с публичными IP-адресами в приватной сети.
ВМ в кластере IP-fabric получают IPv4-адреса с маской /32 или IPv6-адреса с маской /128. В качестве шлюза по умолчанию для каждой ВМ используется отдельный виртуальный интерфейс. Узлы кластера выполняют функцию маршрутизаторов.
Маршрутизация в кластере осуществляется с использованием протокола iBGP. Передачу информации о маршрутах iBGP выполняет оборудование Route Reflector (RR). В качестве такого оборудования могут использоваться физические или виртуальные маршрутизаторы и/или серверы. Рекомендуем использовать не менее двух комплектов оборудования RR в одном кластере — основного и резервного.
Преимущества использования IP-fabric:
- снижение объёма служебного трафика;
- экономия адресного пространства;
- изоляция трафика ВМ;
- отсутствие привязки IP-адресов к узлам кластера;
- возможность оперативной миграции ВМ между узлами кластера.
Логика работы
При создании ВМ в кластере IP-fabric:
- Платформа VMmanager:
- Создаёт отдельный виртуальный интерфейс <vmname>_net0. Например, для ВМ с именем sea_gold, интерфейс будет называться sea_gold_net0. Все виртуальные интерфейсы на узле будут иметь одинаковые IP и MAC-адреса.
- Устанавливает IP-адрес созданного интерфейса в качестве шлюза для ВМ. Маршрутизация между ВМ и шлюзом осуществляется через соединение "точка-точка" (PtP).
- Добавляет созданный маршрут в конфигурацию сервиса FRR на узле кластера.
- Создаёт отдельный виртуальный интерфейс <vmname>_net0. Например, для ВМ с именем sea_gold, интерфейс будет называться sea_gold_net0. Все виртуальные интерфейсы на узле будут иметь одинаковые IP и MAC-адреса.
- Сервис FRR передаёт информацию о созданном маршруте по протоколу iBGP на оборудование RR.
- Оборудование RR передаёт информацию о маршруте на оборудование Core Gateway. После этого ВМ становится доступна из внешней сети (интернета).
Пример работы кластера IP-fabric
Порядок настройки
- В VMmanager:
- Создайте пул IP-адресов для ВМ. Подробнее см. Работа с пулами.
- Создайте кластер с типом настройки сети IP-fabric. Подробнее см. Создание кластера. При создании укажите:
- IP-адрес шлюза для ВМ. VMmanager будет присваивать этот адрес всем виртуальным интерфейсам на узле кластера и использовать его только для маршрутизации между ВМ на узле. Рекомендуем указать частный IP-адрес (например, 10.0.0.1). Этот адрес не должен использоваться где-либо ещё в локальной сети;
- BGP-комьюнити;
- IP-адреса и номера автономных систем оборудования RR.
-
Добавьте узлы в кластер. Подробнее см. Управление серверами кластера.
На узлах кластера IP-fabric с виртуализацией KVM должна быть установлена ОС AlmaLinux 8, с виртуализацией LXD — ОС Ubuntu 20.04.
- Настройте BGP-сессии для каждого узла кластера на оборудовании RR: укажите в настройках IP-адреса узлов и номера автономных систем BGP.
Пример настройки
В примере рассматривается настройка IP-fabric в кластере серверов, используемых в качестве гипервизоров. Роль Core Gateway выполняет маршрутизатор Juniper MX. В качестве Route Reflector используются физические серверы с ОС Linux.
Подготовка
Для настройки понадобится следующее оборудование:
- сервер с платформой VMmanager;
- один или несколько узлов кластера с установленной ОС AlmaLinux 8 или Ubuntu 20.04;
- один или два сервера Route Reflector;
- маршрутизатор Juniper MX.
Перед настройкой:
- Получите у провайдера информацию о настройках BGP: номере автономной системы и комьюнити.
- Убедитесь, что протокол BGP настроен и функционирует правильно.
- Создайте пул IP-адресов для виртуальных машин в VMmanager.
Настройка маршрутизатора Core Gateway
Чтобы настроить "соседство" Core Gateway и Route Reflector:
-
Добавьте в конфигурацию маршрутизатора новый фильтр:
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
Пояснения к команде -
Добавьте в конфигурацию маршрутизатора новую группу:
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>
Пояснения к команде -
Проверьте и примените конфигурацию:
commit check
commit confirmed 5
-
Проверьте, что маршруты BGP получены:
show bgp group VM detail
-
Подтвердите изменения в конфигурации:
commit
Настройка серверов Route Reflector
Чтобы настроить "соседство" между Route Reflector, Core Gateway и узлами кластера, установите и настройте ПО FRRouting (FRR). Вы можете автоматизировать этот процесс с помощью скрипта.
Если для Route Reflector используется виртуальная машина под управлением VMmanager, запустите на ней скрипт Route Reflector:
- Перейдите в Виртуальные машины → меню → Запустить скрипт.
- Выберите скрипт Route Reflector и укажите его параметры:
- AS — номер автономной системы BGP.
- NEIGHBOR — IP-адрес "соседа" — узла кластера VMmanager.
- PREFIX — префикс IP-сетей, которые будет принимать Route Reflector.
- Поддержка VxLAN — нужно ли передавать информацию о виртуальных сетях (VxLAN).
- AS — номер автономной системы BGP.
- Нажмите Запустить скрипт.
Если для Route Reflector используется физический сервер:
-
Создайте файл route_reflector.sh следующего содержания:
Содержимое файла - Замените макросы в тексте файла:
- ($AS) — на номер автономной системы BGP.
- ($NEIGHBOR) — на IP-адрес "соседа" — узла кластера VMmanager.
- ($PREFIX) — на префикс IP-сетей, которые будет принимать Route Reflector.
- ($VXLAN) — на:
- уеs — если сервис должен передавать информацию о виртуальных сетях (VxLAN);
- no — если информацию о виртуальных сетях передавать не нужно.
-
Запустите скрипт:
sh route_reflector.sh
Настройка VMmanager
Для настройки IP-fabric в VMmanager:
- Cоздайте кластер с типом сети IP-Fabric. При создании укажите настройки для соединения с Core Gateway и Route Reflector.
- Подключите серверы в созданный кластер.
- Создайте ВМ в кластере.
Связанные статьи: