Contenido

Introducción

Antecedentes

Configuración de CPAR

Configuración global

Configuración del Cliente

Configuración de reglas rápidas

Configuración de servicios

Configuración de servidores remotos

Administrador de sesiones

Administrador de recursos

Guiones

Configuración de registro de CPAR

Valores de tiempo de espera

Diámetro Tamaño del paquete

Gestionar sesiones en CPAR

Atributos (AVP) almacenados en caché en CPAR AAA para sesiones de suscriptores

Verificación

Troubleshoot

Introducción

En este documento se describe el procedimiento de la configuración de autenticación, autorización y contabilidad (AAA) de Cisco Prime Access Registrar (CPAR).

Este procedimiento se aplica a un entorno Openstack que utiliza la versión NEWTON en la que ESC no gestiona CPAR y CPAR se instala directamente en la máquina virtual implementada en Openstack.

Antecedentes

Ultra-M es una solución de núcleo de paquetes móviles virtualizados previamente empaquetada y validada que se ha diseñado para simplificar la implementación de VNF. OpenStack es el Virtualized Infrastructure Manager (VIM) para Ultra-M y consta de los siguientes tipos de nodos:

- Informática

- Disco de almacenamiento de objetos - Informática (OSD - Informática)

- Controlador

- Plataforma OpenStack - Director (OSPD)

La arquitectura de alto nivel de Ultra-M y los componentes implicados se muestran en esta imagen:

Este documento está dirigido al personal de Cisco que está familiarizado con la plataforma Ultra-M de Cisco y detalla los pasos que deben llevarse a cabo en OpenStack y Redhat OS.

Nota: Se considera la versión Ultra M 5.1.x para definir los procedimientos en este documento.

Configuración de CPAR

Configuración global

La configuración de Diameter Global se debe configurar con los valores adecuados, como Application-ID’s y el origen Host IP-Address, Realm, etc.,

Cd /Radius/Advanced/Diameter/

Diameter/

IsDiameterEnabled = TRUE

General/

Product = CPAR

Version = 7.3.0.3

AuthApplicationIdList = 1:5:16777264:16777265:16777272:16777250

AcctApplicationIdList = 3

TransportManagement/

Identity = aaa01.aaa.epc.mncxx.mccxx.3gppnetwork.org

Realm = epc.mncxx.mccxx.3gppnetwork.org

WatchdogTimeout = 500

ValidateIncomingMessages = FALSE

ValidateOutgoingMessages = TRUE

MaximumNumberofDiameterPackets = 8192

ReserveDiameterPacketPool = 0

DiameterPacketSize = 4096

AdvertisedHostName/

1. aaa01.aaa.epc.mncxx.mccxx.3gppnetwork.org

/etc/hosts debe actualizarse con la dirección IP correspondiente para que se resuelva el nombre de dominio completamente calificado (FQDN) de identidad AAA utilizado en la administración de transporte y el nombre de host

Configuración del Cliente

La configuración del cliente debe configurarse con los pares Diameter donde se recibe el tráfico, en este caso DRA.

Cd /Radius/Clients/

DRA01/

Name = DRA01

Description =

Protocol = diameter

HostName = x.x.x.x

PeerPort = 3868

Vendor =

IncomingScript~ =

OutgoingScript~ =

AdvertisedHostName =

UserLogEnabled = FALSE

AdvertisedRealm =

InitialTimeout = 3000

MaxIncomingRequestRate = 0

KeepAliveTime = 0

AuthSessionStateInASR = No-State-Maintained

SCTP-Enabled = FALSE

TLS-Enabled = FALSE

Configuración de reglas rápidas

FastRules se utiliza para asignar el servicio correspondiente en tiempo de ejecución en función de una condición determinada, la condición se basa en los pares de valores atribuidos (AVP) y sus valores presentes en el mensaje de diámetro; si no hay ninguna regla rápida coincidente, selecciona el servicio predeterminado.

Cd /Radius/FastRules/

FastRules/

RuleDefinitions/

Entries 1 to 5 from 5 total entries

