====== Резервирование BRAS L2 в режиме Active-Standby ====== {{indexmenu_n>12}} Вебинар по теме: {{youtube>wCkuTfqoKQc?}} Резервирование BRAS в режиме L2 предполагает включение двух СКАТ в один широковещательный L2 домен. Один в режиме Master, другой в режиме Slave. Master осуществляет обработку трафика, авторизацию пользователей через PCRF сервер. Slave не пропускает трафик через себя, интерфейсы DPDK находятся в режиме ожидания трафика (down). Синхронизация информации об абонентах происходит через PCRF сервер. Slave отслеживает доступность и работоспособность Master, при сбое в работе Slave в автоматическом или ручном режиме активирует (up) DPDK интерфейсы и начинает обрабатывать трафик. Пример включения и прохождения трафика представлено на схеме. {{ playground:opt_bras_l2:start:резервирование_bras_l2.png?nolink&400 |}} ===== Репликация данных авторизации и Синхронизация базы данных нескольких BRAS===== В СКАТ BRAS состоит из компонент fastDPI - обработка трафика абонентов. fastPCRF - интеграция по протоколу Radius между fastDPI и Radius сервером. Один fastPCRF может обслуживать несколько fastDPI серверов. Применяется следующая схема репликации для согласования данных об абонентах на всех fastDPI-серверах: fastPCRF шлет ответы авторизации и CoA-запросы на все fastDPI серверы, перечисленные в параметрах [[dpi:bras_bng:radius_integration:radius_auth_fastpcrf_setup:start|fdpi_server]]. Отправка параметров авторизации производится через персистентную очередь, так что даже если какой-то из серверов fastDPI был отключен на момент отправки данных, при включении он получит все данные за время своего простоя. ==== Применение данных на fastDPI ==== При приеме данных авторизации сервер fastDPI видит, его это был запрос или же это ответ на чужой запрос (для этого в пакете есть специальная метка). Если это ответ на свой запрос, данные применяются "по полной": создается DHCP или PPPoE-сессия, если это был запрос DHCP или PPPoE-авторизации, данные запоминаются в UDR. Если же это ответ на чужой запрос, fastDPI просто запоминает "чужие" данные у себя в UDR. Тем самым при отключении основного fastDPI-сервера и переводе нагрузки на резервный, у резервного fastDPI-сервера в UDR уже будут все свойства абонента - его услуги, полисинг, L2-свойства - MAC-адрес, VLAN и пр. То есть UDR у основного и резервного серверов будут по большому счету согласованы. ===== Описание алгоритма ===== Концепция резервирования СКАТ - MASTER-SLAVE (L2-BRAS): * 1. MASTER 99% времени работает, может быть отключен или может упасть * 2. MASTER всегда возвращается и вероломно забирает обработку трафика на себя * 3. SLAVE 99% времени только принимает репликации с MASTER'а и сохраняет их в UDR * 4. Есть третья сторона, которая переключает трафик на MASTER или SLAVE, в зависимости от ситуации: * 4.1. MASTER доступен, SLAVE доступен - трафик переключен на MASTER * 4.2. MASTER доступен, SLAVE не доступен - трафик переключен на MASTER * 4.3. MASTER не доступен, SLAVE доступен - трафик переключен на SLAVE * 4.4. MASTER и SLAVE не доступны - трафик переключен на MASTER Переключение MASTER->SLAVE: * 1. Третья сторона детектит пропадание MASTER'а м переключает трафик на SLAVE * 2. Т.к. на 99% UDR SLAVE'а содержит реплицированные данные, то прерывания почти не заметно физически и логически Bootstrap MASTER'а (SLAVE активен, обрабатывает трафик): * 1. На MASTER'е сервисы fastdpi+fastpcrf запущены (после загрузки) * 2. MASTER определяет что SLAVE жив и актуален * 3. MASTER останавливает свои fastdpi+fastpcrf * 4. MASTER бекапит UDR на SLAVE и забирает её к себе * 5. MASTER запускает свои fastdpi+fastpcrf * 6. Третья сторона детектит появление MASTER'а и переключает трафик на него Bootstrap MASTER'а (SLAVE не доступен): * 1. На MASTER'е сервисы fastdpi+fastpcrf запущены (после загрузки) * 2. MASTER определяет что SLAVE не доступен, считает что UDR на нем актуальнее чем на неработающем SLAVE, продолжает работу штатно * 3. Третья сторона детектит появление MASTER'а и переключает трафик на него Bootstrap SLAVE'а (MASTER активен, обрабатывает трафик): * 1. На SLAVE'е сервисы fastdpi+fastpcrf запущены (после загрузки) * 2. SLAVE определяет что MASTER жив и актуален * 3. SLAVE останавливает свои fastdpi+fastpcrf * 4. SLAVE бекапит UDR на MASTER'е и забирает её к себе * 5. SLAVE запускает свои fastdpi+fastpcrf * 6. Начинает реплицировать данные Bootstrap SLAVE'а (MASTER не доступен): * 1. На SLAVE'е сервисы fastdpi+fastpcrf запущены (после загрузки) * 2. SLAVE определяет что MASTER не доступен, считает что UDR на нем актуальнее чем на неработающем MASTER'е, продолжает работу штатно * 3. Третья сторона детектит появление SLAVE'а и переключает трафик на него