Documentação da Interface Gn/Gp
Comunicação GTP-C com SGSN (Redes 2G/3G)
OmniPGW da Omnitouch Network Services
Visão Geral
A interface Gn/Gp permite que o OmniPGW funcione como um GGSN (Gateway GPRS Support Node) para redes 2G/3G usando o protocolo GTP-C v1. Esta interface gerencia o contexto PDP (Packet Data Protocol) entre o GGSN e os SGSNs.
- Interface Gn: Conecta-se aos SGSNs dentro da mesma PLMN (rede doméstica)
- Interface Gp: Conecta-se aos SGSNs em outras PLMNs (cenários de roaming)
Ambas as interfaces usam protocolos idênticos - a distinção é puramente topológica.
Principais Diferenças em Relação ao PGW (S5/S8)
| Aspecto | GGSN (Gn/Gp) | PGW (S5/S8) |
|---|---|---|
| Versão do Protocolo | GTP-C v1 | GTP-C v2 |
| Especificação 3GPP | TS 29.060 | TS 29.274 |
| Conceito de Sessão | Contexto PDP | Sessão PDN + Bearers |
| Identificador de Bearer | NSAPI (0-15) | EBI (5-15) |
| Interface de Política | Nenhuma (política estática) | Gx (PCRF) |
| Modelo de QoS | Perfil de QoS R99 | QoS de Bearer EPS (QCI) |
| Porta | 2123 (compartilhada) | 2123 |
Detalhes do Protocolo
GTP-C Versão 1
- Protocolo: GTP-C v1 (3GPP TS 29.060)
- Transporte: UDP
- Porta: 2123 (compartilhada com S5/S8 GTP-C v2)
- Tipo de Interface: Plano de Controle
TEID (Identificador de Ponto de Extremidade do Túnel)
Cada contexto PDP tem TEIDs únicos para controle e plano de usuário:
- TEID de Controle do GGSN: Alocado pelo OmniPGW para mensagens de controle recebidas
- TEID de Dados do GGSN: Alocado pelo UPF para dados de usuário recebidos
- TEID de Controle do SGSN: Fornecido pelo SGSN para mensagens de controle enviadas
- TEID de Dados do SGSN: Fornecido pelo SGSN para dados de usuário enviados
Fluxo de Mensagem:
SGSN → GGSN: TEID de Destino = TEID de Controle do GGSN
GGSN → SGSN: TEID de Destino = TEID de Controle do SGSN
Suporte a CUPS (Separação de Controle e Plano de Usuário)
O OmniPGW suporta a arquitetura CUPS para 2G/3G:
- Endereço GSN para Sinalização: IP do plano de controle do OmniPGW (de
gn.local_ipv4_address) - Endereço GSN para Tráfego de Usuário: Endereço IP do UPF (da Resposta de Estabelecimento de Sessão PFCP)
Isso permite que o GGSN-C e o PGW-U/UPF operem em nós separados com endereços IP diferentes, o que é padrão para implantações CUPS.
NSAPI (Identificador de Ponto de Acesso ao Serviço de Rede)
O NSAPI identifica contextos PDP individuais dentro de uma sessão de assinante:
- Faixa: 5-15 (0-4 reservados)
- Uso: Múltiplos contextos PDP por assinante são possíveis
- Equivalente: Semelhante ao EBI em LTE/EPC
Configuração
Configuração Básica
# config/runtime.exs
config :pgw_c,
# A interface Gn/Gp é habilitada automaticamente quando a configuração gn está presente
gn: %{
# Endereço IPv4 local para a interface Gn
local_ipv4_address: "10.0.0.20",
# Opcional: Endereço IPv6 local
local_ipv6_address: nil,
# Porta para GTP-C v1 (compartilhada com S5/S8)
local_port: 2123
},
# Servidores DNS retornados em PCO (compartilhados com PGW)
dns: %{
primary_ipv4: {8, 8, 8, 8},
secondary_ipv4: {8, 8, 4, 4}
}
Parâmetros da Interface Gn
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
local_ipv4_address | String | Sim | - | Endereço IPv4 para vincular à interface Gn. Este é o endereço do GGSN anunciado aos SGSNs. |
local_ipv6_address | String | Não | nil | Endereço IPv6 opcional. A maioria das redes 2G/3G é apenas IPv4. |
local_port | Inteiro | Não | 2123 | Porta UDP para GTP-C. Porta padrão conforme 3GPP TS 29.060. Compartilhada com S5/S8. |
Parâmetros DNS
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
primary_ipv4 | Tupla | Não | {8, 8, 8, 8} | Endereço do servidor DNS primário IPv4 retornado em PCO. |
secondary_ipv4 | Tupla | Não | {8, 8, 4, 4} | Endereço do servidor DNS secundário IPv4 retornado em PCO. |
primary_ipv6 | Tupla | Não | nil | Endereço do servidor DNS primário IPv6. |
secondary_ipv6 | Tupla | Não | nil | Endereço do servidor DNS secundário IPv6. |
Requisitos de Rede
Regras de Firewall:
# Permitir GTP-C da rede SGSN
iptables -A INPUT -p udp --dport 2123 -s <sgsn_network>/24 -j ACCEPT
# Permitir GTP-C de saída para SGSN
iptables -A OUTPUT -p udp --dport 2123 -d <sgsn_network>/24 -j ACCEPT
Tipos de Mensagens
Gerenciamento de Contexto PDP
Solicitação de Criação de Contexto PDP
Direção: SGSN → GGSN
Propósito: Estabelecer um novo contexto PDP para conectividade de dados
Principais IEs (Elementos de Informação):
| Nome IE | Tipo | Descrição |
|---|---|---|
| IMSI | Identidade | Identidade Internacional do Assinante Móvel |
| NSAPI | Inteiro | Identificador de Ponto de Acesso ao Serviço de Rede (5-15) |
| TEID Dados I | Inteiro | Ponto de extremidade do túnel do plano de usuário do SGSN |
| TEID Controle | Inteiro | Ponto de extremidade do túnel do plano de controle do SGSN |
| Endereço do Usuário Final | Endereço | Tipo de PDN solicitado e IP opcional |
| Nome do Ponto de Acesso | String | APN para a conexão |
| Endereço GSN (Sinalização) | IP | Endereço do plano de sinalização do SGSN |
| Endereço GSN (Usuário) | IP | Endereço do plano de usuário do SGSN |
| Perfil de QoS | Binário | Parâmetros de QoS solicitados |
| MSISDN | Identidade | Número de telefone móvel (opcional) |
| Modo de Seleção | Enum | Modo de seleção de APN |
| Opções de Configuração de Protocolo | Opções | Opções de protocolo adicionais |
Exemplo:
Solicitação de Criação de Contexto PDP
├── IMSI: 310260123456789
├── NSAPI: 5
├── TEID Dados I: 0x12345678
├── TEID Controle: 0x87654321
├── Endereço do Usuário Final: IPv4 (dinâmico)
├── APN: internet
├── Endereço GSN (Sinalização): 10.1.1.100
├── Endereço GSN (Usuário): 10.1.1.100
├── Perfil de QoS: [Parâmetros de QoS R99]
└── PCO: [Solicitação de DNS, etc.]
Resposta de Criação de Contexto PDP
Direção: GGSN → SGSN
Propósito: Reconhecer a criação do contexto PDP com recursos alocados
Principais IEs:
| Nome IE | Tipo | Descrição |
|---|---|---|
| Causa | Resultado | Código de sucesso ou erro |
| Reordenação Necessária | Booleano | Se a reordenação é necessária |
| Recuperação | Contador | Contador de reinício do GGSN |
| TEID Dados I | Inteiro | Ponto de extremidade do túnel do plano de usuário do GGSN |
| TEID Controle | Inteiro | Ponto de extremidade do túnel do plano de controle do GGSN |
| NSAPI | Inteiro | NSAPI confirmado |
| ID de Cobrança | Binário | ID de correlação de cobrança |
| Endereço do Usuário Final | Endereço | Endereço IP do UE alocado |
| Endereço GSN (Sinalização) | IP | Endereço do plano de sinalização do GGSN |
| Endereço GSN (Usuário) | IP | Endereço do plano de usuário do GGSN |
| Perfil de QoS | Binário | Parâmetros de QoS negociados |
| Opções de Configuração de Protocolo | Opções | Servidores DNS, etc. |
Resposta de Sucesso:
Resposta de Criação de Contexto PDP
├── Causa: Solicitação Aceita (128)
├── TEID Dados I: 0xAABBCCDD
├── TEID Controle: 0xDDCCBBAA
├── NSAPI: 5
├── ID de Cobrança: 0x11223344
├── Endereço do Usuário Final
│ └── IPv4: 100.64.1.42
├── Endereço GSN (Sinalização): 10.0.0.20
├── Endereço GSN (Usuário): 10.0.0.20
├── Perfil de QoS: [QoS Negociado]
└── PCO
├── DNS Primário: 8.8.8.8
└── DNS Secundário: 8.8.4.4
Solicitação de Atualização de Contexto PDP
Direção: SGSN → GGSN
Propósito: Modificar um contexto PDP existente (por exemplo, realocação de SGSN, alteração de QoS)
Cenários comuns:
- Transferência inter-SGSN (atualização da área de roteamento)
- Renegociação de QoS
- Alteração de endereço do SGSN
Principais IEs:
| Nome IE | Descrição |
|---|---|
| NSAPI | Identificador do contexto PDP |
| TEID Dados I | Novo TEID do plano de usuário do SGSN |
| Endereço GSN | Novos endereços do SGSN |
| Perfil de QoS | QoS atualizada (opcional) |
Resposta de Atualização de Contexto PDP
Direção: GGSN → SGSN
Propósito: Reconhecer a atualização do contexto PDP
Principais IEs:
| Nome IE | Descrição |
|---|---|
| Causa | Código de sucesso ou erro |
| TEID Dados I | TEID do plano de usuário do GGSN |
| Endereço GSN | Endereços do GGSN |
| Perfil de QoS | QoS negociada |
Solicitação de Exclusão de Contexto PDP
Direção: SGSN → GGSN
Propósito: Terminar um contexto PDP
Principais IEs:
| Nome IE | Descrição |
|---|---|
| NSAPI | Contexto PDP a ser excluído |
| Indicação de Desmontagem | Excluir todos os contextos para este assinante |
Resposta de Exclusão de Contexto PDP
Direção: GGSN → SGSN
Propósito: Reconhecer a exclusão do contexto PDP
Principais IEs:
| Nome IE | Descrição |
|---|---|
| Causa | Código de sucesso ou erro |
Gerenciamento de Caminho
Solicitação / Resposta de Eco
Direção: Bidirecional
Propósito: Manter o caminho e detectar reinicializações
Principais IEs:
| Nome IE | Descrição |
|---|---|
| Recuperação | Contador de reinício para detectar reinicializações de nó |
Fluxos de Mensagem
Ativação do Contexto PDP
Desativação do Contexto PDP
Transferência Inter-SGSN
Infraestrutura Compartilhada
A funcionalidade GGSN do OmniPGW compartilha infraestrutura com o modo PGW:
Alocação de Endereço IP do UE
Usa o mesmo AddressRegistry e configuração de sub-rede que o PGW. Veja Alocação de IP do UE para detalhes de configuração.
Gerenciamento de Sessão UPF/PFCP
Usa o mesmo estabelecimento de sessão PFCP que o PGW:
- Regras PDR/FAR/QER criadas por contexto PDP
- Seleção de UPF via a mesma configuração upf_selection
- Veja Interface PFCP para detalhes
Cobrança Online (Gy)
Integração opcional Diameter Gy disponível:
- Controle de crédito para assinantes pré-pagos
- Mesma configuração Gy que o modo PGW
- Veja Interface Diameter Gy para configuração
Geração de CDR
Usa a mesma geração de CDR que o PGW. Veja Formato de CDR de Dados para detalhes.
Códigos de Causa
Sucesso
| Código | Nome | Descrição |
|---|---|---|
| 128 | Solicitação Aceita | Operação bem-sucedida |
Causas de Rejeição
| Código | Nome | Quando Usado |
|---|---|---|
| 192 | Não existente | Contexto PDP não encontrado |
| 193 | Formato de mensagem inválido | Mensagem GTP malformada |
| 194 | IMSI não conhecido | Assinante não encontrado |
| 195 | MS está Desconectado do GPRS | MS não anexado |
| 196 | MS não está Respondendo ao GPRS | MS inacessível |
| 197 | MS Recusa | MS rejeitou a solicitação |
| 198 | Versão não suportada | Incompatibilidade de versão GTP |
| 199 | Nenhum recurso disponível | Exaustão de recursos |
| 200 | Serviço não suportado | Serviço não suportado |
| 201 | IE obrigatório incorreto | Validação de IE falhou |
| 202 | IE obrigatório ausente | IE requerido ausente |
| 203 | IE opcional incorreto | IE opcional inválido |
| 204 | Falha no sistema | Erro interno |
| 205 | Restrição de roaming | Roaming não permitido |
| 206 | Desvio de Assinatura P-TMSI | Falha de segurança |
| 207 | Conexão GPRS suspensa | Conexão suspensa |
| 208 | Falha de autenticação | Autenticação falhou |
| 209 | Falha na autenticação do usuário | Autenticação do usuário falhou |
Monitoramento
Métricas da Interface Gn
# Contadores de mensagens
gn_inbound_messages_total{message_type="create_pdp_context_request"}
gn_inbound_messages_total{message_type="update_pdp_context_request"}
gn_inbound_messages_total{message_type="delete_pdp_context_request"}
gn_outbound_messages_total{message_type="create_pdp_context_response"}
gn_outbound_messages_total{message_type="update_pdp_context_response"}
gn_outbound_messages_total{message_type="delete_pdp_context_response"}
# Latência da transação
gn_outbound_transaction_duration_bucket
Consultas Úteis
Taxa de Criação de Contexto PDP:
rate(gn_inbound_messages_total{message_type="create_pdp_context_request"}[5m])
Taxa de Sucesso:
sum(rate(gn_outbound_messages_total{message_type="create_pdp_context_response"}[5m]))
/ sum(rate(gn_inbound_messages_total{message_type="create_pdp_context_request"}[5m]))
Contextos PDP Ativos:
gn_inbound_messages_total{message_type="create_pdp_context_request"}
- gn_inbound_messages_total{message_type="delete_pdp_context_request"}
Resolução de Problemas
Problema: Sem Resposta à Solicitação de Criação de Contexto PDP
Sintomas:
- SGSN envia Solicitação de Criação de Contexto PDP
- Nenhuma resposta recebida
- Tempo limite no SGSN
Possíveis causas:
- Problema de conectividade de rede
- OmniPGW não está ouvindo no IP configurado
- Firewall bloqueando UDP 2123
- Falha no estabelecimento de UPF/PFCP
Depuração:
# Verificar se o OmniPGW está ouvindo
netstat -ulnp | grep 2123
# Verificar pacotes recebidos
tcpdump -i any -n port 2123
# Verificar configuração
grep "local_ipv4_address" config/runtime.exs
# Verificar conectividade PFCP
curl http://pgw:9090/metrics | grep pfcp
Problema: Criação de Contexto PDP Rejeitada
Sintomas:
- Resposta de Criação de Contexto PDP com código de erro
- Contexto PDP não estabelecido
Causas comuns:
Causa 199 (Nenhum recurso disponível):
→ Pool de IP esgotado
→ Verificar: curl http://pgw:9090/metrics | grep address_registry_count
→ Expandir pool de IP em ue.subnet_map
Causa 202 (IE obrigatório ausente):
→ SGSN não enviando IEs requeridos
→ Verificar configuração do SGSN
→ Revisar mensagem no tcpdump
Causa 204 (Falha no sistema):
→ Falha no UPF/PFCP
→ Verificar status da associação PFCP
→ Revisar logs do OmniPGW
Problema: Falha na Atualização do Contexto PDP
Sintomas:
- Resposta de Atualização de Contexto PDP com código de erro
- Transferência falha
Possíveis causas:
- Contexto PDP não encontrado (TEID diferente)
- Incompatibilidade de NSAPI
- Sessão já excluída
Depuração:
# Verificar sessões ativas
curl http://pgw:9090/metrics | grep session_count
# Revisar logs para busca de contexto
journalctl -u omnipgw | grep "PDP Context"
Melhores Práticas
Design de Rede
-
Porta Compartilhada com S5/S8
- Gn e S5/S8 compartilham a porta UDP 2123
- OmniPGW detecta automaticamente a versão GTP a partir da mensagem
- Um único IP pode atender tanto 2G/3G quanto 4G
-
Conectividade do SGSN
- Garantir que todos os SGSNs possam alcançar o IP do GGSN
- Considerar VLAN dedicada para tráfego Gn
- Planejar para roaming (Gp) se aplicável
-
Planejamento de Endereço IP
- Os mesmos pools de IP atendem tanto os modos PGW quanto GGSN
- Considerar pools baseados em APN separados para 2G/3G
Desempenho
-
Capacidade de Sessão
- Monitorar a métrica
session_count - Planejar para o número esperado de assinantes 2G/3G
- Considerar que 2G/3G normalmente tem menos sessões simultâneas
- Monitorar a métrica
-
Tamanhos de Buffer UDP
- As mesmas recomendações que S5/S8
- Típico: 4-8 MB por socket
Considerações de Migração
Ao migrar de um GGSN autônomo para o OmniPGW:
-
Configuração de APN
- Garantir que os APNs correspondam à configuração existente do GGSN
- Verificar configurações do servidor DNS em PCO
-
Migração de Pool de IP
- Planejar cuidadosamente a transição do pool de IP
- Considerar migração gradual por APN
-
Mapeamento de QoS
- Perfis de QoS R99 aceitos como estão
- Nenhuma tradução de QCI necessária para 2G/3G
Documentação Relacionada
Funções Principais
- Guia de Configuração - Referência completa de configuração
- Gerenciamento de Sessão - Detalhes do ciclo de vida da sessão
- Alocação de IP do UE - Gerenciamento de endereços IP
- Configuração de PCO - Opções de Configuração de Protocolo
Interfaces Relacionadas
- Interface S5/S8 - Interface equivalente 4G/LTE
- Interface PFCP - Coordenação do plano de usuário
- Interface Diameter Gy - Cobrança online
Operações
- Guia de Monitoramento - Métricas e alertas
- Resolução de Problemas - Problemas comuns
- Formato de CDR de Dados - Geração de CDR
Referências
- 3GPP TS 29.060 - Protocolo de Tunelamento GPRS (GTP) através da interface Gn e Gp
- 3GPP TS 23.060 - Serviço Geral de Pacote de Rádio (GPRS); Descrição do serviço
- 3GPP TS 24.008 - Especificação da Camada 3 da interface de rádio móvel (perfis de QoS)
Voltar ao Índice da Documentação
Interface Gn/Gp do OmniPGW - por Omnitouch Network Services