Diameter
Что такое Diameter?
Diameter — это протокол аутентификации, авторизации и учёта (AAA), разработанный IETF как развитие и замена устаревшего протокола RADIUS.
Он используется в современных сетях связи (LTE, IMS, Wi-Fi Calling, VoWiFi, 5G и др.) для централизованного управления доступом к сервисам и политиками QoS.
Diameter обеспечивает:
- Расширенную поддержку мобильности
- Гибкую маршрутизацию
- Поддержку новых типов услуг
- Более высокую надёжность и безопасность
Цель и назначение Diameter
🎯 Основные задачи:
- Аутентификация: Проверка личности пользователя или устройства
- Авторизация: Определение, какие услуги может использовать пользователь
- Учет (Accounting): Логирование сессий, объема трафика, времени использования
- Динамическое управление политиками: Настройка QoS, тарифных планов, ограничений
Используется в сетях LTE/IMS для регистрации абонента, выделения IP-адреса, настройки прав доступа и других функций.
Как работает Diameter?
[Клиент] → Отправляет запрос на доступ (например, IMSI, EAP-токен)
[Diameter Agent / Relay / Proxy] → Пересылает запрос на сервер AAA
[Diameter Server] ←→ [HSS / UDM / LDAP / DB] → Проверяет данные
[Diameter Server] → Возвращает ответ: Accept + политики
[Сервисный элемент] → Применяет политики и открывает доступ
Этапы работы:
- Клиент отправляет запрос через NAS, MME, P-CSCF или другое устройство.
- Запрос поступает на Diameter Client, который формирует Diameter-сообщение.
- Сообщение передаётся через прокси-серверы или ретрансляторы к нужному серверу.
- Сервер обрабатывает запрос и возвращает ответ с политиками.
- Политики применяются к пользователю или устройству.
Архитектура протокола Diameter
+------------------+ +------------------+ +------------------+
| Клиент | | Diameter Node | | Diameter Server|
| (MME, P-CSCF, | <----> | (Proxy/Relay) | <----> | (HSS, PCRF, AAA) |
| NAS, UE) | | | | |
+------------------+ +------------------+ +------------------+
Компоненты:
- Diameter Client — отправляет запросы (например, MME, P-GW, P-CSCF)
- Diameter Server — обрабатывает запросы и принимает решения
- Diameter Proxy — перенаправляет запросы между узлами
- Diameter Relay — пересылает запросы без изменения содержания
- Diameter Redirect — указывает клиенту, к какому серверу обращаться
- Diameter Translation Agent — преобразует запросы между различными типами сервисов
Структура сообщений в Diameter
Формат сообщения:
+----------------------------+
| Header (Flags, Command Code)|
+----------------------------+
| Application ID |
+----------------------------+
| Hop-by-Hop Identifier |
+----------------------------+
| End-to-End Identifier |
+----------------------------+
| AVPs (Attribute-Value Pairs) |
| ... |
+----------------------------+
Основные поля заголовка:
Поле |
Описание |
Version |
Версия протокола (обычно 1) |
Message Length |
Общая длина сообщения |
Flags |
Указывает тип сообщения (request, answer, error и др.) |
Command Code |
Тип команды (например, AA, Re-Auth, Capabilities Exchange) |
Application ID |
Идентификатор приложения (например, 4 для Mobile IPv4, 16777251 для IMS) |
Основные команды и AVP (Attribute-Value Pairs)
Основные команды:
Команда |
Описание |
CER / CEA |
Capabilities Exchange Request / Answer — обмен возможностями |
DWR / DWA |
Device Watchdog Request / Answer — проверка соединения |
RAR / RAA |
Re-Auth Request / Answer — повторная авторизация |
STR / STA |
Session Termination Request / Answer — завершение сессии |
ASR / ASA |
Abort Session Request / Answer — принудительное завершение |
AAR / AAA |
Authentication / Authorization Request / Answer — основной процесс авторизации |
Часто используемые AVP:
AVP |
Описание |
Session-ID |
Уникальный идентификатор сессии |
User-Name |
Имя пользователя или IMSI |
Origin-Host / Origin-Realm |
Имя и домен отправителя |
Destination-Host / Destination-Realm |
Имя и домен получателя |
Service-Context-ID |
Контекст сервиса (например, 16777238 для Gx, 16777216 для Cx) |
QoS-Information |
Информация о политике качества обслуживания |
Flow-Description |
Описание фильтров трафика |
Called-Station-ID |
Название точки доступа или APN |
Subscription-ID |
Идентификатор подписки (IMSI, MSISDN) |
Framed-IP-Address |
Выделенный IP-адрес |
Протокол Diameter: версии и стандарты
Версия |
Год |
Описание |
RFC 3588 |
2003 |
Первая официальная спецификация Diameter |
RFC 6733 |
2012 |
Обновленная документация, заменившая RFC 3588 |
TS 29.272 (S6a) |
3GPP |
Для взаимодействия между MME и HSS |
TS 29.214 (Gq’) |
3GPP |
Для взаимодействия между P-CSCF и PCRF |
TS 29.215 (Cx/Dx) |
3GPP |
Для взаимодействия между I-CSCF/S-CSCF и HSS |
TS 29.305 (S13) |
3GPP |
Для проверки оборудования UE |
TS 29.244 (GTPv2) |
3GPP |
Интеграция с GTP для управления сессиями |
Open Diameter Project |
— |
Реализация протокола в открытом виде |
Diameter работает поверх TCP или SCTP (Stream Control Transmission Protocol), что делает его более надёжным, чем UDP-ориентированный RADIUS.
Где применяется Diameter?
Сценарий |
Описание |
LTE / 5G |
Регистрация абонента, выделение IP, установка QoS |
IMS / VoLTE / VoWiFi |
Аутентификация, регистрация в IMS, вызовы |
Wi-Fi Calling |
Интеграция с IMS через AAA-сервер |
Policy and Charging Control (PCC) |
Управление политиками QoS и биллингом |
IoT / M2M коммуникации |
Авторизация SIM-карт в сетях LTE-M, NB-IoT |
Roaming |
Поддержка межоператорского взаимодействия |
Безопасность |
Централизованное управление доступом и политиками |
Облачные системы |
Интеграция с 5G Core, IMS и NFV инфраструктурой |
Преимущества Diameter
Преимущество |
Описание |
Масштабируемость |
Поддерживает сотни узлов и миллионы пользователей |
Расширяемость |
Возможность добавления новых AVP и команд |
Поддержка TCP/SCTP |
Надёжная доставка сообщений |
Мобильность и роуминг |
Поддержка миграции между сетями |
Интеграция с IMS / 5G |
Основной протокол в современных сетях |
Детальная политика QoS |
Настройка политик на уровне сессии |
Единая платформа |
Может использоваться для разных сервисов (VoLTE, Wi-Fi, IoT и др.) |
Недостатки и ограничения Diameter
Недостаток |
Описание |
Сложность внедрения |
Большое количество спецификаций и расширений |
Высокие требования к производительности |
Необходимы мощные серверы для обработки трафика |
Ограниченная совместимость с RADIUS |
Требуются шлюзы или адаптеры |
Не все операторы полностью поддерживают Diameter |
Многие всё ещё используют старые реализации |
Требует глубокого знания спецификаций |
Для правильной настройки требуется опыт |
Diameter vs RADIUS
Критерий |
Diameter |
RADIUS |
Уровень модели OSI |
Прикладной |
Прикладной |
Протокол передачи |
TCP / SCTP |
UDP |
Функциональность |
AAA с разделением ролей |
AAA в одном протоколе |
Шифрование |
Все поля, кроме заголовка |
Только пароль |
Поддержка EAP |
✅ |
✅ |
Авторизация на уровне команд |
❌ |
❌ |
Поддержка мобильности |
✅ |
❌ |
Поддержка 5G / IMS |
✅ |
❌ |
Совместимость |
Cisco, Huawei, Ericsson, Open Source |
Широко |
Распространённость |
В основном в мобильных сетях |
В Wi-Fi, Ethernet, PPP, VoWiFi |