Articulo de referencia

Diámetro (protocolo)

Diameter es un protocolo de autenticación, autorización y contabilidad (AAA) para redes informáticas. Evolucionó a partir del protocolo RADIUS anterior . Pertenece a los protoco...

Diameter es un protocolo de autenticación, autorización y contabilidad (AAA) para redes informáticas. Evolucionó a partir del protocolo RADIUS anterior . Pertenece a los protocolos de la capa de aplicación del conjunto de protocolos de Internet .

Las aplicaciones Diameter amplían el protocolo base añadiendo nuevos comandos y/o atributos, como los que se utilizan con el Protocolo de Autenticación Extensible (EAP).

Comparación con RADIUS

El nombre es un juego de palabras, derivado del protocolo RADIUS , que es su predecesor (un diámetro es el doble del radio). Diameter no es directamente compatible con versiones anteriores , pero ofrece una ruta de actualización para RADIUS. Las principales características que ofrece Diameter, pero que no tiene RADIUS, son:

Además: Al igual que RADIUS, está diseñado para funcionar tanto en situaciones AAA locales como itinerantes. Utiliza TCP o SCTP, a diferencia de RADIUS que utiliza UDP. A diferencia de RADIUS, no incluye cifrado, pero puede protegerse mediante seguridad a nivel de transporte (IPSEC o TLS). El tamaño base del identificador AV es de 32  bits, a diferencia de RADIUS que utiliza 8  bits como tamaño base del identificador AV. Al igual que RADIUS, admite modos sin estado y con estado. Al igual que RADIUS, admite el acuse de recibo de la capa de aplicación y define la conmutación por error. Diameter se utiliza para muchas interfaces diferentes definidas por los estándares 3GPP , y cada interfaz suele definir nuevos comandos y atributos.

Aplicaciones

Una aplicación Diameter no es una aplicación de software , sino un protocolo basado en el protocolo base Diameter definido en RFC 6733 (que reemplaza a RFC 3588) y RFC 7075. Cada aplicación se define mediante un identificador de aplicación y puede agregar nuevos códigos de comando y/o nuevos AVP ( Par Atributo-Valor ) obligatorios. Agregar un nuevo AVP opcional no requiere una nueva aplicación.

Ejemplos de aplicaciones de Diameter:

  • Aplicación móvil Diameter IPv4 (MobileIP, RFC 4004)
  • Aplicación de servidor de acceso a la red Diameter (NASREQ, RFC 7155) (Sustituye a: RFC 4005)
  • Aplicación del protocolo de autenticación extensible Diameter (RFC 4072)
  • Aplicación de control de crédito de diámetro (DCCA, RFC 8506]) (Obsoletos: RFC 4006)
  • Aplicación del protocolo de inicio de sesión Diameter (RFC 4740)
  • Diversas aplicaciones en el subsistema multimedia IP de 3GPP.
Tanto el HSS como el SLF se comunican mediante el protocolo Diameter.

(Arquitectura de arranque genérica): Función de arranque del servidor

Historia

El protocolo Diameter fue desarrollado inicialmente por Pat R. Calhoun, Glen Zorn y Ping Pan en 1998 para proporcionar un marco de autenticación, autorización y contabilidad ( AAA ) que pudiera superar las limitaciones de RADIUS. En el momento del diseño de Diameter, se creía que RADIUS presentaba problemas de fiabilidad, escalabilidad, seguridad y flexibilidad. Además, RADIUS no admitía políticas extensas, necesarias para las aplicaciones de telefonía. El protocolo Diameter define un protocolo de políticas utilizado por los clientes para gestionar políticas, AAA y el control de recursos. Esto permite que un único servidor gestione las políticas de múltiples servicios. [ 1 ]

Al igual que RADIUS, Diameter proporciona funcionalidad AAA, pero utiliza TCP y SCTP en lugar de UDP , delegando así la detección y el manejo de problemas de comunicación a dichos protocolos. El protocolo Diameter se ve mejorado aún más por el desarrollo del subsistema multimedia IP (IMS) del 3rd Generation Partnership Project (3GPP). Las aplicaciones Diameter admiten las interfaces S6a, S6b, Gx, Gy, Sy, Rx, Cx, Dh, Dx, Rf, Ro, Sh y Zh. [ 2 ] Mediante el uso de extensiones, el protocolo se diseñó para ser extensible y admitir proxies, intermediarios, seguridad robusta, IP móvil, servidores de acceso a la red (NASREQ), contabilidad y gestión de recursos.

