Диаметр (протокол) - Diameter (protocol)

Диаметр - это протокол аутентификации, авторизации и учета для компьютерных сетей. Он произошел от более раннего протокола RADIUS . Он принадлежит к протоколам прикладного уровня в наборе интернет-протоколов .

Приложения Diameter расширяют базовый протокол, добавляя новые команды и / или атрибуты, например, для использования с расширяемым протоколом аутентификации (EAP).

Сравнение с RADIUS

Название - игра слов, полученная из протокола RADIUS , который является предшественником (диаметр в два раза больше радиуса). Диаметр не имеет прямой обратной совместимости, но обеспечивает возможность обновления для RADIUS. Основные функции, предоставляемые Diameter, но отсутствующие в RADIUS:

Также: как и RADIUS, он предназначен для работы как в локальном, так и в роуминге AAA. Он использует TCP или SCTP, в отличие от RADIUS, который использует UDP. В отличие от RADIUS он не включает шифрования, но может быть защищен безопасностью транспортного уровня (IPSEC или TLS). Базовый размер идентификатора AV составляет 32 бита, в отличие от RADIUS, который использует 8 бит в качестве размера базового идентификатора AV. Как и RADIUS, он поддерживает режимы без отслеживания и с отслеживанием состояния. Как и RADIUS, он поддерживает подтверждение на уровне приложений и определяет аварийное переключение. Диаметр используется для множества различных интерфейсов, определенных стандартами 3GPP, причем каждый интерфейс обычно определяет новые команды и атрибуты.

Приложения

Диаметр Применение не прикладное программное обеспечение , но это протокол , основанный на протоколе базового диаметра , определенного в RFC 6733 и RFC 7075 (Obsoletes: RFC 3588 ). Каждое приложение определяется идентификатором приложения и может добавлять новые коды команд и / или новые обязательные AVP ( пара атрибут-значение ). Добавление новой дополнительной AVP не требует нового приложения.

Примеры применения диаметра:

  • Приложение Diameter Mobile IPv4 (MobileIP, RFC 4004 )
  • Приложение сервера доступа к сети Diameter (NASREQ, RFC 7155 ) (Устарело: RFC 4005 )
  • Приложение протокола расширяемой аутентификации Diameter ( RFC 4072 )
  • Приложение Diameter Credit-Control (DCCA, RFC 8506 ]) (Устарело: RFC 4006 )
  • Приложение протокола инициирования сеанса Diameter ( RFC 4740 )
  • Различные приложения в подсистеме мультимедиа IP 3GPP
И HSS, и SLF обмениваются данными с использованием протокола Diameter.

(Общая архитектура начальной загрузки): функция сервера начальной загрузки

История

Протокол Diameter был первоначально разработан Пэтом Р. Калхоуном, Гленом Зорном и Пингом Пэном в 1998 году, чтобы обеспечить основу для аутентификации, авторизации и учета ( AAA ), которая могла бы преодолеть ограничения RADIUS. У RADIUS были проблемы с надежностью, масштабируемостью, безопасностью и гибкостью. RADIUS не может эффективно справляться с удаленным доступом, IP-мобильностью и контролем политик. Протокол Diameter определяет протокол политики, используемый клиентами для выполнения политики, AAA и управления ресурсами. Это позволяет одному серверу обрабатывать политики для многих служб.

Как и RADIUS, Diameter обеспечивает функциональность AAA, но использует TCP и SCTP вместо UDP , таким образом делегируя обнаружение и обработку проблем связи этим протоколам. Протокол Diameter дополнительно усовершенствован за счет развития мультимедийной IP-подсистемы (IMS) Проекта партнерства третьего поколения (3GPP ). Интерфейсы S6a, S6b, Gx, Gy, Sy, Rx, Cx, Dh, Dx, Rf, Ro, Sh и Zh поддерживаются приложениями Diameter. Благодаря использованию расширений, протокол был разработан с возможностью расширения для поддержки прокси, брокеров, надежной защиты, мобильного IP, серверов доступа к сети (NASREQ), учета и управления ресурсами.

Описание протокола

