5G — разделяй и управляй. Сам. Часть 3 — user plane function
Всем привет! Мы занимается разработкой программного обеспечения для 5G сетей. Хотим рассказать про то, какие новшества в 5G сетях позволят пользователю самому управлять собственными устройствами и трафиком. Про то, что такое control and user plane separation (CUPS), network slicing, user plane function (UPF), и почему это всё может стать подходящими инструментами при взаимодействии с вашими собственными устройствами в мобильной сети.
Третья статья про то, что такое user plane function (UPF), и каким образом пользователь может управлять обработкой трафика своих мобильных устройств.
5G — разделяй и управляй. Сам.
Часть 3 — user plane function
Технические детали
Путь трафика от пользовательского устройства до выхода из мобильной сети
Мобильная сеть связи обеспечивает доступ от устройства пользователя до выхода во внешние сети (Интернет). Через 5G сеть пользовательский трафик проходит в специальных туннелях:
Data radio bearer (DRB) между пользовательским устройством и базовой станцией,
GPRS Transport Protocol — User plane tunnel (GTP‑U tunnel) между базовой станцией и UPF.
Пользовательский трафик попадает в туннель на базовой станции, а выходит из туннеля на «маршрутизаторе», который «снимает» GTP‑обертку и передает трафик дальше во внешнюю сеть.
Использование GTP‑U туннеля для передачи пользовательского трафика внутри операторской сети необходимо для следующего::
Бесшовный переход при перемещении пользовательского устройства между базовыми станциями.
С точки зрения ядра мобильной сети весь трафик пользователя — это один или несколько туннелей. Соответственно, внутри сети все политики управления качеством сервисов (quality of service, QoS), приоритезации, маршрутизации и т. п. применяется к GTP‑U туннелю, а не к каждому соединению каждого приложения в отдельности.
На схеме ниже зеленой линией выделен участок, на котором пользовательский трафик проходит, будучи инкапсулированным в GTP.
Хорошая теоретическая выкладка о пакетной передаче данных в мобильных сетях представлена в этой серии статей на хабре: раз, два, три, четыре.
Поверх DRB и GTP‑U tunnel между пользовательским устройством (UE) и UPF устанавливается Packet data unit session (PDU Session). PDU сессия используется для передачи трафика конкретной услуги или приложения. Она определяет требования QoS, использование слайсинга, информацию о дальнейшей маршрутизации пользовательских данных.
UPF — “маршрутизатор” пользовательского трафика в 5G сети
User plane function (UPF) — элемент и функция 5G сети, которая работает с пользовательским трафиком и обеспечивает его передачу наружу из мобильной сети. Соответственно, UPF расположен на стыке мобильной сети оператора и внешних сетей. Сам UPF делает буквально следующее:
Пропускает пользовательский трафик: маршрутизирует пакеты, применяет политики, обеспечивает качество обслуживания (QoS), выполняет фильтрацию, маркировку и шейпинг трафика, буферизирует downlink трафик.
Работает как шлюз в сторону внешних сетей и Интернет.
Поддерживает работу GTP‑U туннелей до базовых станций.
Работает с PDU сессиями: взаимодействует с Session management function (SMF) для получения информации о параметрах сессии для каждого конкретного пользователя и его приложений, а также устанавливает PDU сессии с мобильными устройствами.
Поддерживает слайсинг: распределяет пользовательский трафик по различным виртуальным сетевым сегментам, обеспечивает индивидуальное применение политик.
Ведет учет, собирает и передает данные о трафике для биллинга или других нужд.
Для взаимодействия с другими функциями используются стандартизованные интерфейсы:
N3 интерфейс между UPF и сетью радиодоступа (базовыми станциями, gNB).
N4 интерфейс между UPF и SMF. Не передает трафик пользователей, а используется только для сигнального трафика и взаимодействия с SMF.
N6 интерфейс в сторону внешних сетей: IMS‑платформы для голосового трафика, CG‑NAT перед выходом в Интернет, VPN для корпоративных пользователей и т.п.
N9 интерфейс между несколькими UPF.
Несколько UPF в пределах одной сети или слайса
В 5G сетях трафик может проходить через несколько UPF, у каждого из которых может быть разная роль:
Uplink Classifier / Branching point UPF (ULCL/BP UPF) — распределяет трафик по нескольким вышестоящим UPF в зависимости от типа трафика.
Intermediate UPF (i‑UPF) — «транзитный» UPF, обслуживающий определенный сегмент сети.
PDU session anchor UPF (PSA‑UPF) — является конечным в цепочке UPF и управляет PDU‑сессией до устройства пользователя.
Multicast and broadcast services UPF (MB‑UPF) — используется для широковещательного трафика.
Последовательное подключение UPF
Несколько UPF могут быть иерархически связаны между собой. Цепочка UPF предназначена для гибкой обработки трафика в соответствии с конкретными требованиями предоставляемой услуги. Каждый UPF в цепочке может применять политики по безопасности, фильтрации, качеству обслуживания, а также может иметь собственный N6 интерфейс для соединения с внешними сетями. Таким образом, на каждом участке от первого и до крайнего UPF в цепочке пользовательский трафик может быть декапсулирован из GTP и передан какому‑либо локальному получателю. В результате:
сокращение нагрузки на транспортную сеть оператора;
сокращение времени отклика за счет расположения ресурсов ближе к мобильным устройствам пользователя;
повышение безопасности и исключение внешних сегментов сети на пути от мобильного устройства до локального ресурса.
Вынос обработки пользовательского трафика за пределы сети оператора связи
В предыдущей статье про слайсинг мы допустили предположение, что настало будущее, в котором вы можете заказать и начать использовать собственный слайс.
Если вы используете слайс, в котором все ресурсы полностью размещены на стороне оператора связи, то тот минимум в части обработки трафика, который вам даст использование слайса, это конфигурирование индивидуальных политик и доступ к N6 интерфейсу. Ограничение одного трафика, приоритезация другого, маршрутизация в корпоративный VPN — новые пункты меню в вашем личном кабинете.
Но предположим, что по соображениям безопасности, ради сокращения задержек или по какой‑либо другой причине вы решили перенести часть функций слайса на свою сторону. Запуск UPF на стороне пользователя — один из возможных сценариев работы пользователя со своим слайсом. UPF будет первой и, возможно, единственной функцией 5G ядра, которую вы захотите забрать.
Перед вами как пользователем встанут вопросы:
Выбор между операторским и сторонним UPF Какой из них совместим с вашим ИТ‑ландшафтом? Насколько функционал UPF может быть доработан под ваши нужды, насколько UPF может быть встроен в ваш корпоративный пайплайн обработки трафика? Какой UPF более выгоден в CAPEX и OPEX? Если принято решение использовать собственный UPF, то насколько будут совпадать представления о стандартах 3GPP у поставщика вашего UPF и у поставщика 5G ядра оператора связи?
Точка присоединения к транспортной сети и доступ к vRAN. Каким образом получить доступ к транспорту не только базовых станций, расположенных непосредственно в внутри кампуса, на крышах складов и цехов, но и к «первой линии» вокруг ваших объектов? Где ближайшая основная и резервная точки, откуда вы сможете забрать виртуализированный сегмент транспорта вашего слайса? Где наилучшие точки, если вы покупаете слайс на весь регион или страну?
Обеспечение безопасности и доверия при соединении с 5G ядром оператора связи для обмена сигнальным трафиком.
Развитие UPF на рынке
В сторону решений для 5G SA в целом и UPF в частности идут не только классические поставщики решений для мобильной связи. Ниже несколько ссылок вразнобой для создания представления о развитии рынка:
Google Cloud Services — Deploying and operating cloud‑based 5G networks
Microsoft — What is the 5G UPF?
(в контексте развития Microsoft Azure Private 5G Core)Intel и Hong Kong Applied Science and Technology Research Institute (ASTRI) — User Plane Function (UPF) for 5G Network
NEC — 3G/4G/5G converged UPF
(ссылка ведет на PDF, внутри красивый бенчмарк по производительности на контейнерах)NEC lab EU — An enabler for Avionic MEC in a drone-extended 5G mobile network
(небольшая статья про MEC на базе дрона с UPF на Raspberri Pi внутри)ZTE и Intel — 5G Virtualized and Cloud Native UPF Solution
(бенчмарк от Intel и ZTE)ENEA — open framework for 5G UPF
(ENEA известна тем, что в 2016 году купила Qosmos и сейчас продает один из самых популярных классификаторов для DPI движков)Redhat — вопросы энергоэффективности UPF
Redhat и Kaloom — высокопроизводительные UPF
(P4 offload на коммутаторы)
OpenSource UPF
Для тех, кто захочет позаниматься с UPF своими руками, несколько ссылок на github. В первую очередь стоит начать с UPF из состава Free5GC или Open5GS - это два популярных 5G ядра с открытым исходным кодом, внутри которых лежат вполне рабочие и готовые к использованию UPF.
Резюме:
User plane function (UPF) - функция 5G ядра и “маршрутизатор” трафика, через который мобильное устройство получает доступ к внешним сетям.
С развитием 5G сетей, control and user plane separation (CUPS) и слайсинга у пользователя появляется возможность управлять трафиком своих мобильных устройств путём индивидуальных настроек своего UPF в слайсе.
При использовании слайсинга пользователь может выбрать тот или иной UPF, настройки и место размещения. Этот выбор не будет затрагивать работу всей остальной сети оператора связи.
В ряде сценариев UPF может быть целесообразно перенести на сторону пользователя.