Descripción del protocolo

El protocolo base Diameter está definido por la RFC 6733 (que sustituye a las RFC 3588 y 5719) y define los requisitos mínimos para un protocolo AAA . Las aplicaciones Diameter pueden extender el protocolo base añadiendo nuevos comandos, atributos o ambos. La seguridad de Diameter se proporciona mediante IPsec o TLS . La IANA ha asignado el puerto TCP y SCTP número 3868 a Diameter, tal como se indica en la sección 11.4 de la RFC 6733.

Formato del paquete

El paquete consta de una cabecera Diameter y un número variable de pares atributo-valor (AVP, por sus siglas en inglés) para encapsular información relevante para el mensaje Diameter.

Versión

Este campo indica la versión del Protocolo Base Diameter. A partir de 2014, el único valor admitido es 1. [ 3 ]

Longitud del mensaje

El campo Longitud del mensaje indica la longitud del mensaje Diameter en bytes, incluidos los campos de encabezado y los AVPs de relleno.

Banderas de comando

El bit " R " (Solicitud): si está activado, el mensaje es una solicitud. Si está desactivado, el mensaje es una respuesta.

El bit " P " (Proxiable): si está activado, el mensaje PUEDE ser enviado a través de un proxy, retransmitido o redirigido. Si está desactivado, el mensaje DEBE procesarse localmente.

El bit " E " (Error): Si está activado, el mensaje contiene un error de protocolo y no se ajustará al CCF descrito para este comando. Los mensajes con el bit "E" activado se denominan comúnmente mensajes de error. Este bit NO DEBE estar activado en los mensajes de solicitud.

El bit " T " (mensaje potencialmente retransmitido): este indicador se activa tras un procedimiento de conmutación por error del enlace para facilitar la eliminación de solicitudes duplicadas. Se activa al reenviar solicitudes aún no confirmadas como indicación de una posible duplicación debido a un fallo del enlace.

Comandos

A cada par de solicitud/respuesta de comando se le asigna un código de comando. Si se trata de la solicitud o la respuesta se identifica mediante el bit 'R' en el campo de indicadores de comando del encabezado.

Los valores 0-255 están reservados para la compatibilidad con versiones anteriores de RADIUS. Los valores 256-16777213 corresponden a comandos estándar permanentes asignados por IANA . Los valores 16777214 y 16777215 (hexadecimal 0xFFFFFE y 0xFFFFFF) están reservados para fines experimentales y de prueba.

Un código de comando se utiliza para determinar la acción que se debe realizar para un mensaje en particular. Algunos comandos Diameter comunes definidos en el protocolo (base y aplicaciones) son:

ID de la aplicación

El ID de la aplicación se utiliza para identificar a qué aplicación Diameter se aplica el mensaje. La aplicación puede ser una aplicación de autenticación, una aplicación de contabilidad o una aplicación específica del proveedor.

Los agentes Diameter que cumplen con una determinada extensión de Diameter publicitan su compatibilidad incluyendo un valor específico en el atributo Auth-Application-ID del comando Capabilities-Exchange-Request (CER) y Capabilities-Exchange-Answer (CEA).

El valor del campo Application-ID en el encabezado es el mismo que el de cualquier AVP Application-ID relevante contenido en el mensaje. Por ejemplo, el valor de Application-ID y del atributo Auth-Application-ID en el comando Credit-Control-Request (CCR) y Credit-Control-Answer (CCA) para la aplicación Diameter Credit-Control es 4. [ 4 ]

Identificador salto a salto

El identificador salto a salto es un campo entero sin signo de 32 bits (en orden de bytes de red) que se utiliza para hacer coincidir las solicitudes con sus respuestas, ya que el mismo valor de la solicitud se utiliza en la respuesta.

El protocolo Diameter requiere que los agentes de retransmisión y proxy mantengan un estado de transacción, que se utiliza para la conmutación por error. El estado de transacción implica que, al reenviar una solicitud, se guarda su identificador salto a salto; este campo se reemplaza por un identificador único local, que se restaura a su valor original al recibir la respuesta correspondiente. El estado de la solicitud se libera al recibir la respuesta. Las respuestas recibidas que no coinciden con un identificador salto a salto conocido son ignoradas por el agente Diameter.

En caso de agentes de redireccionamiento, el identificador salto a salto se mantiene en el encabezado cuando el agente Diameter responde con un mensaje de respuesta.

Identificador de extremo a extremo