Базовый протокол Diameter определяется RFC 6733 (устарел: RFC 3588 и RFC 5719 ) и определяет минимальные требования для протокола AAA . Приложения Diameter могут расширять базовый протокол, добавляя новые команды, атрибуты или и то, и другое. Безопасность диаметра обеспечивается IPsec или TLS . Как указано в разделе 11.4 RFC 6733, IANA назначило порт TCP и номер порта SCTP 3868 для Diameter .

Формат пакета

Пакет состоит из заголовка Diameter и переменного количества пар атрибут-значение, или AVP, для инкапсуляции информации, относящейся к сообщению Diameter.

Заголовок диаметра
Битовое смещение  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 версия длина сообщения
32 R P E T         код команды
64 ID приложения
96 пошаговый идентификатор
128 сквозной идентификатор
160
...
AVP
...

Версия

В этом поле указывается версия протокола Diameter Base. По состоянию на 2014 год поддерживается только значение 1.

Длина сообщения

Поле длины сообщения указывает длину сообщения Diameter в байтах, включая поля заголовка и дополненные AVP.

Командные флаги

Бит « R » (запрос) - если установлен, сообщение является запросом. Если не указано, сообщение является ответом.

Бит « P » (проксируемый) - если установлен, сообщение МОЖЕТ быть проксировано, ретранслировано или перенаправлено. Если сброшено, сообщение ДОЛЖНО обрабатываться локально.

Бит « E » (ошибка) - если установлен, сообщение содержит ошибку протокола, и сообщение не будет соответствовать CCF, описанному для этой команды. Сообщения с установленным битом «E» обычно называются сообщениями об ошибках. Этот бит НЕ ДОЛЖЕН устанавливаться в сообщениях запроса.

Бит « T » (потенциально повторно переданное сообщение) - этот флаг устанавливается после процедуры переключения при отказе канала, чтобы способствовать удалению повторяющихся запросов. Он устанавливается при повторной отправке запросов, которые еще не подтверждены, как указание на возможное дублирование из-за сбоя связи.

Команды

Каждой паре запрос / ответ команды назначается код команды. То, является ли это запрос или ответ, определяется битом «R» в поле «Командные флаги» заголовка.

Значения 0–255 зарезервированы для обратной совместимости с RADIUS. Значения 256–16777213 предназначены для постоянных стандартных команд, выделенных IANA . Значения 16777214 и 16777215 (шестнадцатеричные 0xFFFFFE и 0xFFFFFF) зарезервированы для экспериментальных и тестовых целей.

Код команды используется для определения действия, которое необходимо предпринять для конкретного сообщения. Некоторые общие команды Diameter, определенные в протоколе (базовом и прикладном):

