Configuración de OmniAUSF
La configuración se lee desde la clave del entorno de la aplicación :omniausf, poblada desde config/runtime.exs. La mayoría de las claves de tiempo de ejecución están respaldadas por una variable de entorno del sistema operativo leída al inicio, como se muestra a continuación; las dos claves del recolector de contexto se leen directamente del entorno de la aplicación :omniausf y no están respaldadas por variables de entorno.
config :omniausf,
udm_uri: "http://127.0.0.12:7777",
sbi_scheme: "http",
sbi_addr: "127.0.0.19",
sbi_port: 7777,
nrf_uri: "http://127.0.0.1:7777",
mcc: "999",
mnc: "70",
prometheus_metrics_port: 9568,
heartbeat_interval: 10_000
config :logger, :default_formatter,
format: {OmniLogger.JsonFormatter, :format},
metadata: :all
Referencia de Parámetros
| Parámetro | Tipo | Requerido | Predeterminado | Var de Entorno | Descripción |
|---|---|---|---|---|---|
udm_uri | cadena | No | "http://127.0.0.12:7777" | UDM_URI | URI base de respaldo del UDM, utilizado solo cuando el descubrimiento de NRF (Nnrf_NFDiscovery) no devuelve ninguna instancia de UDM o el NRF es inalcanzable. Cuando el descubrimiento tiene éxito, las llamadas de Nudm_UEAuthentication (generate-auth-data, auth-events) se dirigen al UDM descubierto en su lugar |
sbi_scheme | cadena | No | "http" | SBI_SCHEME | Esquema URI anunciado para el servidor SBI y utilizado para construir el perfil NRF y los hrefs de _links. El propio oyente SBI se sirve a través de HTTP |
sbi_addr | cadena | No | "127.0.0.19" | SBI_ADDR | Dirección IP a la que se vincula el servidor HTTP SBI y que se anuncia al NRF |
sbi_port | entero | No | 7777 | SBI_PORT | Puerto TCP en el que escucha el servidor HTTP SBI |
nrf_uri | cadena | No | "http://127.0.0.1:7777" | NRF_URI | URI base del NRF, utilizado para el registro de NF, latido y descubrimiento de NF pares (UDM) a través de Nnrf_NFDiscovery |
mcc | cadena | No | "999" | MCC | Código de País Móvil del PLMN que sirve. Utilizado en el perfil NRF y para construir el nombre de la red que sirve |
mnc | cadena | No | "70" | MNC | Código de Red Móvil del PLMN que sirve. Los MNC de dos dígitos se rellenan con ceros a tres dígitos en el nombre de la red que sirve |
prometheus_metrics_port | entero | No | 9568 | PROMETHEUS_PORT | Puerto TCP en el que se exponen las métricas de Prometheus (GET /metrics) |
heartbeat_interval | entero (ms) | No | 10000 | HEARTBEAT_INTERVAL | Intervalo en milisegundos entre las solicitudes de latido del NRF |
context_ttl_seconds | entero (s) | No | 3600 | - | Edad máxima, en segundos, antes de que un contexto de autenticación de UE inactivo o abandonado sea cosechado. Un contexto que el AMF inicia pero nunca confirma se elimina una vez que supera esta edad. Se establece directamente bajo el entorno de la aplicación :omniausf (no respaldado por variable de entorno) |
context_reap_interval_ms | entero (ms) | No | 60000 | - | Con qué frecuencia, en milisegundos, el recolector de contexto barre los contextos más antiguos que context_ttl_seconds. Se establece directamente bajo el entorno de la aplicación :omniausf (no respaldado por variable de entorno) |
Nota sobre el valor predeterminado de
nrf_uri:config/runtime.exsestableceNRF_URIenhttp://127.0.0.1:7777. En un despliegue de bucle de retorno estándar, el NRF se alcanza enhttp://127.0.0.10:7777; establezcaNRF_URIexplícitamente para que coincida con la dirección de su NRF.
Registro
Los registros se emiten como JSON (OmniLogger.JsonFormatter) con todos los metadatos incluidos. Las líneas de registro en el camino de autenticación llevan contexto de sesión (supi, auth_ctx_id, procedure) para que un único intercambio de autenticación pueda ser rastreado de extremo a extremo por auth_ctx_id o SUPI/SUCI. El nivel de registro se puede cambiar en tiempo de ejecución a través de la API de Gestión (ver más abajo).
API de Gestión (Puerto 8443)
Además del oyente SBI y el puerto de métricas, OmniAUSF expone una API de gestión/OAM HTTPS en el puerto 8443 (TLS, nombre del producto OmniAUSF). Se utiliza para la inspección operativa y el control en tiempo de ejecución, y no forma parte del SBI de 3GPP. Puntos finales clave:
| Método | Ruta | Propósito |
|---|---|---|
| GET | /api/status/api | Estado del servicio API |
| GET | /api/status/nrf | Estado del registro NRF |
| GET | /api/status/nf | Resumen de NF (tipo AUSF, servicio nausf-auth, conteo de contexto UE activo) |
| GET | /api/ausf_sessions | Listar sesiones de autenticación activas (id de contexto, SUCI/SUPI, nombre de la red que sirve, tipo/resultados de autenticación) |
| DELETE | /api/ausf_sessions/{id} | Limpiar una sesión de autenticación específica por id de contexto |
| POST | /api/ausf_sessions | Limpiar todas las sesiones de autenticación activas |
| GET | /api/statistics | Contadores de sesiones de autenticación (total / éxito / fallo / pendiente) |
| GET | /api/oam/config | Ver configuración de tiempo de ejecución efectiva (sbi_addr, sbi_port, nrf_uri, udm_uri, capacidad/prioridad de NF, nivel de registro) |
| PATCH | /api/oam/config/{id} | Actualizar configuración de tiempo de ejecución: udm_uri, nrf_uri, nf_capacity, nf_priority, log_level |
| POST | /api/oam/log_level | Cambiar el nivel de registro en tiempo de ejecución (emergency…debug) |
| GET | /api/oam/resources | Uso de recursos de la VM BEAM (memoria, conteos de procesos/puertos, versión de OTP/BEAM) |
| GET | /api/oam/diagnostics | Diagnósticos de la VM BEAM (cola de ejecución, I/O, GC, nodos conectados) |
| POST | /api/oam/nrf/reregister | Forzar la re-registro con el NRF |
Los cambios en tiempo de ejecución realizados a través de PATCH /api/oam/config y POST /api/oam/log_level se aplican solo al nodo en ejecución y no se persisten; vuelven a los valores configurados al reiniciar.
Configuraciones solo OAM
Dos valores se exponen a través de GET/PATCH /api/oam/config pero no son parámetros de inicio en la tabla anterior; viven en el perfil NRF en lugar de la configuración central :omniausf:
| Campo | Tipo | Significado |
|---|---|---|
nf_capacity | entero (0-65535) | Capacidad relativa anunciada en el perfil NRF del AUSF, utilizada por los consumidores como un peso de balanceo de carga cuando varias instancias de AUSF están registradas. Un PATCH vuelve a anunciar el nuevo valor al NRF |
nf_priority | entero (0-65535) | Prioridad de selección relativa anunciada en el perfil NRF; se prefiere un número menor. Un PATCH vuelve a anunciar el nuevo valor al NRF |
PATCH /api/oam/config valida estos antes de aplicarlos: nf_capacity/nf_priority deben ser enteros (se acepta y analiza una cadena decimal), y log_level debe ser un nivel conocido. Un valor no válido rechaza toda la solicitud con 400 sin aplicar nada.
Inspeccionando sesiones de autenticación
GET /api/ausf_sessions devuelve una entrada por cada contexto de autenticación de UE en memoria, con estos campos:
| Campo | Significado |
|---|---|
ctx_id | El authCtxId (UUID); páselo a DELETE /api/ausf_sessions/{ctx_id} para limpiar una sesión |
suci | El supiOrSuci que el AMF presentó al inicio |
supi | El SUPI plano resuelto por el UDM (nulo hasta que llegue la respuesta del vector) |
serving_network_name | El nombre de la SN al que están vinculadas las claves de la sesión |
auth_type | 5G_AKA una vez que se almacena el vector |
auth_result | Resultado final, o nulo mientras la sesión aún está en vuelo (pendiente) |
has_kausf | Si se mantiene K_AUSF para esta sesión - indica que se obtuvo el vector y se derivaron las claves. El material de clave en s�� nunca se expone |
Debido a que los contextos se eliminan en el momento en que se confirma un asentamiento, las entradas en esta lista son normalmente de corta duración; una sesión que persiste es una que el AMF inició pero nunca confirmó o desregistró.