Guía de Operaciones de OmniPGW
OmniPGW - Plano de Control del Gateway de Paquetes (PGW-C)
por Omnitouch Network Services
Tabla de Contenidos
- Descripción General
- Arquitectura
- Interfaces de Red
- Conceptos Clave
- Comenzando
- Configuración
- Interfaz Web - Panel de Operaciones en Tiempo Real
- Monitoreo y Métricas
- Documentación Detallada
- Recursos Adicionales
- Contribuyendo
- Soporte
Descripción General
OmniPGW es una implementación de alto rendimiento del Plano de Control del Gateway de Paquetes (PGW-C) para redes 3GPP LTE Evolved Packet Core (EPC), desarrollada por Omnitouch Network Services. Gestiona las funciones del plano de control para sesiones de datos, incluyendo:
- Gestión de Sesiones - Creación, modificaci��n y terminación de sesiones de datos de UE (Equipo de Usuario)
- Asignación de Direcciones IP - Asignación de direcciones IP a dispositivos móviles desde grupos configurados
- Control de Políticas y Cargos - Interfaz con PCRF para la aplicación de políticas y cargos
- Coordinación del Plano de Usuario - Control del PGW-U (Plano de Usuario) para el reenvío de paquetes
Lo que Hace PGW-C
- Acepta solicitudes de sesión de SGW-C a través de la interfaz S5/S8 (GTP-C)
- Asigna direcciones IP a UE desde grupos de subred configurados
- Solicita decisiones de políticas a PCRF a través de la interfaz Gx (Diameter)
- Programa reglas de reenvío en PGW-U a través de la interfaz Sxb (PFCP)
- Gestiona la aplicación de QoS a través de contextos de portadora y reglas de QoS
- Rastrea información de cargos para sistemas de facturación
Arquitectura
Descripción General de Componentes
Arquitectura de Procesos
PGW-C está construido sobre Elixir/OTP y utiliza una arquitectura de procesos supervisados:
- Supervisor de Aplicación - Supervisor de nivel superior que gestiona todos los componentes
- Corredores de Protocolo - Manejan mensajes de protocolo entrantes/salientes
- Procesos de Sesión - Un GenServer por cada conexión PDN activa
- Registros - Rastrea recursos asignados (IPs, TEIDs, SEIDs, etc.)
- Gestor de Nodo PFCP - Mantiene asociaciones PFCP con pares PGW-U
Cada componente está supervisado y se reiniciará automáticamente en caso de fallo, asegurando la fiabilidad del sistema.
Interfaces de Red
PGW-C implementa tres interfaces primarias 3GPP:
Interfaz S5/S8 (GTP-C v2)
Propósito: Señalización del plano de control entre SGW-C y PGW-C
Protocolo: GTP-C Versión 2 sobre UDP
Mensajes Clave:
- Solicitud/Respuesta de Creación de Sesión
- Solicitud/Respuesta de Eliminación de Sesión
- Solicitud/Respuesta de Creación de Portadora
- Solicitud/Respuesta de Eliminación de Portadora
Configuración: Ver Configuración S5/S8
Interfaz Sxb (PFCP)
Propósito: Señalización del plano de control entre PGW-C y PGW-U
Protocolo: PFCP (Protocolo de Control de Reenvío de Paquetes) sobre UDP
Mensajes Clave:
- Solicitud/Respuesta de Configuración de Asociación
- Solicitud/Respuesta de Establecimiento de Sesión
- Solicitud/Respuesta de Modificación de Sesión
- Solicitud/Respuesta de Eliminación de Sesión
- Solicitud/Respuesta de Latido
Configuración: Ver Documentación de la Interfaz PFCP/Sxb
Interfaz Gx (Diameter)
Propósito: Interfaz de la Función de Control de Políticas y Cargos (PCRF)
Protocolo: Diameter (IETF RFC 6733)
Mensajes Clave:
- Solicitud/Respuesta Inicial de Control de Crédito (CCR-I/CCA-I)
- Solicitud/Respuesta de Terminación de Control de Crédito (CCR-T/CCA-T)
Configuración: Ver Documentación de la Interfaz Diameter Gx
Conceptos Clave
Sesión PDN
Una Sesión PDN (Red de Datos de Paquetes) representa la conexión de datos de un UE a una red externa (como Internet). Cada sesión tiene:
- Dirección IP de UE - Asignada desde un grupo de subred configurado
- APN (Nombre del Punto de Acceso) - Identifica la red externa
- Contexto de Portadora - Contiene parámetros de QoS e información de túnel
- ID de Cargos - Identificador único para facturación
- TEID (ID de Punto de Terminación de Túnel) - Identificador de túnel de la interfaz S5/S8
- SEID (ID de Punto de Terminación de Sesión) - Identificador de sesión de la interfaz Sxb
Contexto de Portadora
Una portadora representa un flujo de tráfico con características específicas de QoS:
- Portadora Predeterminada - Creada con cada sesión PDN
- Portadoras Dedicadas - Portadoras adicionales para necesidades específicas de QoS
- EBI (ID de Portadora EPS) - Identificador único para cada portadora
- Parámetros de QoS - QCI, ARP, tasas de bits (MBR, GBR)
Reglas PFCP
El PGW-C programa el PGW-U con reglas de procesamiento de paquetes:
- PDR (Regla de Detección de Paquetes) - Coincide con paquetes (uplink/downlink)
- FAR (Regla de Acción de Reenvío) - Especifica el comportamiento de reenvío
- QER (Regla de Aplicación de QoS) - Aplica límites de tasa de bits
- BAR (Regla de Acción de Búfer) - Controla el almacenamiento en búfer de paquetes
Ver Documentación de la Interfaz PFCP para más detalles.
Asignación de Direcciones IP
Las direcciones IP de UE se asignan desde grupos de subred configurados:
- Selección basada en APN - Diferentes APNs pueden usar diferentes subredes
- Asignación dinámica - Selección aleatoria de IP del rango disponible
- Asignación estática - Soporte para direcciones IP solicitadas por UE
- Detección de colisiones - Asegura la asignación única de IP
Ver Asignación de Grupos de IP de UE para configuración.
Comenzando
Requisitos Previos
- Elixir ~1.16
- Erlang/OTP 26+
- Conectividad de red a SGW-C, PGW-U y PCRF
- Comprensión de la arquitectura EPC LTE
Iniciando OmniPGW
- Configurar ajustes de tiempo de ejecución en
config/runtime.exs - Compilar la aplicación:
mix deps.get
mix compile - Iniciar la aplicación:
mix run --no-halt
Verificando la Operación
Verifique los registros para una puesta en marcha exitosa:
[info] Iniciando OmniPGW...
[info] Iniciando Exportador de Métricas en 127.0.0.42:42069
[info] Iniciando Corredor S5/S8 en 127.0.0.10
[info] Iniciando Corredor Sxb en 127.0.0.20
[info] Iniciando Corredor Gx
[info] Iniciando Gestor de Nodo PFCP
[info] OmniPGW iniciado con éxito
Acceda a las métricas en http://127.0.0.42:42069/metrics (dirección configurada).
Configuración
Toda la configuración de tiempo de ejecución se define en config/runtime.exs. La configuración está estructurada en varias secciones:
Descripción General de la Configuración
Referencia Rápida de Configuración
| Sección | Propósito | Documentación |
|---|---|---|
| métricas | Exportador de métricas Prometheus | Guía de Monitoreo |
| diameter | Interfaz Gx a PCRF | Configuración Diameter Gx |
| s5s8 | Interfaz GTP-C a SGW-C | Configuración S5/S8 |
| sxb | Interfaz PFCP a PGW-U | Configuración PFCP |
| ue | Grupos de direcciones IP de UE | Configuración de Grupos de IP |
| pco | Opciones de Configuración de Protocolo | Configuración de PCO |
| CDR | Cargos y reportes de uso fuera de línea | Formato CDR |
Vea la Guía de Configuración Completa para información detallada.
Interfaz Web - Panel de Operaciones en Tiempo Real
OmniPGW incluye una Interfaz Web integrada para monitoreo y operaciones en tiempo real, proporcionando visibilidad instantánea del estado del sistema sin necesidad de herramientas de línea de comandos o consultas de métricas.
Accediendo a la Interfaz Web
http://<omnipgw-ip>:<web-port>/
Páginas Disponibles:
| Página | URL | Propósito | Tasa de Actualización |
|---|---|---|---|
| Búsqueda de UE | /ue_search | Profundizar en sesiones de suscriptores específicos | Bajo demanda |
| Sesiones PGW | /pgw_sessions | Ver todas las sesiones PDN activas | 2 segundos |
| Historial de Sesiones | /session_history | Registro de auditoría de eventos de sesión | 5 segundos |
| Topología de Red | /topology | Vista visual de la topología de la red | 5 segundos |
| Grupos de IP | /ip_pools | Utilización del grupo de direcciones IP de UE | 2 segundos |
| Sesiones PFCP | /pfcp_sessions | Ver sesiones PFCP con PGW-U | 2 segundos |
| Estado de UPF | /upf_status | Monitorear asociaciones de pares PFCP | 2 segundos |
| Selección de UPF | /upf_selection | Ver reglas de selección de UPF y estado de P-CSCF | Estático |
| Pares Diameter | /diameter | Monitorear conectividad PCRF | 1 segundo |
| Monitor P-CSCF | /pcscf_monitor | Estado de descubrimiento DNS de P-CSCF | 5 segundos |
| Simulador Gy | /gy_simulator | Probar cargos en línea Gy/Ro | Bajo demanda |
| Torres de Celular | /cell_towers | Navegar por la base de datos OpenCellID | Estático |
| Registros | /logs | Transmisión de registros en tiempo real | En vivo |
Características Clave
Actualizaciones en Tiempo Real:
- Todas las páginas se actualizan automáticamente (sin necesidad de recarga manual)
- Transmisión de datos en vivo desde los procesos de OmniPGW
- Indicadores de estado codificados por colores (verde/rojo)
Buscar y Filtrar:
- Buscar sesiones por IMSI, IP, MSISDN o APN
- Filtrado instantáneo sin recarga de página
Detalles Expandibles:
- Haga clic en cualquier fila para ver detalles completos
- Inspeccionar el estado completo de la sesión
- Ver configuración y capacidades de pares
Sin Autenticación Requerida (Uso Interno):
- Acceso directo desde la red de gestión
- Diseñado para uso del equipo de NOC/operaciones
- Vincular solo a la IP de gestión por seguridad
Flujos de Trabajo Operativos
Solución de Problemas de Sesiones (Profundización):
1. El usuario informa un problema de conexión
2. Abrir la página de Búsqueda de UE (/ue_search)
3. Buscar por IMSI, MSISDN o dirección IP
4. Revisar detalles completos de la sesión:
a) Sesiones Activas - Verificar que la sesión exista con los parámetros correctos
b) Ubicación Actual - Verificar TAC, ID de Celda, ubicación geográfica
c) Información de Portadora - Verificar portadoras predeterminadas y dedicadas
- QCI, MBR/GBR, Nombres de Reglas de Cargos
- Límites de APN-AMBR
d) Información de Cargos - ID de sesión Gy, estado de cuota
e) Información de Políticas - sesión Gx, reglas PCC instaladas
f) Eventos Recientes - Historial de sesión y cambios de estado
5. Si no se encuentra la sesión → Verificar la página Diameter para conectividad PCRF
6. Si hay problemas de ubicación → Verificar los datos de la torre celular en la sección de Ubicación Actual
Búsqueda Rápida de Sesiones:
1. El usuario informa un problema
2. Abrir la página de Sesiones PGW (/pgw_sessions)
3. Buscar por IMSI o número de teléfono
4. Verificar que la sesión exista con detalles básicos:
- Dirección IP de UE asignada
- Parámetros de QoS
- Puntos de terminación de túnel establecidos
5. Para un análisis detallado → Haga clic en la sesión para expandir o use Búsqueda de UE
Verificación de Salud del Sistema:
1. Abrir la página de Estado de UPF → Verificar que todos los pares PGW-U estén "Asociados"
2. Abrir la página de Diameter → Verificar que todos los pares PCRF estén "Conectados"
3. Abrir Sesiones PGW → Verificar el conteo de sesiones activas frente a la capacidad
Monitoreo de Capacidad:
- Echar un vistazo al conteo de Sesiones PGW
- Comparar con la capacidad licenciada/esperada
- Identificar momentos de uso máximo
- Monitorear distribución entre APNs
Interfaz Web vs. Métricas
Usar la Interfaz Web para:
- Solución de problemas de suscriptores en profundidad (Búsqueda de UE)
- Detalles y estado de sesiones individuales
- Estado en tiempo real de pares (PFCP, Diameter)
- Comprobaciones rápidas de salud en todas las interfaces
- Solución de problemas de usuarios específicos por IMSI/MSISDN/IP
- Verificación de ubicación geográfica (integración de Torres de Celular)
- Análisis de QoS de portadoras (MBR, GBR, QCI)
- Inspección de reglas de políticas y cargos
- Historial de sesiones y auditorías
- Monitoreo de capacidad de grupos de IP
- Verificación de configuración y reglas
Usar Métricas de Prometheus para:
- Tendencias históricas
- Alertas y notificaciones
- Gráficas de planificación de capacidad
- Análisis de rendimiento
- Monitoreo a largo plazo
Mejor Práctica: Usar ambos juntos - Interfaz Web para operaciones inmediatas, Prometheus para tendencias y alertas.
Monitoreo y Métricas
Además de la Interfaz Web, OmniPGW expone métricas compatibles con Prometheus para monitoreo:
Métricas Disponibles
-
Métricas de Sesión
teid_registry_count- Sesiones S5/S8 activasseid_registry_count- Sesiones PFCP activassession_id_registry_count- Sesiones Gx activasaddress_registry_count- Direcciones IP de UE asignadascharging_id_registry_count- IDs de cargos activos
-
Métricas de Mensajes
s5s8_inbound_messages_total- Mensajes GTP-C recibidossxb_inbound_messages_total- Mensajes PFCP recibidosgx_inbound_messages_total- Mensajes Diameter recibidos- Distribuciones de duración del manejo de mensajes
-
Métricas de Errores
s5s8_inbound_errors_total- Errores de protocolo S5/S8sxb_inbound_errors_total- Errores de protocolo PFCPgx_inbound_errors_total- Errores de Diameter
Accediendo a las Métricas
Las métricas se exponen a través de HTTP en el punto final configurado:
curl http://127.0.0.42:42069/metrics
Ver Guía de Monitoreo y Métricas para la configuración del panel y alertas.
Documentación Detallada
Esta sección proporciona una visión completa de toda la documentación de OmniPGW. Los documentos están organizados por tema y caso de uso.
Estructura de Documentación
Documentación de OmniPGW
├── OPERATIONS.md (Esta Guía)
│
└── docs/
├── Configuración y Configuración
│ ├── configuration.md Referencia completa de runtime.exs
│ ├── ue-ip-allocation.md Configuración del grupo de IP
│ └── pco-configuration.md Configuración de DNS, P-CSCF, MTU
│
├── Interfaces de Red
│ ├── pfcp-interface.md Sxb/PFCP (comunicación PGW-U)
│ ├── diameter-gx.md Gx (comunicación PCRF)
│ ├── diameter-gy.md Gy/Ro (comunicación OCS)
│ └── s5s8-interface.md S5/S8 (comunicación SGW-C)
│
└── Operaciones
├── session-management.md Ciclo de vida de la sesión PDN
└── monitoring.md Métricas de Prometheus y alertas
Documentación por Tema
🚀 Comenzando
| Documento | Descripción | Propósito |
|---|---|---|
| OPERATIONS.md | Guía principal de operaciones (este documento) | Descripción general y inicio rápido |
⚙️ Configuración
| Documento | Descripción | Líneas |
|---|---|---|
| configuration.md | Referencia completa de runtime.exs | 1,600+ |
| ue-ip-allocation.md | Gestión y asignación de grupos de IP de UE | 943 |
| pco-configuration.md | Opciones de Configuración de Protocolo (DNS, P-CSCF, MTU) | 344 |
🔌 Interfaces de Red
| Documento | Descripción | Líneas |
|---|---|---|
| pfcp-interface.md | Interfaz PFCP/Sxb a PGW-U | 1,355 |
| diameter-gx.md | Interfaz Diameter Gx a PCRF (Control de Políticas) | 941 |
| diameter-gy.md | Interfaz Diameter Gy/Ro a OCS (Cargos en Línea) | 1,100+ |
| s5s8-interface.md | Interfaz GTP-C S5/S8 a SGW-C | 456 |
📊 Operaciones y Monitoreo
| Documento | Descripción | Líneas |
|---|---|---|
| session-management.md | Ciclo de vida y operaciones de la sesión PDN | 435 |
| monitoring.md | Métricas de Prometheus, paneles de Grafana, alertas | 807 |
| data-cdr-format.md | Formato de archivo CDR, configuración de URR, cargos fuera de línea | 847 |
| qos-bearers.md | Gestión de QoS y portadoras, control de políticas | 448 |
| troubleshooting.md | Procedimientos de solución de problemas y problemas comunes | 687 |
🔧 Características Avanzadas
| Documento | Descripción | Líneas |
|---|---|---|
| pcscf-monitoring.md | Descubrimiento y monitoreo de salud de P-CSCF | 894 |
Características de la Documentación
📈 Diagramas Mermaid
Todos los documentos incluyen gráficos de Mermaid para una comprensión visual:
- Diagramas de arquitectura
- Diagramas de secuencia (flujos de mensajes)
- Máquinas de estado
- Topología de red
💡 Ejemplos Prácticos
Cada documento incluye:
- Ejemplos de configuración del mundo real
- Configuraciones listas para copiar y pegar
- Casos de uso comunes
🔍 Solución de Problemas
Cada documento de interfaz incluye:
- Problemas comunes y soluciones
- Comandos de depuración
- Métricas para diagnóstico
🔗 Referencias Cruzadas
Los documentos están extensamente interconectados para una fácil navegación.
Rutas de Lectura
Para Operadores de Red
- OPERATIONS.md - Descripción general (este documento)
- configuration.md - Configuración
- monitoring.md - Monitoreo
- session-management.md - Operaciones diarias
Para Ingenieros de Red
- OPERATIONS.md - Descripción general de la arquitectura (este documento)
- pfcp-interface.md - Control del plano de usuario
- diameter-gx.md - Control de políticas
- diameter-gy.md - Cargos en línea
- s5s8-interface.md - Gestión de sesiones
- ue-ip-allocation.md - Gestión de IP
Para Configuración y Despliegue
- configuration.md - Referencia completa
- ue-ip-allocation.md - Grupos de IP
- pco-configuration.md - Parámetros de red
- monitoring.md - Configurar monitoreo
Estadísticas del Documento
- Total de Documentos: 14
- Total de Líneas: ~10,900+
- Tamaño Total: ~265 KB
- Diagramas Mermaid: 75+
- Ejemplos de Código: 150+
Conceptos Clave Cubiertos
Arquitectura
- ✅ Separación del plano de control/usuario
- ✅ Arquitectura OTP/Elixir
- ✅ Supervisión de procesos
- ✅ Sesiones basadas en GenServer
Protocolos
- ✅ PFCP (Protocolo de Control de Reenvío de Paquetes)
- ✅ GTP-C v2 (Protocolo de Túnel GPRS)
- ✅ Diameter (RFC 6733)
Interfaces 3GPP
- ✅ Sxb (PGW-C ↔ PGW-U)
- ✅ Gx (PGW-C ↔ PCRF)
- ✅ Gy/Ro (PGW-C ↔ OCS)
- ✅ S5/S8 (SGW-C ↔ PGW-C)
Operaciones
- ✅ Gestión de sesiones
- ✅ Estrategias de asignación de IP
- ✅ Aplicación de QoS
- ✅ Integración de cargos
- ✅ Monitoreo y alertas
Recursos Adicionales
Especificaciones 3GPP
| Especificación | Título |
|---|---|
| TS 29.274 | GTP-C v2 (interfaz S5/S8) |
| TS 29.244 | PFCP (interfaz Sxb) |
| TS 29.212 | Interfaz Diameter Gx (Control de Políticas) |
| TS 32.299 | Aplicaciones de Cargos Diameter (Gy/Ro) |
| TS 32.251 | Cargos del dominio de Paquetes Conmutados |
| TS 23.401 | Arquitectura EPC |
Documentación Relacionada
- Archivo de configuración: config/runtime.exs