Current filter: <all>

r1/

Name = r1

Description = Used for HSS initiated Flows

Protocol = diameter

Condition = "1 OR 2"

Success = author(3gpp-reverse)

Failure = Rule(r2)

Attributes/

Entries 1 to 2 from 2 total entries

Current filter: <all>

1/

Name = 1

Description =

Dictionary = environment

Attribute = Diameter-Command-Code

Value = 304

2/

Name = 2

Description =

Dictionary = environment

Attribute = Diameter-Command-Code

Value = 305

r2/

Name = r2

Description = Used for PGW Update procedure over S6b

Protocol = diameter

Condition = "1 AND 2"

Success = author(s6b)

Failure = Rule(r3)

Attributes/

Entries 1 to 2 from 2 total entries

Current filter: <all>

1/

Name = 1

Description =

Dictionary = Request

Attribute = Auth-Application-Id

Value = 16777272

2/

Name = 2

Description =

Dictionary = request

Attribute = Diameter-Command-Code

Value = 265

r3/

Name = r3

Description = OPTIONAL used for PGW Termination procedure

Protocol = diameter

Condition = "1 and 2"

Success = author(null)

Failure = Rule(r4)

Attributes/

Entries 1 to 2 from 2 total entries

Current filter: <all>

1/

Name = 1

Description =

Dictionary = Request

Attribute = Auth-Application-Id

Value = 16777272

2/

Name = 2

Description =

Dictionary = environment

Attribute = Diameter-Command-Code

Value = 275

r4/

Name = r4

Description = Used for SWm Termination procedure

Protocol = diameter

Condition = "1 and 2"

Success = author(3gpp-auth)

Failure = Rule(r5)

Attributes/

Entries 1 to 2 from 2 total entries

Current filter: <all>

1/

Name = 1

Description =

Dictionary = request

Attribute = Auth-Application-Id

Value = 16777264

2/

Name = 2

Description =

Dictionary = environment

Attribute = Diameter-Command-Code

Value = 275

r5/

Name = r5

Description = Used for SWm ReAuthorization

Protocol = diameter

Condition = "1 and 2"

Success = Query(query)

Failure =

Attributes/

Entries 1 to 2 from 2 total entries

Current filter: <all>

1/

Name = 1

Description =

Dictionary = environment

Attribute = Diameter-Command-Code

Value = 265

2/

Name = 2

Description =

Dictionary = request

Attribute = Auth-Application-Id

Value = 16777264

Order/

Radius/

Diameter/

1. r1

Tacacs/

Si ninguna de las reglas rápidas anteriores coincide, el paquete se procesa según el servicio predeterminado.

Cd /Radius/

DefaultAuthenticationService~ = encrypted-imsi-service

DefaultAuthorizationService~ = 3gpp-auth

Configuración de servicios

La configuración del servicio es donde se definen los servicios según los requisitos de autenticación y autorización:

Cd /Radius/Services/

Encryption-IMSI-Service se utiliza para las autenticaciones EAP-AKA y con IMSI cifrado para los dispositivos de Apple. Si no es necesario, establezca el parámetro EncryptedIMSI en False

encrypted-imsi-service/

Name = encrypted-imsi-service

Description =

Type = eap-aka

NumberOfQuintets = 1

AlwaysRequestIdentity = True

EnableIdentityPrivacy = False

EnableRollingPseudonymSecret = False

PseudonymSecret = <encrypted>

PseudonymRenewtime = "24 Hours"

PseudonymLifetime = Forever

NotificationService =

Generate3GPPCompliantPseudonym = False

EnableReauthentication = False

UseOutagePolicyForReauth = False

MaximumReauthentications = 16

ReauthenticationTimeout = 3600

ReauthenticationRealm =

EnableEncryptedIMSI = True

EncryptedIMSIDelimiter = NULL

EncryptedIMSIKeyIdDelimiter = ,

DefaultPrivateKey = xxxxxxxxxxxxxxxxxxxxxxxx

QuintetCacheTimeout = 0

AuthenticationTimeout = 120

