Зачем нужен посредник в управляющей плоскости
Ядро мобильной сети редко собрано из оборудования одного производителя. Один PGW куплен вместе с ядром, второй взяли у другого производителя под новую услугу, третий остаётся от партнёра или от старой сети 3G. И каждый такой узел приходится отдельно встраивать в сеть, с настройкой и проверками.
GTPCProxy избавляет от этих работ при подключении каждого нового PGW. Прокси включается в разрыв интерфейса S5 в домашней сети, S8 в роуминге и Gn/Gp в сетях 2G/3G. Оператор указывает в DNS для нужных APN адрес прокси, и дальше PGW для абонента выбирает уже прокси по своим правилам.
Для SGW прокси выглядит как PGW, для PGW — как SGW. Прокси использует только стандартные сообщения TS 29.274 (GTPv2-C) и TS 29.060 (GTPv1-C), поэтому настройки остальных узлов ядра менять не нужно. Пользовательский трафик GTP-U через прокси не проходит, а идёт напрямую между SGW и PGW.
Каждое подключение — на свой PGW
Когда абонент подключается к сети, прокси решает, к какому PGW его направить. Для этого оператор задаёт правила. Правило может учитывать номер SIM-карты абонента (префиксы и диапазоны IMSI), его телефонный номер (префиксы MSISDN), точку доступа (APN), сеть обслуживания (PLMN), тип радиодоступа и местоположение.
Каждое правило ведёт к пулу, то есть к группе шлюзов. В пуле настраивается, какую долю нагрузки получает каждый шлюз, какие шлюзы резервные и как для абонента выбирается конкретный шлюз. Прокси сам следит, исправен ли каждый PGW. Он регулярно опрашивает шлюзы служебными запросами и смотрит, удаётся ли создавать через них подключения.
Для оператора у такой схемы четыре преимущества:
- Шлюзы разных производителей в одной сети без интеграционных проектов. PGW разных производителей работают в одном пуле, а SGW и SGSN обращаются к одному адресу — адресу прокси.
- Отказ одного PGW не заметен абонентам. Если шлюз перегружен, прокси отправляет абонента на другой. Если шлюз отказал, его абоненты переподключаются к исправным. Когда шлюз восстановится, нагрузка на него возвращается постепенно.
- Политики без перенастройки PGW. Прокси может менять параметры подключения абонента, например точку доступа, условия тарификации, тип подключения или тип радиосети. Замену можно сделать до выбора шлюза, и тогда она влияет на то, какой PGW выберет прокси. А можно после выбора. Кроме того, по запросу оператора прокси может включить отчёты о местоположении абонента от узлов управления сети.
- Изменение правил без перезапуска прокси. Правила можно обновить из файла, из базы Redis или через веб-интерфейс, не перезапуская прокси. Перед применением прокси проверяет новые правила, а если что-то пошло не так, можно вернуть предыдущую версию.
| Что учитывает правило | Параметр сессии |
| Номер SIM-карты (префикс или диапазон) | IMSI |
| Телефонный номер (префикс) | MSISDN |
| Точка доступа | APN |
| Сеть, через которую подключается абонент | PLMN |
| Тип радиосети | RAT Type |
| Информация о местоположении пользователя | ULI |
Переход между 2G/3G и LTE без разрыва сессии
Отказываться от 2G/3G операторы не спешат, и эти сети еще долго будут работать параллельно с LTE. Поэтому прокси понимает обе версии протокола GTP, по которому узлы договариваются о подключении абонента. Новую версию использует LTE, старую — сети 2G/3G.
| Сеть | Протокол | Интерфейс в домашней сети | Интерфейс в роуминге | Между какими узлами | Стандарт |
| LTE | GTPv2-C | S5 | S8 | SGW и PGW | TS 29.274 |
| 2G/3G | GTPv1-C | Gn | Gp | SGSN и PGW в роли GGSN | TS 29.060 |
Переключение версии при переходе абонента описано в TS 23.401, приложение D.
Абонент может перейти из 2G/3G в LTE или обратно и при этом сохранить подключение и свой IP-адрес. Прокси находит его сессию и переключает версию протокола на обеих сторонах так, как предписывает стандарт 3GPP. Если шлюз отвечает, что новую версию не поддерживает, прокси переходит с ним на старую.
Еще одна возможность — перевод сообщений с одной версии протокола на другую. Благодаря ему абонента 2G/3G может обслужить современный PGW, который понимает только новую версию. Раньше для этого нужен был отдельный шлюз GGSN, предшественник PGW в сетях 2G/3G. Это касается и абонентов в роуминге, которые приходят из других сетей 2G/3G.
Перевод включается в настройках пула и срабатывает как запасной вариант, если основной шлюз недоступен. Так оператор может вывести старые GGSN из работы, даже пока сама сеть 2G/3G еще работает.
Роуминг и региональные пулы
В роуминге прокси работает так же, как в домашней сети. Абоненты других операторов проходят через те же пулы и правила, и для них так же можно менять параметры подключения.
Маршрутизация по местоположению позволяет разделить PGW по регионам, а также отдельные пулы для зон массовых мероприятий и для M2M — счётчиков, датчиков и другой техники, которая работает без участия человека.
Если абонент переехал в область, которую обслуживает другой пул, прокси может закрыть его подключение и попросить устройство подключиться заново. Тогда устройство подключится к шлюзу своего региона. Если в этот момент идёт голосовой вызов, прокси дождётся его окончания и только потом закроет подключение.
Установка и эксплуатация
GTPCProxy поставляется в двух RPM-пакетах для VEOS 8.x и EL8 — демон и веб-интерфейс. Обновление и откат делаются обычными командами dnf upgrade и dnf downgrade.
Данные о сессиях хранятся во внешнем Redis, поэтому при перезапуске прокси подключения абонентов не обрываются. Для мониторинга есть метрики Prometheus и панели Grafana, а для управления — веб-интерфейс с ролями администратора и наблюдателя.
Вывод
GTPCProxy позволяет развивать ядро по частям. Можно добавлять PGW нужного производителя, выводить из работы старые узлы и держать 2G/3G и LTE в одной политике, не трогая MME, SGW и SGSN.
Проверить это на своих узлах проще всего в лаборатории. У VAS Experts есть пакет лабораторной проверки с конфигурацией, сценариями и форматом отчёта. Напишите нам, и мы согласуем окно работ и состав стенда.
Словарь терминов
| Термин | Простыми словами |
| PGW | Шлюз, через который абонент выходит в интернет и другие сети |
| GGSN | Такой же шлюз в сетях 2G/3G, предшественник PGW |
| SGW | Шлюз LTE, который передаёт трафик от базовых станций к PGW |
| MME | Узел управления LTE. Регистрирует абонента и следит за его перемещением |
| SGSN | Узел сетей 2G/3G, который выполняет работу MME и SGW |
| APN | Имя точки доступа. По нему сеть понимает, к какой услуге подключить абонента |
| IMSI | Номер SIM-карты в сети оператора |
| MSISDN | Телефонный номер абонента |
| PLMN | Сеть конкретного оператора |
| GTP | Протокол, по которому узлы сети договариваются о подключении абонента. GTPv1 используется в 2G/3G, GTPv2 в LTE |
| S5, S8, Gn, Gp | Интерфейсы между узлами. S5 и Gn работают внутри сети, S8 и Gp в роуминге |
| TAC, LAC, ECI, CGI, SAI, RAI | Идентификаторы зон и сот, по которым сеть определяет, где находится абонент |
| UE | Устройство абонента |
| M2M | Устройства, которые обмениваются данными без участия человека |