Command-Name Сокр. Код заявка
AA-запрос AAR 265 Приложение Diameter NAS - RFC 7155
AA-Ответ AAA 265 Приложение Diameter NAS - RFC 7155
Диаметр-EAP-запрос DER 268 Приложение Diameter EAP - RFC 4072
Диаметр-EAP-ответ ДЭА 268 Приложение Diameter EAP - RFC 4072
Abort-Session-Request ASR 274 Основание диаметра
Отмена-Сессия-Ответ КАК 274 Основание диаметра
Бухгалтерия-Запрос ACR 271 Основание диаметра
Бухгалтерия-Ответ ACA 271 Основание диаметра
Кредит-Контроль-Запрос CCR 272 Приложение Diameter Credit-Control - RFC 8506 ( RFC 4006 устарел )
Кредит-Контроль-Ответ CCA 272 Приложение Diameter Credit-Control - RFC 8506 ( RFC 4006 устарел )
Возможности-Обмен-Запрос CER 257 Основание диаметра
Возможности-Обмен-Ответ CEA 257 Основание диаметра
Device-Watchdog-Request DWR 280 Основание диаметра
Устройство-Сторожевой таймер-Ответ DWA 280 Основание диаметра
Disconnect-Peer-Request ДНР 282 Основание диаметра
Отключить одноранговый ответ DPA 282 Основание диаметра
Re-Auth-Request RAR 258 Основание диаметра
Повторная авторизация-ответ RAA 258 Основание диаметра
Запрос на завершение сеанса STR 275 Основание диаметра
Сессия-Завершение-Ответ STA 275 Основание диаметра
Пользователь-авторизация-запрос UAR 283 Приложение Diameter SIP - RFC 4740
Пользователь-Авторизация-Ответ UAA 283 Приложение Diameter SIP - RFC 4740
Сервер-Назначение-Запрос SAR 284 Приложение Diameter SIP - RFC 4740
Сервер-Назначение-Ответ SAA 284 Приложение Diameter SIP - RFC 4740
Местоположение-Информация-Запрос LIR 285 Приложение Diameter SIP - RFC 4740
Местоположение-Информация-Ответ LIA 285 Приложение Diameter SIP - RFC 4740
Multimedia-Auth-Request МАР 286 Приложение Diameter SIP - RFC 4740
Мультимедиа-Auth-Ответ MAA 286 Приложение Diameter SIP - RFC 4740
Регистрация-прекращение-запрос РТР 287 Приложение Diameter SIP - RFC 4740
Регистрация-Прекращение-Ответ RTA 287 Приложение Diameter SIP - RFC 4740
Push-профиль-запрос PPR 288 Приложение Diameter SIP - RFC 4740
Push-Профиль-Ответ PPA 288 Приложение Diameter SIP - RFC 4740
Пользователь-авторизация-запрос UAR 300 Основание диаметра (3GPP) RFC 3589
Пользователь-Авторизация-Ответ UAA 300 Основание диаметра (3GPP) RFC 3589
Сервер-Назначение-Запрос SAR 301 Основание диаметра (3GPP) RFC 3589
Сервер-Назначение-Ответ SAA 301 Основание диаметра (3GPP) RFC 3589
Местоположение-Информация-Запрос LIR 302 Основание диаметра (3GPP) RFC 3589
Местоположение-Информация-Ответ LIA 302 Основание диаметра (3GPP) RFC 3589
Multimedia-Auth-Request МАР 303 Основание диаметра (3GPP) RFC 3589
Мультимедиа-Auth-Ответ MAA 303 Основание диаметра (3GPP) RFC 3589
Регистрация-прекращение-запрос РТР 304 Основание диаметра (3GPP) RFC 3589
Регистрация-Прекращение-Ответ RTA 304 Основание диаметра (3GPP) RFC 3589
Push-профиль-запрос PPR 305 Основание диаметра (3GPP) RFC 3589
Push-Профиль-Ответ PPA 305 Основание диаметра (3GPP) RFC 3589
Пользовательские данные-запрос UDR 306 Основание диаметра (3GPP) RFC 3589
Пользовательские данные-ответ UDA 306 Основание диаметра (3GPP) RFC 3589
Профиль-Обновление-Запрос Полиуретан 307 Основание диаметра (3GPP) RFC 3589
Профиль-Обновление-Ответ PUA 307 Основание диаметра (3GPP) RFC 3589
Подписка-Уведомления-Запрос SNR 308 Основание диаметра (3GPP) RFC 3589
Подписка-Уведомления-Ответ СНС 308 Основание диаметра (3GPP) RFC 3589
Push-уведомление-запрос PNR 309 Основание диаметра (3GPP) RFC 3589
Push-уведомление-ответ PNA 309 Основание диаметра (3GPP) RFC 3589
Загрузочная информация-запрос BIR 310 Основание диаметра (3GPP) RFC 3589
Загрузочная информация-ответ BIA 310 Основание диаметра (3GPP) RFC 3589
Сообщение-Процесс-Запрос MPR 311 Основание диаметра (3GPP) RFC 3589
Сообщение-Процесс-Ответ MPA 311 Основание диаметра (3GPP) RFC 3589
Обновление-Местоположение-Запрос ULR 316 3GPP TS 29.272 [ RFC 5516 ]
Обновление-Местоположение-Ответ ULA 316 3GPP TS 29.272 [ RFC 5516 ]
Отмена-Запрос-Местоположение CLR 317 3GPP TS 29.272 [ RFC 5516 ]
Отмена-Местоположение-Ответ CLA 317 3GPP TS 29.272 [ RFC 5516 ]
Запрос информации аутентификации ВОЗДУХА 318 3GPP TS 29.272 [ RFC 5516 ]
Аутентификационная информация-ответ AIA 318 3GPP TS 29.272 [ RFC 5516 ]
Вставить-подписчика-данные-запрос IDR 319 3GPP TS 29.272 [ RFC 5516 ]
Вставить-данные-подписчика-ответ ИДА 319 3GPP TS 29.272 [ RFC 5516 ]
Удалить-запрос-данных-подписчика DSR 320 3GPP TS 29.272 [ RFC 5516 ]
Удалить-данные-подписчика-ответ DSA 320 3GPP TS 29.272 [ RFC 5516 ]
Purge-UE-Request PER 321 3GPP TS 29.272 [ RFC 5516 ]
Очистка-UE-Ответ PEA 321 3GPP TS 29.272 [ RFC 5516 ]
Уведомить-Запрос NR 323 3GPP TS 29.272 [ RFC 5516 ]
Уведомить-Ответ NA 323 3GPP TS 29.272 [ RFC 5516 ]
Provide-Location-Request PLR 8388620 3GPP-LCS-SLg (идентификатор приложения 16777255)
Предоставить-Местоположение-Ответ PLA 8388620 3GPP-LCS-SLg (идентификатор приложения 16777255)
Запрос информации о маршрутизации RIR 8388622 3GPP-LCS-SLh (идентификатор приложения 16777291)
Маршрутизация-Информация-Ответ RIA 8388622 3GPP-LCS-SLh (идентификатор приложения 16777291)
AA-Mobile-Node-Request AMR 260 Диаметр мобильного IPv4 - RFC 4004
AA-мобильный-узел-ответ AMA 260 Диаметр мобильного IPv4 - RFC 4004
Главная-Агент-MIP-Запрос HAR 262 Диаметр мобильного IPv4 - RFC 4004
Главная-Агент-MIP-Ответ HAA 262 Диаметр мобильного IPv4 - RFC 4004
Конфигурация-Информация-Запрос CIR 8388718 S6t согласно 3GPP TS 29.336
Конфигурация-Информация-Ответ ЦРУ 8388718 S6t согласно 3GPP TS 29.336
Отчет-Информация-Запрос RIR 8388719 S6t согласно 3GPP TS 29.336
Отчетность-Информация-Ответ RIA 8388719 S6t согласно 3GPP TS 29.336
NIDD-Information-Request NIR 8388726 S6t согласно 3GPP TS 29.336
NIDD-Информация-Ответ NIA 8388726 S6t согласно 3GPP TS 29.336