QuintetGenerationScript~ =

UseProtectedResults = False

SendReAuthIDInAccept = False

Subscriber_DBLookup = DiameterDB

DiameterInterface = SWx

ProxyService = dia-proxy

The 3GPP service is used for Registration/Profiledownload from HSS over SWx;

3gpp-auth/

Name = 3gpp-auth

Description =

Type = 3gpp-authorization

Protocol = diameter

IncomingScript~ =

OutgoingScript~ = removeuserdata

SessionManager = sm1

DiameterProxyService = dia-proxy

FetchLocationInformation = False

El servicio de proxy de marcado se utiliza para seleccionar el servidor remoto y puede definir la política de peer. La opción GroupFailover se utiliza como MultiplePeerPolicy, cuando hay varios peers remotos y desea agrupar los mismos. Además, defina GroupTimeOutPolicy para conmutar por error a varios grupos

dia-proxy/

Name = dia-proxy

Description =

Type = diameter

IncomingScript~ = rmserver

OutgoingScript~ =

MultiplePeersPolicy = GroupFailover

GroupTimeOutPolicy = FailOver

ServerGroups/

Entries 1 to 2 from 2 total entries

Current filter: <all>

Group_Primary_DRA/

Name = Group_Primary_DRA

Metric = 0

IsActive = TRUE

Group_Secondary_DRA/

Name = Group_Secondary_DRA

Metric = 1

IsActive = TRUE

Los grupos de servidores mencionados anteriormente se definen en /Radius/GroupServers/

GroupServers/

Entries 1 to 2 from 2 total entries

Current filter: <all>

Group_Primary_DRA/

Name = Group_Primary_DRA

Description =

MultiplePeersPolicy = RoundRobin

PeerTimeOutPolicy = FailOver

DiaRemoteServers/

Entries 1 to 2 from 2 total entries

Current filter: <all>

DRA01/

Name = DRA01

Metric = 0

Weight = 0

IsActive = TRUE

DRA02/

Name = DRA02

Metric = 1

Weight = 0

IsActive = TRUE

Group_Secondary_DRA/

Name = Group_Secondary_DRA

Description =

MultiplePeersPolicy = RoundRobin

PeerTimeOutPolicy = FailOver

DiaRemoteServers/

Entries 1 to 4 from 4 total entries

Current filter: <all>

DRA03/

Name = DRA03

Metric = 0

Weight = 0

IsActive = TRUE

DRA04/

Name = DRA04

Metric = 2

Weight = 0

IsActive = TRUE

DRA05/

Name = DRA05

Metric = 1

Weight = 0

IsActive = TRUE

El servicio S6b se utiliza para procesar el procedimiento de actualización de PGW a través de S6b.

s6b/

Name = s6b

Description =

Type = 3gpp-authorization

Protocol = diameter

IncomingScript~ =

OutgoingScript~ =

SessionManager =

DiameterProxyService = dia-proxy

FetchLocationInformation = False

3gpp-reverse se utiliza para procesar los mensajes iniciados por HSS.

3gpp-reverse/

Name = 3gpp-reverse

Description =

Type = 3gpp-reverse-authorization

IncomingScript~ = AAARTRCheck

OutgoingScript~ =

SessionManager = sm1

TranslationService =

El servicio de consulta se utiliza durante el procedimiento de reautorización, donde se obtiene directamente el perfil actualizado de la memoria caché en función del PPR recibido de HSS.

query/

Name = query

Description =

Type = diameter-query

IncomingScript~ =

OutgoingScript~ = removeuserdataquery

UpdateSessionLastAccessTime = False

SessionManagersToBeQueried/

1. sm1

AttributesToBeReturned/

1. Non-3GPP-User-Data

2. Service-Selection

El servicio nulo es simplemente responder con éxito para el proceso de terminación S6b ya que no hay ninguna sesión almacenada en caché sobre S6b.

null/

Name = null

Description =

Type = null

IncomingScript~ =

OutgoingScript~ =

Configuración de servidores remotos

