BroadNet
DIAMETERFundamentos

Protocolo base DIAMETER: RFC 6733 explicado

Actualizado el 5 min de lecturaBasado en estándares
Respuesta directa

DIAMETER (IETF RFC 6733) es el protocolo de AAA y señalización para la interconexión de LTE, IMS y 5G. Transporta pares de comandos petición/respuesta —cada uno una cabecera de 20 bytes más AVP— sobre SCTP o TCP con TLS. Los pares negocian capacidades con CER/CEA, vigilan la actividad con DWR/DWA y cierran ordenadamente con DPR/DPA.

§01

Qué es DIAMETER

DIAMETER es el protocolo base de autenticación, autorización y contabilidad (AAA) definido por el IETF en RFC 6733, y el transporte que 3GPP eligió para el plano de control de LTE e IMS. Sustituyó a RADIUS en las grandes redes de operador y es, en el lado de paquetes, el homólogo de SS7/MAP en el lado heredado: transporta la gestión de suscripción y movilidad (S6a hacia el HSS), la política y la tarificación (Gx, Gy) y el registro IMS (Cx/Dx). Todo se ejecuta como pares de comandos petición/respuesta entre pares con nombre, identificados por una Diameter Identity (un FQDN) y agrupados en realms.

§02

La cabecera del mensaje

Todo mensaje DIAMETER comienza con una cabecera fija de 20 octetos seguida de una lista variable de AVP. La cabecera lleva una Version (siempre 1), un Message Length de 24 bits, un octeto de Command Flags, un Command Code de 24 bits, un Application-Id de 32 bits que nombra la aplicación a la que pertenece el mensaje, y dos identificadores. El Hop-by-Hop Identifier asocia una petición con su respuesta entre dos pares adyacentes y lo reescribe cada proxy; el End-to-End Identifier lo fija el originador, se conserva sin cambios a lo largo del trayecto y sirve para detectar duplicados.

Cabecera de mensaje DIAMETER RFC 6733 (20 octetos)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

Banderas de comando y command codes

Un Command Code junto con el Application-Id nombra la operación; la respuesta reutiliza el mismo command code con el bit Request a cero. Cuatro command flags portan la semántica del mensaje. R (Request) distingue una petición de una respuesta. P (Proxiable) indica que el mensaje puede ser proxiado, retransmitido o redirigido en vez de gestionarse localmente. E (Error) marca una respuesta de error de protocolo. T (potencialmente retransmitido) marca una petición reenviada tras un failover de enlace, para que el receptor pueda protegerse frente a duplicados. El protocolo base define los comandos de mantenimiento; aplicaciones como S6a, Gx y Cx definen sus propios command codes por encima.

Command codes base de DIAMETER (RFC 6733)
ComandoCódigoPropósito
CER / CEA257Capabilities-Exchange: negociar las aplicaciones compatibles al conectar
DWR / DWA280Device-Watchdog: comprobación de actividad del par / keepalive (RFC 3539)
DPR / DPA282Disconnect-Peer: cierre ordenado de la conexión
RAR / RAA258Re-Auth: el servidor solicita al cliente que vuelva a autorizar una sesión
STR / STA275Session-Termination: el cliente finaliza una sesión autorizada
ASR / ASA274Abort-Session: el servidor fuerza el fin de una sesión
ACR / ACA271Accounting-Request/Answer (contabilidad básica)
§04

Intercambio de capacidades: CER / CEA

Inmediatamente después de abrirse una conexión de transporte, los dos pares intercambian un Capabilities-Exchange-Request y Answer (comando 257, Application-Id 0). Cada lado anuncia su Origin-Host y Origin-Realm, su Host-IP-Address, un Vendor-Id y —lo esencial— el conjunto de aplicaciones que soporta mediante los AVP Auth-Application-Id, Acct-Application-Id y Vendor-Specific-Application-Id. Si los pares no comparten ninguna aplicación común, la conexión se rechaza. CER/CEA es como un nodo averigua si el par sabe hablar S6a, Gx o Cx antes de que fluya cualquier tráfico de aplicación, y ocurre exactamente una vez por conexión.

§05

Keepalive y cierre: DWR / DPR

