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

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

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

Сравнение с RADIUS

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

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

Приложения

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

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

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

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

История

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

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

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

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

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

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

Заголовок диаметра
Битовое смещение 0 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031
0версиядлина сообщения
32рпEТ    код команды
64ID приложения
96пошаговый идентификатор
128сквозной идентификатор
160
...
AVP
...

Версия

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

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

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

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

"р"(Запрос) бит - если установлен, сообщение является запросом. Если сброшен, сообщение является ответом.

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

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

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

Команды

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

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

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

Command-NameAbbr.КодЗаявление
AA-запросAAR265Приложение Diameter NAS - RFC 7155
AA-ОтветAAA265Приложение Diameter NAS - RFC 7155
Диаметр-EAP-запросDER268Приложение Diameter EAP - RFC 4072
Диаметр-EAP-ответДЭА268Приложение Diameter EAP - RFC 4072
Abort-Session-RequestASR274Основание диаметра
Abort-Session-AnswerКАК274Основание диаметра
Бухгалтерия-ЗапросACR271Основание диаметра
Бухгалтерия-ОтветACA271Основание диаметра
Кредит-Контроль-ЗапросCCR272Приложение для кредитного контроля диаметра - RFC 8506 (Устарело RFC 4006 )
Кредит-Контроль-ОтветCCA272Приложение для кредитного контроля диаметра - RFC 8506 (Устарело RFC 4006 )
Возможности-Обмен-ЗапросCER257Основание диаметра
Возможности-Обмен-ОтветCEA257Основание диаметра
Device-Watchdog-RequestDWR280Основание диаметра
Устройство-Сторожевой таймер-ОтветDWA280Основание диаметра
Disconnect-Peer-RequestДНР282Основание диаметра
Отключить одноранговый ответDPA282Основание диаметра
Re-Auth-RequestRAR258Основание диаметра
Повторная авторизация-ответRAA258Основание диаметра
Запрос на завершение сеансаSTR275Основание диаметра
Сессия-Завершение-ОтветSTA275Основание диаметра
Пользователь-авторизация-запросUAR283Диаметр приложения SIP - RFC 4740
Пользователь-Авторизация-ОтветUAA283Диаметр приложения SIP - RFC 4740
Сервер-Назначение-ЗапросSAR284Диаметр приложения SIP - RFC 4740
Сервер-Назначение-ОтветSAA284Диаметр приложения SIP - RFC 4740
Местоположение-Информация-ЗапросLIR285Диаметр приложения SIP - RFC 4740
Местоположение-Информация-ОтветLIA285Диаметр приложения SIP - RFC 4740
Multimedia-Auth-RequestМАР286Диаметр приложения SIP - RFC 4740
Мультимедиа-Auth-ОтветMAA286Диаметр приложения SIP - RFC 4740
Регистрация-прекращение-запросРТР287Диаметр приложения SIP - RFC 4740
Регистрация-Прекращение-ОтветRTA287Диаметр приложения SIP - RFC 4740
Push-профиль-запросPPR288Диаметр приложения SIP - RFC 4740
Push-Профиль-ОтветPPA288Диаметр приложения SIP - RFC 4740
Пользователь-авторизация-запросUAR300Диаметр основания (3GPP) RFC 3589
Пользователь-Авторизация-ОтветUAA300Диаметр основания (3GPP) RFC 3589
Сервер-Назначение-ЗапросSAR301Диаметр основания (3GPP) RFC 3589
Сервер-Назначение-ОтветSAA301Диаметр основания (3GPP) RFC 3589
Местоположение-Информация-ЗапросLIR302Диаметр основания (3GPP) RFC 3589
Местоположение-Информация-ОтветLIA302Диаметр основания (3GPP) RFC 3589
Multimedia-Auth-RequestМАР303Диаметр основания (3GPP) RFC 3589
Мультимедиа-Auth-ОтветMAA303Диаметр основания (3GPP) RFC 3589
Регистрация-прекращение-запросРТР304Диаметр основания (3GPP) RFC 3589
Регистрация-Прекращение-ОтветRTA304Диаметр основания (3GPP) RFC 3589
Push-профиль-запросPPR305Диаметр основания (3GPP) RFC 3589
Push-Профиль-ОтветPPA305Диаметр основания (3GPP) RFC 3589
Пользовательские данные-запросUDR306Диаметр основания (3GPP) RFC 3589
Пользовательские данные-ответUDA306Диаметр основания (3GPP) RFC 3589
Профиль-Обновление-ЗапросПолиуретан307Диаметр основания (3GPP) RFC 3589
Профиль-Обновление-ОтветPUA307Диаметр основания (3GPP) RFC 3589
Подписка-Уведомления-ЗапросSNR308Диаметр основания (3GPP) RFC 3589
Подписка-Уведомления-ОтветСНС308Диаметр основания (3GPP) RFC 3589
Push-уведомление-запросPNR309Диаметр основания (3GPP) RFC 3589
Push-уведомление-ответPNA309Диаметр основания (3GPP) RFC 3589
Загрузочная информация-запросBIR310Диаметр основания (3GPP) RFC 3589
Загрузочная информация-ответBIA310Диаметр основания (3GPP) RFC 3589
Сообщение-Процесс-ЗапросMPR311Диаметр основания (3GPP) RFC 3589
Сообщение-Процесс-ОтветMPA311Диаметр основания (3GPP) RFC 3589
Обновление-Местоположение-ЗапросULR3163GPP TS 29.272 [RFC 5516 ]
Обновление-Местоположение-ОтветULA3163GPP TS 29.272 [RFC 5516 ]
Отмена-Запрос-МестоположениеCLR3173GPP TS 29.272 [RFC 5516 ]
Отмена-Местоположение-ОтветCLA3173GPP TS 29.272 [RFC 5516 ]
Запрос информации аутентификацииВОЗДУХА3183GPP TS 29.272 [RFC 5516 ]
Аутентификационная информация-ответAIA3183GPP TS 29.272 [RFC 5516 ]
Вставить-подписчика-данные-запросIDR3193GPP TS 29.272 [RFC 5516 ]
Вставить-данные-подписчика-ответИДА3193GPP TS 29.272 [RFC 5516 ]
Удалить-запрос-данных-подписчикаDSR3203GPP TS 29.272 [RFC 5516 ]
Удалить-данные-подписчика-ответDSA3203GPP TS 29.272 [RFC 5516 ]
Purge-UE-RequestPER3213GPP TS 29.272 [RFC 5516 ]
Очистка-UE-ОтветPEA3213GPP TS 29.272 [RFC 5516 ]
Уведомить-ЗапросNR3233GPP TS 29.272 [RFC 5516 ]
Уведомить-ОтветNA3233GPP TS 29.272 [RFC 5516 ]
Provide-Location-RequestPLR83886203GPP-LCS-SLg (идентификатор приложения 16777255)
Предоставить-Местоположение-ОтветPLA83886203GPP-LCS-SLg (идентификатор приложения 16777255)
Запрос информации о маршрутизацииRIR83886223GPP-LCS-SLh (идентификатор приложения 16777291)
Маршрутизация-Информация-ОтветRIA83886223GPP-LCS-SLh (идентификатор приложения 16777291)
AA-Mobile-Node-RequestAMR260Диаметр мобильного IPv4 - RFC 4004
AA-мобильный-узел-ответAMA260Диаметр мобильного IPv4 - RFC 4004
Главная-Агент-MIP-ЗапросHAR262Диаметр мобильного IPv4 - RFC 4004
Главная-Агент-MIP-ОтветHAA262Диаметр мобильного IPv4 - RFC 4004
Конфигурация-Информация-ЗапросCIR8388718S6t согласно 3GPP TS 29.336
Конфигурация-Информация-ОтветЦРУ8388718S6t согласно 3GPP TS 29.336
Отчет-Информация-ЗапросRIR8388719S6t согласно 3GPP TS 29.336
Отчетность-Информация-ОтветRIA8388719S6t согласно 3GPP TS 29.336
NIDD-Information-RequestNIR8388726S6t согласно 3GPP TS 29.336
NIDD-Информация-ОтветNIA8388726S6t согласно 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.[4]

