Настройка 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_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:
Откройте веб-интерфейс Портала администратора.
Откройте раздел .
Откройте конфигурацию хост-агрегата, который затрагивает настройка 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 / <имя региона>.
Создайте новый пайплайн: .
Оставьте ветку по умолчанию, соответствующую установленному релизу.
В открывшемся окне добавьте значение переменной
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.