DIAMETER usa el watchdog de RFC 3539 para detectar un par caído más rápido de lo que lo haría el transporte por sí solo. Cuando una conexión está inactiva, un par envía un Device-Watchdog-Request (comando 280) y espera un Device-Watchdog-Answer dentro del intervalo del watchdog; ausencias repetidas mueven al par a un estado de fallo y el tráfico se redirige a una alternativa. Para cerrar una conexión deliberadamente —por mantenimiento o reconfiguración— un par envía un Disconnect-Peer-Request (comando 282) con un Disconnect-Cause (REBOOTING, BUSY o DO_NOT_WANT_TO_TALK_TO_YOU), dejando que el otro lado decida si reconecta.

§06

Transporte: SCTP y TCP con TLS

RFC 6733 obliga a soportar tanto SCTP (RFC 4960) como TCP, prefiriendo SCTP para señalización porque su multi-streaming evita el bloqueo de cabecera de línea y su multi-homing aporta redundancia de trayecto. El puerto bien conocido es 3868. La seguridad la proporciona TLS sobre TCP o DTLS sobre SCTP; dentro de un dominio de operador de confianza, muchos despliegues ejecutan IPsec en la capa de red en su lugar. DIAMETER no tiene autenticación de mensaje propia en banda, razón por la que importan la seguridad de transporte y el filtrado en el borde que se tratan en la seguridad de roaming DIAMETER.

Preguntas frecuentes

Preguntas frecuentes

¿Qué es el protocolo base DIAMETER?

Es el protocolo de AAA y señalización definido en IETF RFC 6733, usado como transporte del plano de control para la interconexión de LTE, IMS y 5G. Transporta pares de comandos petición/respuesta —una cabecera de 20 bytes más AVP— sobre SCTP o TCP con TLS, y define el intercambio de capacidades, el keepalive por watchdog y el cierre ordenado.

¿Qué significan las banderas R, P, E y T?

R marca una Request (a cero en la respuesta). P marca el mensaje como Proxiable: puede retransmitirse, proxiarse o redirigirse. E marca una respuesta de Error. T marca una petición como potencialmente retransmitida tras un failover, para que el receptor pueda detectar un duplicado usando el End-to-End Identifier.

¿Cuál es la diferencia entre el Hop-by-Hop y el End-to-End Identifier?

El Hop-by-Hop Identifier asocia una petición con su respuesta entre dos pares adyacentes y lo reescribe cada proxy. El End-to-End Identifier lo fija una sola vez el originador, se conserva sin cambios a lo largo de todo el trayecto y sirve para detectar mensajes duplicados tras una retransmisión.

¿Para qué sirve el intercambio CER/CEA?

El Capabilities-Exchange-Request/Answer (comando 257) se ejecuta una vez al abrirse una conexión. Los pares anuncian su identidad y las aplicaciones DIAMETER que soportan (Auth-Application-Id, Vendor-Specific-Application-Id). Si no comparten ninguna aplicación, la conexión se rechaza, de modo que ambos lados saben de antemano si pueden hablar S6a, Gx o Cx.

¿Qué puerto y transporte usa DIAMETER?

DIAMETER usa el puerto bien conocido 3868 sobre SCTP o TCP, prefiriendo SCTP para señalización por el multi-streaming y el multi-homing. La seguridad es TLS sobre TCP o DTLS sobre SCTP; dentro de un dominio de operador de confianza es común usar IPsec en la capa de red en su lugar.

¿Cómo detecta un par DIAMETER que su compañero ha fallado?

Usa el device watchdog de RFC 3539: en una conexión inactiva, un par envía un Device-Watchdog-Request (comando 280) y espera un Device-Watchdog-Answer dentro del intervalo del watchdog. Respuestas ausentes repetidas mueven al par a un estado de fallo y el tráfico se redirige a un par alternativo.

Referencias

Especificaciones de la fuente

Las normas publicadas en las que se basa esta página. Se abre en una pestaña nueva.

BNMantenido por el equipo de ingeniería BroadNet·Mensajería de nivel empresarial desde 2003.
Colócalo en el cable

Desarrollado con un enlace SMPP real y una API REST.

Solicita acceso de prueba con claves de prueba reales: primero envía a tu propio número verificado y, una vez aprobada tu identidad de remitente y las rutas, pasa a producción en más de 200 países.