BroadNet
DIAMETERОсновы

Базовый протокол DIAMETER: разбор RFC 6733

Обновлено 4 мин чтенияна основе стандартов
Прямой ответ

DIAMETER (IETF RFC 6733) — это протокол AAA и сигнализации для взаимодействия LTE, IMS и 5G. Он переносит пары команд «запрос/ответ» — каждая из 20-байтового заголовка и набора AVP — поверх SCTP или TCP с TLS. Пиры согласуют возможности через CER/CEA, контролируют доступность через DWR/DWA и корректно завершают соединение через DPR/DPA.

§01

Что такое DIAMETER

DIAMETER — это базовый протокол аутентификации, авторизации и учёта (AAA), определённый IETF в RFC 6733, и транспорт, выбранный 3GPP для плоскости управления LTE и IMS. Он заменил RADIUS в крупных сетях операторов и является на пакетной стороне аналогом SS7/MAP на унаследованной стороне — перенося управление подпиской и мобильностью (S6a к HSS), политику и тарификацию (Gx, Gy), а также регистрацию в IMS (Cx/Dx). Всё работает как пары команд «запрос/ответ» между именованными пирами, идентифицируемыми через Diameter Identity (FQDN) и сгруппированными в реалмы.

§02

Заголовок сообщения

Каждое сообщение DIAMETER начинается с фиксированного 20-октетного заголовка, за которым следует переменный список AVP. Заголовок несёт поле Version (всегда 1), 24-битное Message Length, октет Command Flags, 24-битный Command Code, 32-битный Application-Id, называющий приложение, к которому относится сообщение, и два идентификатора. Hop-by-Hop Identifier сопоставляет запрос его ответу между двумя соседними пирами и переписывается каждым прокси; End-to-End Identifier задаётся отправителем, сохраняется неизменным на всём пути и служит для обнаружения дубликатов.

Заголовок сообщения DIAMETER по RFC 6733 (20 октетов)text
0                   1                   2                   3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Version=1    |            Message Length (24)             |
| Command Flags |            Command Code (24)               |
|                    Application-Id (32)                     |
|                 Hop-by-Hop Identifier (32)                 |
|                 End-to-End Identifier (32)                 |
|  AVPs ...                                                  |
Command Flags:  R P E T r r r r
§03

Флаги команд и коды команд

Command Code вместе с Application-Id называют операцию; ответ повторно использует тот же код команды со сброшенным битом Request. Четыре флага команд несут семантику сообщения. R (Request) отличает запрос от ответа. P (Proxiable) означает, что сообщение может быть проксировано, ретранслировано или перенаправлено, а не обработано локально. E (Error) помечает ответ с протокольной ошибкой. T (potentially re-transmitted) помечает запрос, отправленный повторно после сбоя канала, чтобы получатель мог защититься от дубликатов. Базовый протокол определяет служебные команды; приложения, такие как S6a, Gx и Cx, определяют собственные коды команд поверх него.

Коды команд базового DIAMETER (RFC 6733)
КомандаКодНазначение
CER / CEA257Capabilities-Exchange — согласование поддерживаемых приложений при подключении
DWR / DWA280Device-Watchdog — проверка активности пира / keepalive (RFC 3539)
DPR / DPA282Disconnect-Peer — упорядоченное завершение соединения
RAR / RAA258Re-Auth — сервер запрашивает у клиента повторную авторизацию сессии
STR / STA275Session-Termination — клиент завершает авторизованную сессию
ASR / ASA274Abort-Session — сервер принудительно завершает сессию
ACR / ACA271Accounting-Request/Answer (базовый учёт)
§04

Обмен возможностями: CER / CEA

Сразу после открытия транспортного соединения два пира обмениваются сообщениями Capabilities-Exchange-Request и Answer (команда 257, Application-Id 0). Каждая сторона объявляет свои Origin-Host и Origin-Realm, свой Host-IP-Address, Vendor-Id и — что важнее всего — набор поддерживаемых приложений через AVP Auth-Application-Id, Acct-Application-Id и Vendor-Specific-Application-Id. Если у пиров нет общего приложения, соединение отклоняется. CER/CEA — это способ, которым узел узнаёт, способен ли пир говорить на S6a, Gx или Cx, прежде чем пойдёт прикладной трафик, и происходит он ровно один раз за соединение.

§05

Поддержание соединения и завершение: DWR / DPR