Los servidores remotos se definen con un peer remoto al que se envían paquetes desde AAA como el HSS. Si se utiliza DRA, defina la misma información DRA en Clientes y servidores remotos;

RemoteServers/

DRA01/

Name = DRA01

Description =

Protocol = diameter

HostName = 10.169.48.235

DestinationPort = 3868

DestinationRealm = epc.mnc300.mcc310.3gppnetwork.org

ReactivateTimerInterval = 300000

Vendor =

IncomingScript~ = AAAReplaceResultCode

OutgoingScript~ = rmdh

MaxTries = 3

MaxTPSLimit = 0

MaxSessionLimit = 0

InitialTimeout = 3000

LimitOutstandingRequests = FALSE

MaxPendingPackets = 0

MaxOutstandingRequests = 0

DWatchDogTimeout = 2500

SCTP-Enabled = FALSE

TLS-Enabled = FALSE

AdvertiseHostName =

AdvertiseRealm =

Administrador de sesiones

El Administrador de sesiones es para definir acerca del almacenamiento en caché de sesiones, funciona junto con el Administrador de recursos. El administrador de sesión se menciona en los servicios 3gpp-auth, 3gpp-reverse y query;

Cd /Radius/SessionManagers/

sm1/

Name = sm1

Description =

Type = local

EnableDiameter = True

IncomingScript =

OutgoingScript =

AllowAccountingStartToCreateSession = FALSE

SessionTimeOut =

PhantomSessionTimeOut =

SessionKey = User-Name:Session-Id

SessionCreationCmdList = 268||305

SessionDeletionCmdList = 275

SessionRestorationTimeOut = 24h

ResourceManagers/

1. 3gpp

2. swmcache

3.  per-user

Administrador de recursos

Los administradores de recursos se definen para asignar los recursos y se asignan a los administradores de sesiones.

Se utilizan estos tres administradores de recursos.

Cd /Radius/ResourceManagers/

ResourceManagers/

3gpp/

Name = 3gpp

Description =

Type = 3gpp

EnableRegistrationFlow = TRUE

EnableSessionTermination = false

ReuseExistingSession = True

HSSProxyService = dia-proxy

Per-User/

Name = Per-User

Description =

Type = user-session-limit

UserSessionLimit = 0

swmcache/

Name = swmcache

Description =

Type = session-cache

OverwriteAttributes = FALSE

QueryKey = Session-Id

PendingRemovalDelay = 10

AttributesToBeCached/

1. Non-3GPP-User-Data

2. Service-Selection

QueryMappings/

Guiones

Esta tabla muestra todos los scripts utilizados durante el procesamiento de paquetes.

Nombre

Archivo de script

Punto de entrada

Descripción

Frío

test.tcl

resfrío

Busca el Application-Id 16777264 y el Diameter-Command Code 268, obtiene el valor de username y lo copia en el atributo calling-station-ID de la solicitud que llega.

Este script se menciona en Radius Incoming scriptinpoint

rmserver

test.tcl

rm_server

Busca el atributo Server-Assignment-Type; si existe, quita el campo Remote-Server de la solicitud entrante.

Este script se menciona en dia-proxy service Incoming scriptinpoint

removeuserdata

libremoveuserdata.so

removeUserData

La secuencia de comandos Rex se utiliza para comprobar en primer lugar la información recibida de HSS, especialmente las opciones "Non-3GPP-IP-Access" y "Non-3GPP-IP-Access-APN", que deben tener el valor "NON_3GPP_SUBSCRIPTION_ALLOWED (0)" y "Non_3GPP_APNS_ENABLE (0)"; de lo contrario, no se podrá realizar la autorización. Seguido de una simple comparación del nombre de APN recibido del mensaje SWm DER (AVP de selección de servicio) con la configuración de APN descargada desde HSS, si hay una coincidencia, copia solo los detalles específicos de APN y elimina los AVP no deseados y prepara el DEA final hacia el ePDG. Si no se produce un error en la autorización de coincidencia y si no hay AVP de selección de servicio en DER, se envía toda la información de APN, pero como AVP externo.

