Резервирование BRAS Active-Standby
Описание алгоритма переключения для BRAS L2 (DHCP, Static IP)
- Резервирование BRAS L2 для IPoE (DHCP и Static IP) рекомендуется по схеме Active-Standby, что предполагает включение двух СКАТ BRAS в один широковещательный L2 домен: Один в режиме Master, другой в режиме Backup (горячий резерв).
- Master является активным сервером и обрабатывает трафик во время нормальной работы сети. Backup находится в состоянии ожидания и не пропускает трафик через себя, интерфейсы DPDK в сторону абонентов (IN порты) административно выключены (down).
- Backup сервер осуществляет мониторинг работы Master сервера с помощью скрипта, при сбое в работе Backup в автоматическом режиме активирует (up) DPDK интерфейсы в сторону абонентов (IN порты) и начинает обрабатывать трафик.
- Реализовано одиночное переключение трафика на Backup сервер и остановка Master сервера с целью избежать дальнейшие аварии на сети. Переключение трафика на Master осуществляется сетевым администратором в ручкном режиме.
- Для корректной работы необходимо, чтобы все профили услуг были идентично сконфигурированы на Master и Backup сервере, рекомендуем использовать скрипт синхронизации профилей.
- Необходимо обратить внимание, что СКАТ BRAS поддерживает динамическую (OSPF, BGP) и статическую маршрутизацию. В случае динамической маршрутизации для Static IP абонентов с публичными IP адресами анонс изменится автоматически при переключении на Backup сервер, для абонентов с приватными адресами будет применен профиль NAT, под тем же именем, но из другого публичного пула адресов, который заведен на Backup сервере.
Скрипт мониторинга состояния работы Master сервера
Скрипт должен быть установлен на Backup сервере, где он работает в непрерывном цикле, мониторя состояние Master сервера через SSH.
Используется 4 проверки для подтверждения нормальной работы Master сервера:
- Сервер доступен по сети (pingcheck)
- Процесс fastDPI присутствует
- PID процесса fastDPI не изменился (нет неконтролируемого перезапуска процесса)
- Состояние ссылки на основном fastDPI не изменилось (необязательная проверка). Эта проверка отключена по умолчанию, так как может быть не нужна в некоторых топологиях
Процесс установки скрипта:
- Скачать все файлы из архива на целевой резервный сервер
- Настроить IP-адрес Master сервера в скрипте
SRS.sh
- Создать пару SSH-ключей на Backup сервере с помощью команды
ssh-keygen -t ed25519
- Создать нового пользователя с правами sudo на Master сервере
- Скопировать приватные SSH-ключи с Backup сервера в файл
authorized_keys
нового аккаунта на Master сервере - Добавить права на выполнение установочного скрипта с помощью команды
chmod +x install.sh
- Запустить
install.sh
Управление сервисом:
- Запуск сервиса:
systemctl start fastsrs
- Проверка статуса сервиса:
systemctl status fastsrs
- Остановка сервиса:
systemctl stop fastsrs
- Проверка логов сервиса:
journalctl -u fastsrs
Скрипт синхронизации профилей услуг
Скрипт синхронизирует профили услуг 4 (фильтрация по черному списку), 5 (белый список и Captive Portal), 18 (полисинг по сессии и переопределение классов трафика) и полисинга между Master и Backup серверами.
Скрипт запускается на Master сервере, профили услуг на Backup сервере будут приведены к виду профилей на Master сервере. Перенос профилей осуществляется с помощью команд fdpi_ctrl
и удаленного доступа по ssh.
Требования к системе:
- SSH
- Bash
- Jq
- установенный СКАТ
- Rsync
Логика работы скрипта:
Скрипт получает текущий профиль услуги от Master сервера и затем отправляет его на указанный Backup сервер. Затем скрипт подключается к Backup серверу и получает данные для профилей, присутствующих на Master сервере, получает данные профиля на Backup сервере, сопоставляет их и удаляет профили, отсутствующие на Master сервере.
Установка и управление
- Настроить авторизацию через сертификат: создать сертификат на Master сервере с помощью
ssh-keygen -t ed25519
, проще всего использовать для авторизации учетную запись root. - Загрузить скрипт на Master сервер и поместить его в каталог
/usr/local/bin/
- Добавить разрешения для скрипта с помощью команды
chmod +x /usr/local/bin/profile_sync.sh
- Настроить пользователя и IP Backup сервера внутри скрипта. Пользователь должен иметь возможность записи в каталог
/etc/dpi,
самый простой вариант — использовать пользователя root. Также можно настроить другого пользователя с соответствующими правами. - Настроить cron для выполнения скрипта с желаемыми интервалами (опционально):
crontab -u root -e 0 * * * * * /bin/bash /usr/local/bin/profile_sync.sh
- Добавить псевдоним bash для запуска скрипта по желанию:
echo "alias dpi_sync='/bin/bash /usr/local/bin/profile_sync.sh'">> ~/.bashrc
- Создать каталог
/etc/dpi/service18
и сохранить в нем все файлы service 18.
Работа скрипта:
Скрипт запускается crontab с указанными интервалами или вручную с помощью команды dpi_sync
.
Обратите внимание, что если профиль сервиса применен к абоненту, он не будет удален. Также обратите внимание, что любые файлы, не сохраненные в папке service18
, не будут перенесены на Backup сервер, и, таким образом, синхронизированный профиль услуги 18 не будет работать. При отсутствии alias dpi_sync
cкрипт следует запускать через sudo bash /usr/local/bin/profile_sync.sh
.
Была ли полезна эта информация?