Резервирование BRAS в режиме L2 предполагает включение двух СКАТ в один широковещательный L2 домен. Один в режиме Master, другой в режиме Slave. Master осуществляет обработку трафика, авторизацию пользователей через PCRF сервер. Slave не пропускает трафик через себя, интерфейсы DPDK находятся в режиме ожидания трафика (down). Синхронизация информации об абонентах происходит через PCRF сервер. Slave отслеживает доступность и работоспособность Master, при сбое в работе Slave в автоматическом или ручном режиме активирует (up) DPDK интерфейсы и начинает обрабатывать трафик. Пример включения и прохождения трафика представлено на схеме.
В СКАТ BRAS состоит из компонент
Возможны две схемы интеграции:
Для первого варианта применяется следующая схема репликации для согласования данных об абонентах на всех fastDPI-серверах: fastPCRF шлет ответы авторизации и CoA-запросы на все fastDPI серверы, перечисленные в параметрах fdpi_server.
При приеме данных авторизации сервер fastDPI видит, его это был запрос или же это ответ на чужой запрос (для этого в пакете есть специальная метка). Если это ответ на свой запрос, данные применяются "по полной": создается DHCP или PPPoE-сессия, если это был запрос DHCP или PPPoE-авторизации, данные запоминаются в UDR. Если же это ответ на чужой запрос, fastDPI просто запоминает "чужие" данные у себя в UDR. Тем самым при отключении основного fastDPI-сервера и переводе нагрузки на резервный, у резервного fastDPI-сервера в UDR уже будут все свойства абонента - его услуги, полисинг, L2-свойства - MAC-адрес, VLAN и пр. То есть UDR у основного и резервного серверов будут по большому счету согласованы. Абонентская сессия на резервном fastDPI будет в статусе неизвестен (unknown) и после переключения трафика по первому пакету будет запущен процесс авторизации абонента.
Концепция резервирования СКАТ — MASTER-SLAVE:
MASTER является активным сервером и обрабатывает трафик во время нормальной работы сети. SLAVE в свою очередь находится в состоянии ожидания с выключенными интерфейсами и активно опрашивает состояние MASTER и в случае проблем на нем включается в работу.
Нормальная работа сети:
Через MASTER проходит обработка всего трафика, авторизация и т.д, SLAVE в обработке трафика не участвует, но через mgmt интерфейс опрашивает состояние MASTER. Происходит несколько проверок состояния:
Если все проверки прошли успешно, то SLAVE остается в режиме ожидания и не предпринимает никаких действий.
В случае обнаружения ошибки SLAVE берет на себя роль MASTER.
Переключение MASTER→SLAVE:
При обнаружении на MASTER ошибки SLAVE начинает обрабатывать трафик самостоятельно, для этого отправляется команда на отключение MASTER, отключение интерфейсов СКАТ и остановки процесса fastDPI. В это же время SLAVE включает свои интерфейсы. Следует отметить, что автоматического переключения обратно не реализовано, так как необходима проверка инженером что проблема на основном сервере устранена и можно переключать траффик обратно.
Переключение SLAVE→MASTER:
После устранения проблем на основном сервере необходимо выключить интерфейсы резервного сервера, запустить обработку трафика основным сервером и включить сервис резервирования на SLAVE.
Скрипт должен быть установлен на резервном fastDPI, где он работает в непрерывном цикле, мониторя состояние основного fastDPI через SSH.
Этот скрипт использует 4 проверки для подтверждения того, что основной fastDPI работает:
Процесс установки:
SRS.sh
.ssh-keygen -t ed25519
authorized_keys
нового аккаунта на основном сервере.chmod +x install.sh
install.sh
.Управление сервисом:
systemctl start fastsrs
systemctl status fastsrs
systemctl stop fastsrs
journalctl -u fastsrs
Скрипт синхронизирует профили услуг 4 (фильтрация по черному списку), 5 (белый список и Captive Portal), 18 (полисинг по сессии и переопределение классов трафика) и полисинга между двумя DPI.
Скрипт запускается на основном DPI, профили услуг на удаленном DPI будут приведены к виду профилей на основном DPI. Перенос профилей осуществляется с помощью команд fdpi_ctrl
и удаленного доступа по ssh.
Требования к системе:
Логика работы скрипта:
Скрипт получает текущий профиль услуги от главного устройства и затем отправляет его на указанный удаленный DPI. Затем скрипт подключается к удаленному DPI и получает данные для профилей, присутствующих на удаленном DPI, получает данные профиля на текущем DPI, сопоставляет их и удаляет профили, отсутствующие на основном DPI.
ssh-keygen -t ed25519
, проще всего использовать для авторизации учетную запись root./usr/local/bin/
chmod +x /usr/local/bin/profile_sync.sh
/etc/dpi,
самый простой вариант — использовать пользователя root. Также можно настроить другого пользователя с соответствующими правами.crontab -u root -e 0 * * * * * /bin/bash /usr/local/bin/profile_sync.sh
echo "alias dpi_sync='/bin/bash /usr/local/bin/profile_sync.sh'">> ~/.bashrc
/etc/dpi/service18
и сохранить в нем все файлы service 18.
Работа скрипта:
Скрипт запускается crontab с указанными интервалами или вручную с помощью команды dpi_sync
.
Обратите внимание, что если профиль сервиса применен к абоненту, он не будет удален. Также обратите внимание, что любые файлы, не сохраненные в папке service18
, не будут перенесены на удаленный DPI, и, таким образом, синхронизированный профиль услуги 18 не будет работать. При отсутствии alias dpi_sync
cкрипт следует запускать через sudo bash /usr/local/bin/profile_sync.sh
.