ID приложения

Application-ID используется для определения того, для какого приложения Diameter применимо сообщение. Приложение может быть приложением для аутентификации, бухгалтерским приложением или приложением для конкретного поставщика.

Агенты Diameter, соответствующие определенному расширению Diameter, сообщают о своей поддержке путем включения определенного значения в атрибут Auth-Application-Id команд Capabilities-Exchange-Request (CER) и Capabilities-Exchange-Answer (CEA).

Значение поля Application-ID в заголовке такое же, как и любые соответствующие AVP Application-Id, содержащиеся в сообщении. Например, значение Application-ID и атрибута Auth-Application-Id в командах Credit-Control-Request (CCR) и Credit-Control-Answer (CCA) для приложения Diameter Credit-Control равно 4.

ID приложения Сокр. Полное имя Применение
0 База Общие сообщения Diameter Установление / разборка / обслуживание ассоциации протокола Diameter
16777216 Cx / Dx 3GPP Cx / Dx IMS I / S-CSCF к интерфейсу HSS
16777217 Ш 3GPP Sh Сервер приложений VoIP / IMS SIP к интерфейсу HSS
16777236 Rx 3GPP Rx Политика и контроль начисления
16777238 Gx 3GPP Gx Политика и контроль начисления
16777251 S6a / S6d 3GPP S6a / S6d Сигнализация о роуминге LTE
16777252 S13 3GPP 13 Интерфейс между EIR и MME
16777255 SLg 3GPP LCS SLg Сервисы определения местоположения
16777345 S6t 3GPP S6t Интерфейс между SCEF и HSS

Пошаговый идентификатор

Идентификатор шага за шагом представляет собой 32-битное целочисленное поле без знака (в сетевом порядке байтов), которое используется для сопоставления запросов с их ответами, поскольку в ответе используется то же значение в запросе.

