Настройка 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_keepalived: "no"
      enable_bird: "yes"
      enable_exabgp: "yes"
      internal_BGP: "65001"
      external_BGP: "65002"
      external_BGP_IP:
        - 10.224.57.4
        - 10.224.56.4
      external_BGP_password: "{{ bird_external_bgp_password }}"
      announce_networks:
        - "{{ kolla_external_vip_address }}/32"
        - "{{ kolla_internal_vip_address }}/32"
      

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

      • enable_keepalived: "no" — выключение keepalived, поскольку он не используется при включении BGP;

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

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

      • announce_networks — VIP-адреса сервисов internal_vip и external_vip с длиной префикса /32;

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

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

      • external_BGP_password: "{{ bird_external_bgp_password }}" — пароль для подключения к автономной системе через сервис Bird.

Временное отключение автоматических действий 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. Выберите ветку вашего релиза в выпадающем списке Run for branch name or tag master-<имя релиза keystack>.

  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.