ID приложенияAbbr.Полное имяиспользование
0ОснованиеОбщие сообщения DiameterУстановление / разборка / обслуживание ассоциации протокола Diameter
16777216Cx / Dx3GPP Cx / DxIMS I / S-CSCF к интерфейсу HSS
16777217Ш3GPP ShСервер приложений VoIP / IMS SIP к интерфейсу HSS
16777236Rx3GPP RxПолитика и контроль начисления
16777238Gx3GPP GxПолитика и контроль начисления
16777251S6a / S6d3GPP S6a / S6dСигнализация о роуминге LTE
16777252S133GPP 13Интерфейс между EIR и MME
16777255SLg3GPP LCS SLgСервисы определения местоположения
16777345S6t3GPP 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 910111213141516171819202122232425262728293031
0Код AVP
32VMп     Длина AVP
64идентификатор поставщика (необязательно)
96
...
данные
...

Для простоты, AVP Flag "V"бит означает" В зависимости от поставщика; "M"бит означает Обязательный; "п"бит означает Защищено.

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

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

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

Имя атрибутаКодТип данных
Acct-Interim-Interval85Беззнаковый32
Бухгалтерский учет в реальном времени483Пронумерованный
Acct-Multi-Session-Id50UTF8String
Номер бухгалтерской записи485Беззнаковый32
Тип бухгалтерской записи480Пронумерованный
Account-Session-Id44OctetString
Account-Sub-Session-Id287Беззнаковый64
Acct-Application-Id259Беззнаковый32
Auth-Application-Id258Беззнаковый32
Auth-Request-Type274Пронумерованный
Срок действия авторизации291Беззнаковый32
Auth-Grace-Period276Беззнаковый32
Auth-Session-State277Пронумерованный
Re-Auth-Request-Type285Пронумерованный
Учебный класс25OctetString
Назначение-Хост293DiamIdent
Место назначения283DiamIdent
Отключение-Причина273Пронумерованный
E2E-последовательность300Сгруппированы
Сообщение об ошибке281UTF8String
Сообщение об ошибках-хост294DiamIdent
Отметка времени события55Время
Экспериментальный результат297Сгруппированы
Код экспериментального результата298Беззнаковый32
Failed-AVP279Сгруппированы
Прошивка-Ревизия267Беззнаковый32
Хост-IP-адрес257Адрес
Inband-Security-Id299Беззнаковый32
Время ожидания нескольких раундов272Беззнаковый32
Origin-Host264DiamIdent
Origin-Realm296DiamIdent
Origin-State-Id278Беззнаковый32
Наименование товара269UTF8String
Прокси-хост280DiamIdent
Прокси-информация284Сгруппированы
Прокси-государство33OctetString
Redirect-Host292DiamURI
Redirect-Host-Usage261Пронумерованный
Перенаправление-Макс-Кэш-время262Беззнаковый32
Код результата268Беззнаковый32
Маршрут-Запись282DiamIdent
Идентификатор сессии263UTF8String
Время ожидания сеанса27Беззнаковый32
Привязка сеанса270Беззнаковый32
Сеанс-сервер-отказоустойчивость271Пронумерованный
Поддерживаемый-Vendor-Id265Беззнаковый32
Прекращение - Причина295Пронумерованный
Имя пользователя1UTF8String
Vendor-Id266Беззнаковый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Приложение обработки политики Diameter.Март 2008 г.
RFC 5431Diameter Приложение интерфейса применения политики Rw ITU-T.Март 2009 г.
RFC 5447Diameter 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 г.

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

Рекомендации

  1. ^ Пэт Р. Калхун, Глен Зорн и Пинг Пан (февраль 2001 г.). «Рамочный документ DIAMETER». IETF. Получено 30 апреля 2009.
  2. ^ Наман Мехта (20 марта 2009 г.). «Введение в протокол Diameter - что такое протокол Diameter?». Sun Microsystems. Архивировано из оригинал 4 июля 2011 г.. Получено 30 апреля 2009.
  3. ^ «RFC 6733 - базовый протокол диаметра». ПРЕДЛАГАЕМЫЙ СТАНДАРТ. Стандарты Track. ISSN  2070-1721. Получено 12 октября 2014.
  4. ^ «RFC 4006 - Приложение для контроля кредита диаметра». ПРЕДЛАГАЕМЫЙ СТАНДАРТ. Стандарты Track.

внешняя ссылка