Guia de Operações do OmniPGW
OmniPGW - Plano de Controle do Gateway de Pacotes (PGW-C)
por Omnitouch Network Services
Índice
- Visão Geral
- Arquitetura
- Interfaces de Rede
- Conceitos Chave
- Introdução
- Configuração
- Interface Web - Painel de Operações em Tempo Real
- Monitoramento & Métricas
- Documentação Detalhada
- Recursos Adicionais
- Contribuindo
- Suporte
Visão Geral
OmniPGW é uma implementação de alto desempenho do Plano de Controle do Gateway de Pacotes (PGW-C) para redes do Núcleo de Pacotes Evoluído (EPC) LTE 3GPP, desenvolvida pela Omnitouch Network Services. Ele gerencia as funções do plano de controle para sessões de dados, incluindo:
- Gerenciamento de Sessões - Criar, modificar e encerrar sessões de dados do UE (Equipamento do Usuário)
- Alocação de Endereços IP - Atribuição de endereços IP a dispositivos móveis a partir de pools configurados
- Controle de Políticas e Cobrança - Interface com PCRF para aplicação de políticas e cobrança
- Coordenação do Plano do Usuário - Controle do PGW-U (Plano do Usuário) para encaminhamento de pacotes
O que o PGW-C Faz
- Aceita solicitações de sessão do SGW-C via interface S5/S8 (GTP-C)
- Aloca endereços IP do UE a partir de pools de sub-rede configurados
- Solicita decisões de políticas do PCRF via interface Gx (Diameter)
- Programa regras de encaminhamento no PGW-U via interface Sxb (PFCP)
- Gerencia a aplicação de QoS através de contextos de bearer e regras de QoS
- Rastreia informações de cobrança para sistemas de faturamento
Arquitetura
Visão Geral dos Componentes
Arquitetura do Processo
O PGW-C é construído sobre Elixir/OTP e utiliza uma arquitetura de processos supervisionados:
- Supervisor da Aplicação - Supervisor de nível superior que gerencia todos os componentes
- Corretores de Protocolo - Gerenciam mensagens de protocolo de entrada/saída
- Processos de Sessão - Um GenServer por conexão PDN ativa
- Registros - Rastreiam recursos alocados (IPs, TEIDs, SEIDs, etc.)
- Gerenciador de Nó PFCP - Mantém associações PFCP com peers PGW-U
Cada componente é supervisionado e será reiniciado automaticamente em caso de falha, garantindo a confiabilidade do sistema.
Interfaces de Rede
O PGW-C implementa três interfaces principais 3GPP:
Interface S5/S8 (GTP-C v2)
Propósito: Sinalização do plano de controle entre SGW-C e PGW-C
Protocolo: GTP-C Versão 2 sobre UDP
Mensagens Chave:
- Solicitação/Resposta de Criação de Sessão
- Solicitação/Resposta de Exclusão de Sessão
- Solicitação/Resposta de Criação de Bearer
- Solicitação/Resposta de Exclusão de Bearer
Configuração: Veja Configuração S5/S8
Interface Sxb (PFCP)
Propósito: Sinalização do plano de controle entre PGW-C e PGW-U
Protocolo: PFCP (Protocolo de Controle de Encaminhamento de Pacotes) sobre UDP
Mensagens Chave:
- Solicitação/Resposta de Configuração de Associação
- Solicitação/Resposta de Estabelecimento de Sessão
- Solicitação/Resposta de Modificação de Sessão
- Solicitação/Resposta de Exclusão de Sessão
- Solicitação/Resposta de Heartbeat
Configuração: Veja Documentação da Interface PFCP/Sxb
Interface Gx (Diameter)
Propósito: Interface da Função de Regras de Políticas e Cobrança (PCRF)
Protocolo: Diameter (IETF RFC 6733)
Mensagens Chave:
- Solicitação/Resposta de Controle de Crédito Inicial (CCR-I/CCA-I)
- Solicitação/Resposta de Controle de Crédito de Término (CCR-T/CCA-T)
Configuração: Veja Documentação da Interface Diameter Gx
Conceitos Chave
Sessão PDN
Uma Sessão PDN (Rede de Dados de Pacotes) representa a conexão de dados de um UE a uma rede externa (como a Internet). Cada sessão possui:
- Endereço IP do UE - Alocado a partir de um pool de sub-rede configurado
- APN (Nome do Ponto de Acesso) - Identifica a rede externa
- Contexto de Bearer - Contém parâmetros de QoS e informações de túnel
- ID de Cobrança - Identificador único para faturamento
- TEID (ID de Ponto de Extremidade do Túnel) - Identificador do túnel da interface S5/S8
- SEID (ID de Ponto de Extremidade da Sessão) - Identificador da sessão da interface Sxb
Contexto de Bearer
Um bearer representa um fluxo de tráfego com características específicas de QoS:
- Bearer Padrão - Criado com cada sessão PDN
- Bearers Dedicados - Bearers adicionais para necessidades específicas de QoS
- EBI (ID de Bearer EPS) - Identificador único para cada bearer
- Parâmetros de QoS - QCI, ARP, taxas de bits (MBR, GBR)
Regras PFCP
O PGW-C programa o PGW-U com regras de processamento de pacotes:
- PDR (Regra de Detecção de Pacotes) - Combina pacotes (uplink/downlink)
- FAR (Regra de Ação de Encaminhamento) - Especifica o comportamento de encaminhamento
- QER (Regra de Aplicação de QoS) - Aplica limites de taxa de bits
- BAR (Regra de Ação de Bufferização) - Controla a bufferização de pacotes
Veja Documentação da Interface PFCP para detalhes.
Alocação de Endereço IP
Os endereços IP do UE são alocados a partir de pools de sub-rede configurados:
- Seleção baseada em APN - Diferentes APNs podem usar diferentes sub-redes
- Alocação dinâmica - Seleção aleatória de IP do intervalo disponível
- Alocação estática - Suporte para endereços IP solicitados pelo UE
- Detecção de colisão - Garante a atribuição única de IP
Veja Alocação de Pool de IP do UE para configuração.
Introdução
Pré-requisitos
- Elixir ~1.16
- Erlang/OTP 26+
- Conectividade de rede com SGW-C, PGW-U e PCRF
- Compreensão da arquitetura EPC LTE
Iniciando o OmniPGW
- Configure as definições de tempo de execução em
config/runtime.exs - Compile a aplicação:
mix deps.get
mix compile - Inicie a aplicação:
mix run --no-halt
Verificando a Operação
Verifique os logs para startup bem-sucedido:
[info] Iniciando OmniPGW...
[info] Iniciando Exportador de Métricas em 127.0.0.42:42069
[info] Iniciando Corretor S5/S8 em 127.0.0.10
[info] Iniciando Corretor Sxb em 127.0.0.20
[info] Iniciando Corretor Gx
[info] Iniciando Gerenciador de Nó PFCP
[info] OmniPGW iniciado com sucesso
Acesse métricas em http://127.0.0.42:42069/metrics (endereço configurado).
Configuração
Toda a configuração em tempo de execução é definida em config/runtime.exs. A configuração é estruturada em várias seções:
Visão Geral da Configuração
Referência Rápida de Configuração
| Seção | Propósito | Documentação |
|---|---|---|
| metrics | Exportador de métricas Prometheus | Guia de Monitoramento |
| diameter | Interface Gx para PCRF | Configuração Diameter Gx |
| s5s8 | Interface GTP-C para SGW-C | Configuração S5/S8 |
| sxb | Interface PFCP para PGW-U | Configuração PFCP |
| ue | Pools de endereços IP do UE | Configuração de Pool de IP |
| pco | Opções de Configuração de Protocolo | Configuração PCO |
| CDR | Cobrança offline & relatórios de uso | Formato CDR |
Veja o Guia Completo de Configuração para informações detalhadas.
Interface Web - Painel de Operações em Tempo Real
O OmniPGW inclui uma Interface Web integrada para monitoramento e operações em tempo real, proporcionando visibilidade instantânea sobre o status do sistema sem a necessidade de ferramentas de linha de comando ou consultas de métricas.
Acessando a Interface Web
http://<omnipgw-ip>:<web-port>/
Páginas Disponíveis:
| Página | URL | Propósito | Taxa de Atualização |
|---|---|---|---|
| Busca de UE | /ue_search | Análise detalhada de sessões de assinantes específicas | Sob demanda |
| Sessões PGW | /pgw_sessions | Ver todas as sessões PDN ativas | 2 segundos |
| Histórico de Sessões | /session_history | Log de auditoria de eventos de sessão | 5 segundos |
| Topologia da Rede | /topology | Visualização da topologia da rede | 5 segundos |
| Pools de IP | /ip_pools | Utilização do pool de endereços IP do UE | 2 segundos |
| Sessões PFCP | /pfcp_sessions | Ver sessões PFCP com PGW-U | 2 segundos |
| Status do UPF | /upf_status | Monitorar associações de peers PFCP | 2 segundos |
| Seleção do UPF | /upf_selection | Ver regras de seleção do UPF & status do P-CSCF | Estático |
| Peers Diameter | /diameter | Monitorar conectividade PCRF | 1 segundo |
| Monitor P-CSCF | /pcscf_monitor | Status da descoberta DNS do P-CSCF | 5 segundos |
| Simulador Gy | /gy_simulator | Testar cobrança online Gy/Ro | Sob demanda |
| Torres de Celular | /cell_towers | Navegar no banco de dados OpenCellID | Estático |
| Logs | /logs | Streaming de logs em tempo real | Ao vivo |
Principais Recursos
Atualizações em Tempo Real:
- Todas as páginas se atualizam automaticamente (sem necessidade de recarregar manualmente)
- Streaming de dados ao vivo dos processos do OmniPGW
- Indicadores de status codificados por cor (verde/vermelho)
Busca & Filtro:
- Pesquisar sessões por IMSI, IP, MSISDN ou APN
- Filtragem instantânea sem recarregar a página
Detalhes Expansíveis:
- Clique em qualquer linha para ver detalhes completos
- Inspecionar estado completo da sessão
- Ver configuração e capacidades do peer
Sem Autenticação Necessária (Uso Interno):
- Acesso direto da rede de gerenciamento
- Projetado para uso da equipe de NOC/operações
- Vincular apenas ao IP de gerenciamento para segurança
Fluxos de Trabalho Operacionais
Solução de Problemas de Sessão (Análise Detalhada):
1. Usuário relata problema de conexão
2. Abra a página de Busca de UE (/ue_search)
3. Pesquise por IMSI, MSISDN ou endereço IP
4. Revise os detalhes abrangentes da sessão:
a) Sessões Ativas - Verifique se a sessão existe com os parâmetros corretos
b) Localização Atual - Verifique TAC, ID da Célula, localização geográfica
c) Informações do Bearer - Verifique os bearers padrão e dedicados
- QCI, MBR/GBR, Nomes de Regras de Cobrança
- Limites APN-AMBR
d) Informações de Cobrança - ID da sessão Gy, status de cota
e) Informações de Política - Sessão Gx, regras PCC instaladas
f) Eventos Recentes - Histórico da sessão e mudanças de estado
5. Se a sessão não for encontrada → Verifique a página Diameter para conectividade PCRF
6. Se houver problemas de localização → Verifique os dados da torre celular na seção Localização Atual
Busca Rápida de Sessão:
1. Usuário relata problema
2. Abra a página de Sessões PGW (/pgw_sessions)
3. Pesquise por IMSI ou número de telefone
4. Verifique se a sessão existe com detalhes básicos:
- Endereço IP do UE alocado
- Parâmetros de QoS
- Pontos de extremidade do túnel estabelecidos
5. Para análise detalhada → Clique na sessão para expandir ou use a Busca de UE
Verificação de Saúde do Sistema:
1. Abra a página de Status do UPF → Verifique se todos os peers PGW-U estão "Associados"
2. Abra a página Diameter → Verifique se todos os peers PCRF estão "Conectados"
3. Abra Sessões PGW → Verifique a contagem de sessões ativas vs. capacidade
Monitoramento de Capacidade:
- Dê uma olhada na contagem de Sessões PGW
- Compare com a capacidade licenciada/esperada
- Identifique horários de pico de uso
- Monitore a distribuição entre APNs
Interface Web vs. Métricas
Use a Interface Web para:
- Solução de problemas detalhada de assinantes (Busca de UE)
- Detalhes e inspeção de estado de sessão individuais
- Status de peers em tempo real (PFCP, Diameter)
- Verificações rápidas de saúde em todas as interfaces
- Solução de problemas de usuários específicos por IMSI/MSISDN/IP
- Verificação de localização geográfica (integração com Torres de Celular)
- Análise de QoS do bearer (MBR, GBR, QCI)
- Inspeção de regras de política e cobrança
- Histórico de sessões e trilhas de auditoria
- Monitoramento da capacidade do pool de IP
- Verificação de configuração e regras
Use Métricas Prometheus para:
- Tendências históricas
- Alertas e notificações
- Gráficos de planejamento de capacidade
- Análise de desempenho
- Monitoramento a longo prazo
Melhor Prática: Use ambos juntos - Interface Web para operações imediatas, Prometheus para tendências e alertas.
Monitoramento & Métricas
Além da Interface Web, o OmniPGW expõe métricas compatíveis com Prometheus para monitoramento:
Métricas Disponíveis
-
Métricas de Sessão
teid_registry_count- Sessões S5/S8 ativasseid_registry_count- Sessões PFCP ativassession_id_registry_count- Sessões Gx ativasaddress_registry_count- Endereços IP do UE alocadoscharging_id_registry_count- IDs de cobrança ativas
-
Métricas de Mensagens
s5s8_inbound_messages_total- Mensagens GTP-C recebidassxb_inbound_messages_total- Mensagens PFCP recebidasgx_inbound_messages_total- Mensagens Diameter recebidas- Distribuições de duração de manipulação de mensagens
-
Métricas de Erro
s5s8_inbound_errors_total- Erros de protocolo S5/S8sxb_inbound_errors_total- Erros de protocolo PFCPgx_inbound_errors_total- Erros Diameter
Acessando Métricas
As métricas são expostas via HTTP no endpoint configurado:
curl http://127.0.0.42:42069/metrics
Veja Guia de Monitoramento & Métricas para configuração de painel e alertas.
Documentação Detalhada
Esta seção fornece uma visão abrangente de toda a documentação do OmniPGW. Os documentos estão organizados por tópico e caso de uso.
Estrutura da Documentação
Documentação OmniPGW
├── OPERATIONS.md (Este Guia)
│
└── docs/
├── Configuração & Configuração
│ ├── configuration.md Referência completa do runtime.exs
│ ├── ue-ip-allocation.md Configuração do pool de IP
│ └── pco-configuration.md Configurações de DNS, P-CSCF, MTU
│
├── Interfaces de Rede
│ ├── pfcp-interface.md Sxb/PFCP (comunicação PGW-U)
│ ├── diameter-gx.md Gx (comunicação PCRF)
│ ├── diameter-gy.md Gy/Ro (comunicação OCS)
│ └── s5s8-interface.md S5/S8 (comunicação SGW-C)
│
└── Operações
├── session-management.md Ciclo de vida da sessão PDN
└── monitoring.md Métricas Prometheus & alertas
Documentação por Tópico
🚀 Introdução
| Documento | Descrição | Propósito |
|---|---|---|
| OPERATIONS.md | Guia principal de operações (este documento) | Visão geral e início rápido |
⚙️ Configuração
| Documento | Descrição | Linhas |
|---|---|---|
| configuration.md | Referência completa do runtime.exs | 1.600+ |
| ue-ip-allocation.md | Gerenciamento e alocação do pool de IP do UE | 943 |
| pco-configuration.md | Opções de Configuração de Protocolo (DNS, P-CSCF, MTU) | 344 |
🔌 Interfaces de Rede
| Documento | Descrição | Linhas |
|---|---|---|
| pfcp-interface.md | Interface PFCP/Sxb para PGW-U | 1.355 |
| diameter-gx.md | Interface Diameter Gx para PCRF (Controle de Políticas) | 941 |
| diameter-gy.md | Interface Diameter Gy/Ro para OCS (Cobrança Online) | 1.100+ |
| s5s8-interface.md | Interface GTP-C S5/S8 para SGW-C | 456 |
📊 Operações & Monitoramento
| Documento | Descrição | Linhas |
|---|---|---|
| session-management.md | Ciclo de vida e operações da sessão PDN | 435 |
| monitoring.md | Métricas Prometheus, painéis Grafana, alertas | 807 |
| data-cdr-format.md | Formato de arquivo CDR, configuração URR, cobrança offline | 847 |
| qos-bearers.md | Gerenciamento de QoS & bearers, controle de políticas | 448 |
| troubleshooting.md | Procedimentos de solução de problemas e problemas comuns | 687 |
🔧 Recursos Avançados
| Documento | Descrição | Linhas |
|---|---|---|
| pcscf-monitoring.md | Descoberta e monitoramento de saúde do P-CSCF | 894 |
Recursos da Documentação
📈 Diagramas Mermaid
Todos os documentos incluem gráficos Mermaid para compreensão visual:
- Diagramas de arquitetura
- Diagramas de sequência (fluxos de mensagens)
- Máquinas de estado
- Topologia da rede
💡 Exemplos Práticos
Cada documento inclui:
- Exemplos de configuração do mundo real
- Configurações prontas para copiar e colar
- Casos de uso comuns
🔍 Solução de Problemas
Cada documento de interface inclui:
- Problemas comuns e soluções
- Comandos de depuração
- Métricas para diagnóstico
🔗 Referências Cruzadas
Os documentos estão extensivamente interligados para fácil navegação.
Caminhos de Leitura
Para Operadores de Rede
- OPERATIONS.md - Visão geral (este documento)
- configuration.md - Configuração
- monitoring.md - Monitoramento
- session-management.md - Operações do dia a dia
Para Engenheiros de Rede
- OPERATIONS.md - Visão geral da arquitetura (este documento)
- pfcp-interface.md - Controle do plano do usuário
- diameter-gx.md - Controle de políticas
- diameter-gy.md - Cobrança online
- s5s8-interface.md - Gerenciamento de sessões
- ue-ip-allocation.md - Gerenciamento de IP
Para Configuração & Implantação
- configuration.md - Referência completa
- ue-ip-allocation.md - Pools de IP
- pco-configuration.md - Parâmetros de rede
- monitoring.md - Configurar monitoramento
Estatísticas do Documento
- Total de Documentos: 14
- Total de Linhas: ~10.900+
- Tamanho Total: ~265 KB
- Diagramas Mermaid: 75+
- Exemplos de Código: 150+
Conceitos Chave Cobertos
Arquitetura
- ✅ Separação do plano de controle/plano do usuário
- ✅ Arquitetura OTP/Elixir
- ✅ Supervisão de processos
- ✅ Sessões baseadas em GenServer
Protocolos
- ✅ PFCP (Protocolo de Controle de Encaminhamento de Pacotes)
- ✅ GTP-C v2 (Protocolo de Tunelamento 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)
Operações
- ✅ Gerenciamento de sessões
- ✅ Estratégias de alocação de IP
- ✅ Aplicação de QoS
- ✅ Integração de cobrança
- ✅ Monitoramento & alertas
Recursos Adicionais
Especificações 3GPP
| Especificação | Título |
|---|---|
| TS 29.274 | GTP-C v2 (interface S5/S8) |
| TS 29.244 | PFCP (interface Sxb) |
| TS 29.212 | Interface Diameter Gx (Controle de Políticas) |
| TS 32.299 | Aplicações de Cobrança Diameter (Gy/Ro) |
| TS 32.251 | Cobrança do domínio de Pacotes |
| TS 23.401 | Arquitetura EPC |
Documentação Relacionada
- Arquivo de configuração: config/runtime.exs