Протокол Diameter требует, чтобы агенты ретрансляции и проксирования поддерживали состояние транзакции, которое используется для переключения при отказе. Состояние транзакции подразумевает, что при пересылке запроса сохраняется его пошаговый идентификатор; поле заменяется локальным уникальным идентификатором, который восстанавливается до своего исходного значения при получении соответствующего ответа. Состояние запроса сбрасывается после получения ответа. Полученные ответы, которые не соответствуют известному идентификатору перехода, игнорируются агентом Diameter.

В случае перенаправления агентов в заголовке сохраняется пошаговый идентификатор, поскольку агент Diameter отвечает сообщением ответа.

Сквозной идентификатор

Сквозной идентификатор - это 32-битное целочисленное поле без знака (в сетевом порядке байтов), которое используется для обнаружения повторяющихся сообщений вместе с комбинацией AVP источника-хоста.

При создании запроса для End-to-End Identifier устанавливается локально уникальное значение. Сквозной идентификатор не изменяется агентами Diameter любого типа, и в ответе используется то же значение, что и в соответствующем запросе.

Пары атрибут-значение (AVP)

Заголовок AVP
Битовое смещение  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 Код AVP
32 V M P           Длина AVP
64 идентификатор поставщика (необязательно)
96
...
данные
...

Для простоты, бит " V " флага AVP означает, что это зависит от поставщика ; Бит « M » означает обязательный ; Бит « P » означает « Защищено» .

Бит « V », известный как бит Vendor-Specific, указывает, присутствует ли дополнительное поле Vendor-ID в заголовке AVP. При установке код AVP принадлежит конкретному адресному пространству кода поставщика.

Бит « M », известный как обязательный бит, указывает, требуется ли поддержка AVP. Если AVP с установленным битом « M » получен Diameter-клиентом, сервером, прокси-сервером или агентом трансляции и либо AVP, либо его значение не распознаны, сообщение должно быть отклонено. Агенты Diameter Relay и перенаправления не должны отклонять сообщения с нераспознанными AVP.

Бит « P » указывает на необходимость шифрования для сквозной безопасности.

Имя атрибута Код Тип данных
Acct-Interim-Interval 85 Беззнаковый32
Бухгалтерский учет в реальном времени 483 Пронумерованный
Acct-Multi-Session-Id 50 UTF8String
Номер бухгалтерской записи 485 Беззнаковый32
Тип бухгалтерской записи 480 Пронумерованный
Идентификатор сеанса учета 44 OctetString
Account-Sub-Session-Id 287 Беззнаковый64
Acct-Application-Id 259 Беззнаковый32
Auth-Application-Id 258 Беззнаковый32
Auth-Request-Type 274 Пронумерованный
Срок действия авторизации 291 Беззнаковый32
Auth-Grace-Period 276 Беззнаковый32
Auth-Session-State 277 Пронумерованный
Re-Auth-Request-Type 285 Пронумерованный
Класс 25 OctetString
Назначение-Хост 293 DiamIdent
Место назначения 283 DiamIdent
Отключение-Причина 273 Пронумерованный
E2E-последовательность 300 Сгруппированы
Сообщение об ошибке 281 UTF8String
Сообщение об ошибках-хост 294 DiamIdent
Отметка времени события 55 Время
Экспериментальный результат 297 Сгруппированы
Код экспериментального результата 298 Беззнаковый32
Failed-AVP 279 Сгруппированы
Прошивка-Ревизия 267 Беззнаковый32
Хост-IP-адрес 257 Адрес
Inband-Security-Id 299 Беззнаковый32
Время ожидания нескольких раундов 272 Беззнаковый32
Origin-Host 264 DiamIdent
Origin-Realm 296 DiamIdent
Origin-State-Id 278 Беззнаковый32
Наименование товара 269 UTF8String
Прокси-хост 280 DiamIdent
Прокси-информация 284 Сгруппированы
Прокси-государство 33 OctetString
Redirect-Host 292 DiamURI
Redirect-Host-Usage 261 Пронумерованный
Перенаправление-Макс-Кэш-Время 262 Беззнаковый32
Код результата 268 Беззнаковый32
Маршрут-Запись 282 DiamIdent
Идентификатор сессии 263 UTF8String
Время ожидания сеанса 27 Беззнаковый32
Привязка сеанса 270 Беззнаковый32
Сеанс-сервер-отказоустойчивость 271 Пронумерованный
Поддерживаемый-Vendor-Id 265 Беззнаковый32
Прекращение-Причина 295 Пронумерованный
Имя пользователя 1 UTF8String
Vendor-Id 266 Беззнаковый32
Идентификатор приложения, зависящего от поставщика 260 Сгруппированы

