Настройка BGP
Эта инструкция описывает настройку поддержки протокола BGP в продукте KeyStack.
Предварительные требования
Поддержка протокола BGP со стороны опорной сетевой инфраструктуры (underlay) заказчика.
Наличие выделенного для региона номера автономной системы. Это может быть частный номер автономной системы (private AS number).
Выделены новые IP-адреса для имён, указанных в файле
globals.d/REGION.yml
в переменныхkolla_internal_fqdn
иkolla_external_fqdn
, которые будут использоваться для маршрутизации с помощью BGP.Известны IP-адреса соседей BGP и пароль для BGP-аутентификации.
Конфигурация
При переходе инфраструктуры на использование протокола BGP будет меняться сетевая конфигурация. В связи с этим также поменяются внешний и внутренний VIP-адреса региона. Запланируйте обновление DNS-записей для внутреннего и внешнего VIP-адресов облака. Смену значений доменных имен необходимо будет произвести после подготовки новой конфигурации.
Для поддержки протокола BGP в KeyStack используется сервис Bird. Для конфигурации сервиса Bird выполните перечисленные шаги:
Добавьте пароль для подключения к автономной системе в хранилище секретов:
Подготовьте пароль для подключения к автономной системе через сервис Bird.
Откройте веб-интерфейс сервиса Vault.
Перейдите в директорию secret_v2 / deployments / <FQDN сервиса GitLab> / <имя региона> / passwords_yml.
В секции Current version нажмите Create new.
Добавьте в JSON-файл параметр
bird_external_bgp_password
со значением вашего пароля на подключение к автономной системе через сервис Bird.
Внесите изменения в конфигурацию региона:
Откройте веб-интерфейс GitLab.
Перейдите в репозиторий региона
.Откройте файл
globals.d/REGION.yml
и обновите значения переменныхkolla_external_vip_address
иkolla_internal_vip_address
на IP-адреса, соответствующие новой конфигурации, использующей BGP.
Добавьте конфигурацию BGP в конфигурацию региона:
Откройте веб-интерфейс GitLab.
Перейдите в репозиторий региона
.Создайте файл
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: "65452"
— номер внутренней автономной системы;external_BGP: "65453"
— номер внешней автономной системы.
Отключение сервисов DRS и HA
Во избежание нежелательного срабатывания DRS и HA во время применения новой конфигурации, временно выключите их.
Для выключения DRS:
Зайдите в веб-интерфейс Портала администратора.
Перейдите в раздел
.Выключите все задачи DRS.
Для выключения HA:
Зайдите на каждый Control-узел по SSH и выполните команду:
# systemctl stop kolla-consul-container.service
Обновление записей 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 # docker rm –force keepalived
Откройте веб-интерфейс GitLab.
Перейдите в репозиторий региона
.Создайте новый пайплайн:
.В открывшемся окне добавьте значение переменной
KOLLA_ARGS
равное-t bird,exabgp,haproxy
.Запустите пайплайн, нажав кнопку Run pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Проверка конфигурации BGP
Для проверки корректности работы BGP, выполните следующие действия на каждом Control-узле:
Выполните команду:
docker exec -ti bird birdc show protocols -s /var/lib/kolla/bird/bird.sock
Убедитесь, что протокол BGP запущен и находится в состоянии
Established
.Выполните команду:
docker exec -ti bird birdc show route -s /var/lib/kolla/bird/bird.sock
Убедитесь, что нужные маршруты были добавлены в таблицу маршрутизации протоколом BGP.
Выполните команду:
docker exec -ti bird birdc show bfd sessions -s /var/lib/kolla/bird/bird.sock
Убедитесь, что все сконфигурированные BFD-сессии находятся в ожидаемом состоянии.
Включение сервисов DRS и HA
Для включения DRS:
Зайдите в веб-интерфейс Портала администратора.
Перейдите в раздел
.Включите задачи DRS, которые были выключены перед применением новой конфигурации.
Для включения HA:
Зайдите на каждый Control-узел по SSH и выполните команду:
# systemctl start kolla-consul-container.service