Este script se menciona en 3gpp-auth Outgoing scriptinpoint

removeuserdataquery

libremoveuserdataquery.so

removeUserData

La secuencia de comandos Rex se utiliza para verificar primero la información recibida de HSS, especialmente Non-3GPP-IP-Access y Non-3GPP-IP-Access-APN, ambos deben tener el valor NON_3GPP_SUBSCRIPTION_ALLOWED (0) y Non_3GPP_APNS_ENABLE (0); de lo contrario, no se puede realizar la autorización. Seguido de una simple comparación del nombre de APN recibido del mensaje SWm DER (AVP de selección de servicio) con la configuración de APN descargada desde HSS, si hay una coincidencia, copia solo los detalles específicos de APN y elimina los AVP no deseados y prepara el DEA final hacia el ePDG. Si no se produce un error en la autorización de coincidencia y si no hay AVP de selección de servicio en DER, se envía toda la información de APN, pero como AVP externo.

Este script se menciona en query serviceOutgoing scriptinpoint

fuera

test.tcl

newsessionState

Script de entrada de servicio de proxy de marcación: se utiliza para desactivar la etiqueta de los mensajes que ya se han procesado. Por ejemplo, si MAR/MAA se recibe desde DRA1, el SAR de usuario posterior utilizará el mismo DRA1 y, si no está disponible y se mantiene fijo, no conmuta por error. Para conmutar por error al DRA alternativo, se debe eliminar este sticky. La secuencia de comandos se utiliza para quitar el identificador de red visitado hacia S6b SAR(PGW_update) HSS.

rmdh

test.tcl

rmdh

Elimina DestinationHost AVP en paquetes con DiameterCode 301 y 303.

rmvnid

test.tcl

rmvnid

Quita el AVP de identificador de red visitado en paquetes con DiameterCode 256 y Server-Assignment-Type es 13.

AAAReplaceResultCode

test.tcl

replaceResultCode

Reemplace Result-Code AVP por "Test" en los paquetes con DiameterCode 274 y Result-Code "Diameter-Unknown-Session-Id"

AAARTRCheck

librexblockRTR.so

AAARTRCheck

Cuando se reciben varios RTR para la misma sesión, los duplicados se eliminarán y se registrarán.

Es posible que algunas secuencias de comandos no sean necesarias en versiones posteriores. Las secuencias de comandos mostradas deben utilizarse en CPAR versión 7.3.0.3

Todas las secuencias de comandos se encuentran en la ruta /opt/CSCOar/scripts/radius/.

Configuración de registro de CPAR

La carpeta /opt/CSCOar/logs almacena todos los registros de la aplicación. El archivo name_radius_1_log registra todas las solicitudes descartadas y rechazadas, por lo que es importante almacenar este archivo para solucionar problemas.

CPAR permite una configuración muy flexible para almacenar este registro según sus necesidades. En función de los requisitos, este valor puede definirse, donde se conservan los últimos 20 archivos de registro, cada archivo con un tamaño de 5 Mb.

Para habilitar este registro específico, se deben configurar los parámetros 2 en el modo aregcmd:

/Radius/Advanced

LogFileSize = "5 megabytes"

LogFileCount = 20

La convención de nomenclatura de registros sigue la regla especificada en esta tabla:

Descripción

Nombre del archivo de registro

Registro más reciente

name_radius_1_log

del 2º al último registro

name_radius_1_log.01

Registro de 3ª a última

name_radius_1_log.02

...

...

del 20 al último registro

name_radius_1_log.19

Tabla 2 Numeración de registros.

Valores de tiempo de espera

CPAR tiene tiempos de espera configurables por el servidor. La configuración actual tiene estas configuraciones:

Límites de tiempo generales ubicados en /Radius/Advanced

- DiameterStaleConnectionDelectionTimeOut 300000 (ms) Este temporizador indica cuánto tiempo puede estar inactiva una conexión de diámetro antes de que CPAR la marque como inactiva.

Límites de tiempo del cliente ubicados en /Radius/Clients/<client_name>

