Настройка BGP

Эта инструкция описывает настройку поддержки протокола BGP в продукте KeyStack.

Предварительные требования

  • Поддержка протокола BGP со стороны опорной сетевой инфраструктуры заказчика.

  • Наличие выделенного для региона номера автономной системы. Это может быть частный номер автономной системы.

  • Выделены новые IP-адреса для имён, указанных в файле globals.d/REGION.yml в переменных kolla_internal_fqdn и kolla_external_fqdn. Эти IP-адреса будут использоваться для маршрутизации с помощью BGP.

  • Известны IP-адреса соседей BGP и пароль для BGP-аутентификации.

Конфигурация

При переходе инфраструктуры на использование протокола BGP будет меняться сетевая конфигурация. В связи с этим также поменяются внешний и внутренний VIP-адреса региона. Запланируйте обновление DNS-записей для внутреннего и внешнего VIP-адресов облака. Смену значений доменных имён необходимо будет произвести после подготовки новой конфигурации.

Для поддержки протокола BGP в KeyStack используется сервис Bird. Для конфигурации сервиса Bird выполните следующие действия:

  1. Добавьте пароль для подключения к автономной системе в хранилище секретов:

    1. Подготовьте пароль для подключения к автономной системе через сервис Bird.

    2. Откройте веб-интерфейс сервиса Vault.

    3. Перейдите в директорию secret_v2 / deployments / <LCM FQDN> / <имя региона> / passwords_yml.

    4. В секции Current version нажмите Create new.

    5. Добавьте в JSON-файл параметр bird_external_bgp_password со значением пароля для подключения к автономной системе через сервис Bird.

  2. Внесите изменения в конфигурацию региона:

    1. Откройте веб-интерфейс GitLab.

    2. Перейдите в репозиторий региона project_k / deployments / <имя региона>.

    3. Откройте файл globals.d/REGION.yml и обновите значения переменных kolla_external_vip_address и kolla_internal_vip_address на IP-адреса, соответствующие новой конфигурации, использующей BGP.

  3. Добавьте конфигурацию BGP в конфигурацию региона:

    1. Откройте веб-интерфейс GitLab.

    2. Перейдите в репозиторий региона project_k / deployments / <имя региона>.

    3. Создайте файл globals.d/bgp.yml со следующей конфигурацией:

      ##bgp options
      enable_bird: "yes"
      enable_exabgp: "{{ enable_bird }}"
      internal_BGP: "65471"
      external_BGP: "65453"
      external_BGP_IP: ["172.19.130.200","172.19.130.201"]
      enable_keepalived: "{{ 'no' if enable_exabgp | bool else 'yes' }}"
      enable_control_plane_mesh: "{{ enable_bird }}"
      

      В этом примере:

      • enable_keepalived: "{{ 'no' if enable_exabgp | bool else 'yes' }}" — выключение keepalived, поскольку он не используется при включении BGP;

      • enable_bird: "yes" — включение сервиса Bird;

      • enable_exabgp: "{{ enable_bird }}" — включение сервиса ExaBGP вместе с Bird;

      • external_BGP_IP — список IP-адресов eBGP-соседей;

      • internal_BGP — номер внутренней автономной системы;

      • external_BGP — номер внешней автономной системы;

      • enable_control_plane_mesh — реализует функцию защиты control plane от проблем сетевой связанности между контроллерами.

Временное отключение автоматических действий KeyVRM

Во избежание нежелательного срабатывания KeyVRM во время применения новой конфигурации временно остановите автоматические действия для хост-агрегатов, которые затрагивает настройка BGP.

Для этого переведите каждый такой хост-агрегат в режим NOOP:

  1. Откройте веб-интерфейс Портала администратора.

  2. Откройте раздел KeyVRM.

  3. Откройте конфигурацию хост-агрегата, который затрагивает настройка BGP.

  4. Включите Режим NOOP.

  5. В поле Причина NOOP укажите причину, например Настройка BGP.

  6. Нажмите Сохранить.

  7. Повторите действия для всех хост-агрегатов, которые затрагивает настройка BGP.

Обновление записей DNS

Выполните запланированные изменения в DNS:

  1. Обновите адрес записи внутреннего VIP-интерфейса региона.

  2. Обновите адрес записи внешнего VIP-интерфейса региона.

  3. Дождитесь обновления данных на DNS-сервере, используемом узлами региона. При обращении на доменные имена, указанные в файле globals.d/REGION.yml в переменных kolla_internal_fqdn и kolla_external_fqdn, должны использоваться новые IP-адреса. Обновление DNS-записей может занимать продолжительное время. Приступать к дальнейшим работам можно только после обновления DNS-кешей.

Развёртывание изменений на регионе

  1. Ранее используемый в облаке сервис keepalived необходимо остановить и удалить на всех Controller-узлах. Для этого выполните команды:

    # systemctl stop kolla-…keepalived
    # systemctl disable kolla-…keepalived
    # podman rm –force keepalived
    
  2. Откройте веб-интерфейс GitLab.

  3. Перейдите в репозиторий региона project_k / deployments / <имя региона>.

  4. Создайте новый пайплайн: Build > Pipelines > New Pipeline.

  5. Оставьте ветку по умолчанию, соответствующую установленному релизу.

  6. В открывшемся окне добавьте значение переменной KOLLA_ARGS равное -t bird,exabgp,haproxy.

  7. Запустите пайплайн, нажав кнопку New pipeline.

  8. Дождитесь завершения задач на этапе setup.

  9. Запустите задачу deploy на этапе deploy и дождитесь её завершения.

Проверка конфигурации BGP

Для проверки корректности работы BGP выполните следующие действия на каждом Control-узле:

  1. Выполните команду:

    podman exec -ti bird birdc show protocols -s /var/lib/kolla/bird/bird.sock
    

    Убедитесь, что протокол BGP запущен и находится в состоянии Established.

  2. Выполните команду:

    podman exec -ti bird birdc show route -s /var/lib/kolla/bird/bird.sock
    

    Убедитесь, что нужные маршруты были добавлены в таблицу маршрутизации протоколом BGP.

  3. Выполните команду:

    podman exec -ti bird birdc show bfd sessions -s /var/lib/kolla/bird/bird.sock
    

    Убедитесь, что все сконфигурированные BFD-сессии находятся в ожидаемом состоянии.

Включение автоматических действий KeyVRM

После применения новой конфигурации и проверки работоспособности региона выключите NOOP для хост-агрегатов, которые были переведены в этот режим перед настройкой BGP.

Для этого выполните следующие действия:

  1. Откройте веб-интерфейс Портала администратора.

  2. Откройте раздел KeyVRM.

  3. Откройте конфигурацию хост-агрегата.

  4. Выключите Режим NOOP.

  5. Нажмите Сохранить.

  6. Повторите действия для всех хост-агрегатов, которые были переведены в режим NOOP перед настройкой BGP.