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 |