- InitialTimeout 3000 (ms) Tiempo de espera de una respuesta de DRA antes de que CPAR lo considere inalcanzable.

Tiempos de espera del servidor remoto ubicados en /Radius/RemoteServers/<remote_server_name>

- InitialTimeout 3000 (ms) Tiempo de espera de una respuesta de DRA antes de que CPAR lo considere inalcanzable.

- DWatchDogTimeout 2500 (ms) Tiempo de espera de una reproducción de DRA para el paquete DiamaterWatchDog antes de que CPAR lo considere inalcanzable.

- ReactivateTimerInterval 300000 (ms) Tiempo que CPAR esperará hasta que se reintente establecer una conexión con un par de diámetro.

Diámetro Tamaño del paquete

Este documento aborda el significado del comando Diameter Packet size y las razones que lo llevaron a mantener este parámetro en el valor 4096.

Como se explica en la imagen anterior, el tamaño máximo de paquete de diámetro que CPAR espera recibir es de 4096 bytes. Este valor se configura en la variable DiameterPacketSize ubicada en el directorio /Radius/Advanced/Diameter/TransportManagement. Se descartarán todos los paquetes que no cumplan con este valor. El tamaño total del paquete se obtiene después de agregar el tamaño de los atributos de sesión almacenados en caché más el tamaño del paquete de diámetro recibido.

Por ejemplo, consideremos un tamaño de paquete PPR de 4000 bytes y dentro de ese mensaje Non-3GPP-User-Data tiene un tamaño de 3800 bytes. Si la sesión ya ha almacenado en caché algunos atributos y el tamaño de los datos almacenados en caché es de 297 bytes, el tamaño de la sesión supera los 4096 bytes y CPAR elimina el mensaje.

Durante el proyecto se realizó un análisis de paquetes mayores a 4096. Los resultados indican que, en promedio, 36 paquetes (SAA) más grandes que 4096 llegan a cada instancia de CPAR al día. Este número de paquetes no es significativo ya que es muy pequeño.

Este parámetro se puede configurar y aumentar si es necesario. Sin embargo, el aumento del valor más allá de 4096 conlleva algunos inconvenientes:

- Si se aumenta DiameterPacketSize a 5 KB, CPAR aceptará paquetes SAA superiores a 4096 bytes. Sin embargo, si el PPR se inicia para la misma sesión de usuario, dado que el tamaño de Non-3GPP-User-Data es de 4260 bytes, la actualización de la sesión falla y conduce a la anulación del registro del usuario.

- DiameterPacketSize afecta directamente a la memoria de inicio asignada al proceso radius. Cuanto mayor sea el DiameterPacketSize, mayor será la cantidad de memoria RES asignada al proceso Radius en el inicio de CPAR.

Esta imagen muestra un ejemplo del resultado del comando top en una instancia donde DiameterPacketSize está configurado en 4096:

Si el parámetro DiameterPackerSize se aumenta a 6000, el resultado del comando top es similar a lo siguiente:

- Además de la asignación de memoria de inicio, una vez que el sistema está en uso, hay un búfer de memoria dinámica interna que crece en relación con la cantidad de paquetes que están alcanzando el CPAR. Si, por ejemplo, 1000 paquetes alcanzan el CPAR en un punto, el CPAR asigna internamente en el buffer un valor de memoria de 1000 * DiameterPacketSize, independientemente del tamaño de los paquetes individuales (el CPAR sabe que DiameterPacketSize indica el tamaño máximo del paquete). Este búfer de memoria interna asigna más memoria si se incrementa DiameterPacketSize y menos memoria si se disminuye.

Se recomienda mantener este parámetro como 4096, ya que se decidió que el número de paquetes mayores que 4096 es insignificante y los inconvenientes plantearían un comportamiento no deseado.

Gestionar sesiones en CPAR

El único mecanismo que existe en el CPAR para supervisar el número de sesiones es a través del método que se explica en este documento. No hay ningún OID que se pueda recuperar mediante SNMP que contenga esta información.