Государственные машины

RFC 3588 определяет состояние сердечник машины для поддержания связи между коллегами и обработки сообщений. Это часть основных функциональных возможностей протокола, и все стеки должны поддерживать его и, таким образом, абстрагироваться от операций, связанных с подключением.

Кроме того, конечные автоматы для конкретных приложений могут быть введены либо позже, либо на более высоком уровне абстракции. RFC 3588 определяет разрешение и учет государственной машины.

Потоки сообщений

Диаметр сообщения потока.png

Связь между двумя одноранговыми узлами диаметра начинается с установления транспортного соединения ( TCP или SCTP ). Затем инициатор отправляет Capabilities-Exchange-Request (CER) другому одноранговому узлу, который отвечает ответом Capabilities-Exchange-Answer (CEA). Для одноранговых узлов, совместимых с RFC3588, можно дополнительно согласовать TLS (безопасность транспортного уровня). Для одноранговых узлов, совместимых с RFC6733, согласование TLS необязательно может происходить до CER / CEA.

После этого соединение готово для обмена сообщениями приложений.

Если в течение некоторого времени обмен сообщениями не производился, любая из сторон может послать Device-Watchdog-Request (DWR), а другой партнер должен ответить Device-Watchdog-Answer.

Любая сторона может прервать связь, отправив Disconnect-Peer-Request (DPR), на который другой одноранговый узел должен ответить Disconnect-Peer-Answer. После этого транспортное соединение можно отключить.

RFC

Протокол Diameter в настоящее время определен в следующих документах IETF RFC: Устаревшие RFC обозначаются зачеркнутым текстом.

# заглавие Дата публикации Связанная статья Устарело Заметки
RFC 3588 Базовый протокол диаметра. Сентябрь 2003 г. RFC 6733
RFC 3589 Коды команд Diameter для проекта партнерства третьего поколения (3GPP), выпуск 5. Сентябрь 2003 г.
RFC 4004 Приложение Diameter Mobile IPv4. Август 2005 г.
RFC 4005 Приложение сервера доступа к сети Diameter. Август 2005 г. RFC 7155
RFC 4006 Приложение для кредитного контроля диаметра. Август 2005 г. Приложение для кредитного контроля диаметра RFC 8506
RFC 4072 Приложение Diameter Extensible Authentication Protocol (EAP). Август 2005 г.
RFC 4740 Приложение протокола инициирования сеанса Diameter (SIP). М. Ноябрь 2006 г.
RFC 5224 Приложение обработки политики диаметра. Март 2008 г.
RFC 5431 Diameter Приложение интерфейса применения политики Rw ITU-T. Март 2009 г.
RFC 5447 Diameter Mobile IPv6: поддержка взаимодействия сервера доступа к сети и сервера Diameter. Февраль 2009 г.
RFC 5516 Регистрация кода команды Diameter для усовершенствованной пакетной системы (EPS) проекта партнерства третьего поколения (3GPP). Апрель 2009 г. -
RFC 5624 Параметры качества обслуживания для использования с диаметром. Август 2009 г.
RFC 5719 Обновлены рекомендации IANA по распределению кода команд Diameter. Январь 2010 г. RFC 6733
RFC 6733 Базовый протокол диаметра. Октябрь 2012 г.
RFC 6737 Приложение обновления возможностей диаметра. Октябрь 2012 г.
RFC 7155 Приложение сервера доступа к сети Diameter. Апрель 2014 г.


RFC 8506 Приложение для кредитного контроля диаметра. Март 2019 г.

Смотрите также

использованная литература

внешние ссылки