Настройка 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 выполните следующие действия:
Добавьте пароль для подключения к автономной системе в хранилище секретов:
Подготовьте пароль для подключения к автономной системе через сервис Bird.
Откройте веб-интерфейс сервиса Vault.
Перейдите в директорию secret_v2 / deployments / <LCM FQDN> / <имя региона> / passwords_yml.
В секции Current version нажмите Create new.
Добавьте в JSON-файл параметр
bird_external_bgp_passwordсо значением пароля для подключения к автономной системе через сервис Bird.
Внесите изменения в конфигурацию региона:
Откройте веб-интерфейс GitLab.
Перейдите в репозиторий региона project_k / deployments / <имя региона>.
Откройте файл
globals.d/REGION.ymlи обновите значения переменныхkolla_external_vip_addressиkolla_internal_vip_addressна IP-адреса, соответствующие новой конфигурации, использующей BGP.
Добавьте конфигурацию BGP в конфигурацию региона:
Откройте веб-интерфейс GitLab.
Перейдите в репозиторий региона project_k / deployments / <имя региона>.
Создайте файл
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:
Откройте веб-интерфейс Портала администратора.
Откройте раздел .
Откройте конфигурацию хост-агрегата, который затрагивает настройка BGP.
Включите Режим NOOP.
В поле Причина NOOP укажите причину, например
Настройка BGP.Нажмите Сохранить.
Повторите действия для всех хост-агрегатов, которые затрагивает настройка BGP.
Обновление записей DNS¶
Выполните запланированные изменения в DNS:
Обновите адрес записи внутреннего VIP-интерфейса региона.
Обновите адрес записи внешнего VIP-интерфейса региона.
Дождитесь обновления данных на DNS-сервере, используемом узлами региона. При обращении на доменные имена, указанные в файле
globals.d/REGION.ymlв переменныхkolla_internal_fqdnиkolla_external_fqdn, должны использоваться новые IP-адреса. Обновление DNS-записей может занимать продолжительное время. Приступать к дальнейшим работам можно только после обновления DNS-кешей.
Развёртывание изменений на регионе¶
Ранее используемый в облаке сервис keepalived необходимо остановить и удалить на всех Controller-узлах. Для этого выполните команды:
# systemctl stop kolla-…keepalived # systemctl disable kolla-…keepalived # podman rm –force keepalived
Откройте веб-интерфейс GitLab.
Перейдите в репозиторий региона project_k / deployments / <имя региона>.
Создайте новый пайплайн: .
Выберите ветку вашего релиза в выпадающем списке Run for branch name or tag
master-<имя релиза keystack>.В открывшемся окне добавьте переменную
KOLLA_ARGSсо значением-t bird,exabgp,haproxy.Запустите пайплайн, нажав кнопку New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Проверка конфигурации BGP¶
Для проверки корректности работы BGP выполните следующие действия на каждом Control-узле:
Выполните команду:
podman exec -ti bird birdc show protocols -s /var/lib/kolla/bird/bird.sockУбедитесь, что протокол BGP запущен и находится в состоянии
Established.Выполните команду:
podman exec -ti bird birdc show route -s /var/lib/kolla/bird/bird.sockУбедитесь, что нужные маршруты были добавлены в таблицу маршрутизации протоколом BGP.
Выполните команду:
podman exec -ti bird birdc show bfd sessions -s /var/lib/kolla/bird/bird.sockУбедитесь, что все сконфигурированные BFD-сессии находятся в ожидаемом состоянии.
Включение автоматических действий KeyVRM¶
После применения новой конфигурации и проверки работоспособности региона выключите NOOP для хост-агрегатов, которые были переведены в этот режим перед настройкой BGP.
Для этого выполните следующие действия:
Откройте веб-интерфейс Портала администратора.
Откройте раздел .
Откройте конфигурацию хост-агрегата.
Выключите Режим NOOP.
Нажмите Сохранить.
Повторите действия для всех хост-агрегатов, которые были переведены в режим
NOOPперед настройкой BGP.