CPAR puede gestionar sesiones, introducir la CLI de CPAR con /opt/CSCOar/bin/aregcmd e iniciar sesión con credenciales de administrador.

Con el comando count-sessions /r all CPAR muestra todas las sesiones asociadas a él en ese momento.

Para ver más información de las sesiones CPAR tiene el comando query-sessions /r all que da la información de todas las sesiones adjuntas a CPAR.

Para mostrar solamente la información de una sesión específica, el comando se puede cambiar y utilizar el valor USER, es decir: query-sessions /r with-User 310310990007655

Esta lista contiene todos los filtros posibles para el comando query-sessions:

- Todos

- with-ID

- con-NAS

- con-Usuario

- con clave

- con-Age+

- with-Attribute.

Por último, para separar sesiones de CPAR, utilice el comando release-sessions /r all, y todas las sesiones adjuntas a ese momento se separarán.

Se puede aplicar un filtro para desasociar una sesión específica.

Atributos (AVP) almacenados en caché en CPAR AAA para sesiones de suscriptores

Prime Access Registrar admite el almacenamiento en caché de atributos en los administradores de sesiones que se pueden utilizar para consultar datos. Este servicio de consulta Diameter contiene una lista de administradores de sesión desde los que se puede consultar y una lista de atributos (almacenados en caché) que se deben devolver en el paquete Access-Accept en respuesta a una solicitud DIAMETER Query. Esto se inicia a través de un script de punto de extensión o a través del motor de reglas y políticas, configurándolo en una nueva variable de entorno denominada Query-Service.

El servicio de consulta DIAMETER debe seleccionarse a través de un script de punto de extensión o a través del motor de reglas y políticas, estableciéndolo en una nueva variable de entorno denominada Query-Service. La razón de esto es que la solicitud de consulta DIAMETER viene como una solicitud de acceso y el servidor no tiene forma de saber si es una solicitud de consulta DIAMETER o una solicitud de autenticación normal. La configuración de la variable de entorno Query-Service indica al servidor Prime Access Registrar que la solicitud es una solicitud de consulta DIAMETER, de modo que el servidor Prime Access Registrar puede procesar la solicitud con el servicio de consulta de diámetro definido en la variable de entorno Query-Service.

Cuando se selecciona un servicio de consulta DIAMETER para procesar una solicitud de acceso, se consulta la lista configurada de administradores de sesión para obtener un registro coincidente utilizando el valor QueryKey configurado en el administrador de recursos de caché de sesión al que se hace referencia en estos administradores de sesión como clave. Si se encuentra un registro coincidente, se devuelve al cliente un Access-Accept que contiene una lista de atributos en caché presentes (según la configuración) en el registro coincidente. Si la caché de sesión contiene un atributo multivalor, todos los valores de dicho atributo se devuelven en la respuesta como un atributo multivalor. Si no hay un registro coincidente, se envía un paquete Access-Reject al cliente.

Prime Access Registrar introduce puntos de secuencia de comandos en el nivel de administrador de sesiones junto con interfaces programables automatizadas (API) para acceder a la información almacenada en caché presente en el registro de sesión. Puede utilizar estos puntos de secuencia de comandos y API para escribir secuencias de comandos de punto de extensión para modificar la información almacenada en caché.

En este momento, nuestra implementación no tiene scripts escritos ni hace uso de API programables para acceder a dichos datos, pero la opción está ahí.

Los atributos que nuestro gestor de sesiones almacena en este momento son:

Incluido en /radius/resourcemanagers/swmcache/AttributesToBeCached:

- Datos de usuario sin 3GPP

- Selección de servicio

De forma predeterminada:

- Nombre de usuario (IMSI)

- Host de origen

- Auth-Application-Id

- Rango de origen

- Id De Sesión

Estos atributos son visibles por sesión cuando este comando query-sessions se utiliza en CLI.

Verificación

Actualmente, no hay un procedimiento de verificación disponible para esta configuración.

Troubleshoot

Actualmente, no hay información específica de troubleshooting disponible para esta configuración.