DIAMETER использует watchdog из RFC 3539 для обнаружения «мёртвого» пира быстрее, чем это сделал бы сам транспорт. Когда соединение простаивает, пир отправляет Device-Watchdog-Request (команда 280) и ожидает Device-Watchdog-Answer в пределах интервала watchdog; повторные пропуски переводят пир в состояние сбоя, и трафик перенаправляется на альтернативный. Чтобы намеренно закрыть соединение — для обслуживания или переконфигурации — пир отправляет Disconnect-Peer-Request (команда 282) с Disconnect-Cause (REBOOTING, BUSY или DO_NOT_WANT_TO_TALK_TO_YOU), позволяя другой стороне решить, переподключаться ли.

§06

Транспорт: SCTP и TCP с TLS

RFC 6733 требует поддержки как SCTP (RFC 4960), так и TCP, причём SCTP предпочтителен для сигнализации, поскольку его мультиплексирование потоков исключает блокировку начала очереди (head-of-line), а мультихоуминг обеспечивает избыточность путей. Общеизвестный порт — 3868. Безопасность обеспечивается TLS поверх TCP или DTLS поверх SCTP; внутри доверенного домена оператора многие развёртывания вместо этого используют IPsec на сетевом уровне. У DIAMETER нет собственной внутриполосной аутентификации сообщений, поэтому важны транспортная безопасность и пограничная фильтрация, рассматриваемые в разделе о безопасности роуминга DIAMETER.

Часто задаваемые вопросы

Часто задаваемые вопросы

Что такое базовый протокол DIAMETER?

Это протокол AAA и сигнализации, определённый в IETF RFC 6733, используемый как транспорт плоскости управления для взаимодействия LTE, IMS и 5G. Он переносит пары команд «запрос/ответ» — 20-байтовый заголовок плюс AVP — поверх SCTP или TCP с TLS и определяет обмен возможностями, watchdog для поддержания связи и корректное отключение.

Что означают флаги R, P, E и T?

R помечает запрос (Request, сброшен в ответе). P помечает сообщение как Proxiable — оно может быть ретранслировано, проксировано или перенаправлено. E помечает ответ с ошибкой (Error). T помечает запрос как потенциально повторно переданный после failover, чтобы получатель мог обнаружить дубликат по End-to-End Identifier.

В чём разница между Hop-by-Hop и End-to-End Identifier?

Hop-by-Hop Identifier сопоставляет запрос его ответу между двумя соседними пирами и переписывается каждым прокси. End-to-End Identifier задаётся один раз отправителем, сохраняется неизменным на всём пути и используется для обнаружения дублирующихся сообщений после повторной передачи.

Для чего нужен обмен CER/CEA?

Capabilities-Exchange-Request/Answer (команда 257) выполняется один раз при открытии соединения. Пиры объявляют свою идентичность и поддерживаемые приложения DIAMETER (Auth-Application-Id, Vendor-Specific-Application-Id). Если общего приложения нет, соединение отклоняется, поэтому обе стороны заранее знают, могут ли они говорить на S6a, Gx или Cx.

Какие порт и транспорт использует DIAMETER?

DIAMETER использует общеизвестный порт 3868 поверх SCTP или TCP, причём для сигнализации предпочтителен SCTP из-за мультиплексирования потоков и мультихоуминга. Безопасность — TLS поверх TCP или DTLS поверх SCTP; внутри доверенного домена оператора вместо этого распространён IPsec на сетевом уровне.

Как пир DIAMETER определяет, что его партнёр отказал?

Он использует device watchdog из RFC 3539: на простаивающем соединении пир отправляет Device-Watchdog-Request (команда 280) и ожидает Device-Watchdog-Answer в пределах интервала watchdog. Повторно пропущенные ответы переводят пир в состояние сбоя, и трафик перенаправляется на альтернативный пир.

Ссылки

Технические характеристики источника

На этой странице представлены опубликованные стандарты, на которых они основаны. (Открывается в новой вкладке)

BNПоддерживается инженерной командой BroadNet·Обмен сообщениями операторского класса с 2003 года.
Прикрепите это к проводу

Разработано с использованием реального SMPP подключения и REST API.

Запросите тестовый доступ с реальными тестовыми ключами: сначала отправьте их на свой подтвержденный номер, а затем, после утверждения вашей личности отправителя и маршрутов, переходите к использованию в производственной среде более чем в 200 странах.