El identificador de extremo a extremo es un campo entero sin signo de 32 bits (en orden de bytes de red) que se utiliza para detectar mensajes duplicados junto con la combinación del AVP de origen-host.

Al crear una solicitud, el identificador de extremo a extremo se establece con un valor único local. Los agentes Diameter no modifican el identificador de extremo a extremo, y se utiliza el mismo valor de la solicitud correspondiente en la respuesta.

Pares atributo-valor (PAV)

Para simplificar, el bit " V " de la bandera AVP significa específico del proveedor ; el bit " M " significa obligatorio ; el bit " P " significa protegido .

El bit " V ", también conocido como bit específico del proveedor, indica si el campo opcional Vendor-ID está presente en el encabezado AVP. Cuando está activado, el código AVP pertenece al espacio de direcciones del código de proveedor específico.

El bit " M ", también conocido como bit obligatorio, indica si se requiere compatibilidad con el AVP. Si un cliente, servidor, proxy o agente de traducción de Diameter recibe un AVP con el bit " M " activado y el AVP o su valor no se reconocen, el mensaje debe rechazarse. Los agentes de retransmisión y redirección de Diameter no deben rechazar mensajes con AVP no reconocidos.

El bit " P " indica la necesidad de cifrado para garantizar la seguridad de extremo a extremo.

Máquinas de estados

El RFC 3588 define una máquina de estados central para mantener las conexiones entre pares y procesar mensajes. Esto forma parte de la funcionalidad básica del protocolo y todas las pilas deben admitirlo, abstraiéndose así de las operaciones relacionadas con la conectividad.

Además, se pueden introducir máquinas de estados específicas para cada aplicación, ya sea posteriormente o en una capa de abstracción superior. El RFC 3588 define una máquina de estados de autorización y otra de contabilidad.

Flujos de mensajes

La comunicación entre dos pares Diameter comienza con el establecimiento de una conexión de transporte ( TCP o SCTP ). El iniciador envía entonces una solicitud de intercambio de capacidades (CER) al otro par, que responde con una respuesta de intercambio de capacidades (CEA). Para pares compatibles con RFC3588, se puede negociar opcionalmente TLS (Transport Layer Security). Para pares compatibles con RFC6733, la negociación de TLS puede realizarse opcionalmente antes de la CER/CEA.

La conexión estará entonces lista para el intercambio de mensajes de la aplicación.

Si no se han intercambiado mensajes durante algún tiempo, cualquiera de las partes puede enviar una solicitud de vigilancia del dispositivo (DWR) y el otro extremo debe responder con una respuesta de vigilancia del dispositivo (Device-Watchdog-Answer).

Cualquiera de las partes puede finalizar la comunicación enviando una solicitud de desconexión (DPR), a la que la otra parte debe responder con una respuesta de desconexión. Tras esto, se puede desconectar la conexión de transporte.

RFC

El protocolo Diameter se define actualmente en los siguientes RFC de la IETF : Los RFC obsoletos se indican con texto tachado .

Véase también

Referencias

  1. Pat R. Calhoun, Glen Zorn y Ping Pan (febrero de 2001). "Documento del marco DIAMETER" . Ietf Datatracker . IETF . Consultado el 30 de abril de 2009 .{{cite news}}: CS1 maint: varios nombres: lista de autores ( enlace )
  2. Naman Mehta (20 de marzo de 2009). "Introducción al protocolo Diameter: ¿qué es el protocolo Diameter?" . Sun Microsystems . Archivado del original el 4 de julio de 2011. Recuperado el 30 de abril de 2009 .
  3. Arkko, J.; Loughney, J. (2012). Fajardo, V; Zorn, G (eds.). "RFC 6733 - Protocolo de base de diámetro" . Norma propuesta . Standards Track. doi : 10.17487/RFC6733 . ISSN 2070-1721 . Consultado el 12 de octubre de 2014 . 
  4. Hakala, H.; Mattila, L.; Stura, M.; Loughney, J. (2005). "RFC 4006 - Aplicación de control de crédito Diameter" . Norma propuesta . Standards Track. doi : 10.17487/RFC4006 .
  • Introducción a Diameter: obtenga el protocolo AAA de próxima generación.
  • Página de Cisco que describe las diferencias entre RADIUS y DIAMETER.
  • Diameter: el protocolo AAA de próxima generación. Artículo sobre Diameter de Håkan Ventura.
  • Página de referencia con la lista de proveedores de pasarelas Diameter, controladores de señalización Diameter y pilas Diameter.