Aller au contenu principal

Guide des opérations OmniPGW

OmniPGW - Plan de contrôle de la passerelle de paquets (PGW-C)

par Omnitouch Network Services


Table des matières

  1. Aperçu
  2. Architecture
  3. Interfaces réseau
  4. Concepts clés
  5. Prise en main
  6. Configuration
  7. Interface Web - Tableau de bord des opérations en temps réel
  8. Surveillance & Métriques
  9. Documentation détaillée
  10. Ressources supplémentaires
  11. Contributions
  12. Support

Aperçu

OmniPGW est une implémentation de haute performance du Plan de contrôle de la passerelle de paquets (PGW-C) pour les réseaux 3GPP LTE Evolved Packet Core (EPC), développée par Omnitouch Network Services. Il gère les fonctions du plan de contrôle pour les sessions de données, y compris :

  • Gestion des sessions - Création, modification et terminaison des sessions de données UE (Équipement utilisateur)
  • Allocation d'adresses IP - Attribution d'adresses IP aux appareils mobiles à partir de pools configurés
  • Contrôle des politiques et de la facturation - Interface avec PCRF pour l'application des politiques et la facturation
  • Coordination du plan utilisateur - Contrôle du PGW-U (Plan utilisateur) pour le transfert de paquets

Ce que fait le PGW-C

  • Accepte les demandes de session du SGW-C via l'interface S5/S8 (GTP-C)
  • Alloue des adresses IP UE à partir de pools de sous-réseaux configurés
  • Demande des décisions de politique au PCRF via l'interface Gx (Diameter)
  • Programme des règles de transfert dans le PGW-U via l'interface Sxb (PFCP)
  • Gère l'application de la QoS à travers des contextes de bearer et des règles de QoS
  • Suit les informations de facturation pour les systèmes de facturation

Architecture

Vue d'ensemble des composants

Architecture des processus

Le PGW-C est construit sur Elixir/OTP et utilise une architecture de processus supervisée :

  • Superviseur d'application - Superviseur de niveau supérieur gérant tous les composants
  • Courtiers de protocole - Gèrent les messages de protocole entrants/sortants
  • Processus de session - Un GenServer par connexion PDN active
  • Registres - Suivent les ressources allouées (IPs, TEIDs, SEIDs, etc.)
  • Gestionnaire de nœud PFCP - Maintient les associations PFCP avec les pairs PGW-U

Chaque composant est supervisé et redémarrera automatiquement en cas de défaillance, garantissant la fiabilité du système.


Interfaces réseau

Le PGW-C implémente trois interfaces 3GPP principales :

Interface S5/S8 (GTP-C v2)

But : Signalisation du plan de contrôle entre SGW-C et PGW-C

Protocole : GTP-C Version 2 sur UDP

Messages clés :

  • Demande/Réponse de création de session
  • Demande/Réponse de suppression de session
  • Demande/Réponse de création de bearer
  • Demande/Réponse de suppression de bearer

Configuration : Voir Configuration S5/S8

Interface Sxb (PFCP)

But : Signalisation du plan de contrôle entre PGW-C et PGW-U

Protocole : PFCP (Protocole de contrôle de transfert de paquets) sur UDP

Messages clés :

  • Demande/Réponse de configuration d'association
  • Demande/Réponse d'établissement de session
  • Demande/Réponse de modification de session
  • Demande/Réponse de suppression de session
  • Demande/Réponse de heartbeat

Configuration : Voir Documentation de l'interface PFCP/Sxb

Interface Gx (Diameter)

But : Interface de la fonction de règles de politique et de facturation (PCRF)

Protocole : Diameter (IETF RFC 6733)

Messages clés :

  • Demande/Réponse de contrôle de crédit initial (CCR-I/CCA-I)
  • Demande/Réponse de terminaison de contrôle de crédit (CCR-T/CCA-T)

Configuration : Voir Documentation de l'interface Diameter Gx


Concepts clés

Session PDN

Une session PDN (Packet Data Network) représente la connexion de données d'un UE à un réseau externe (comme Internet). Chaque session a :

  • Adresse IP UE - Allouée à partir d'un pool de sous-réseaux configuré
  • APN (Nom de point d'accès) - Identifie le réseau externe
  • Contexte de bearer - Contient des paramètres de QoS et des informations de tunnel
  • ID de facturation - Identifiant unique pour la facturation
  • TEID (Identifiant de point de terminaison de tunnel) - Identifiant de tunnel de l'interface S5/S8
  • SEID (Identifiant de point de terminaison de session) - Identifiant de session de l'interface Sxb

Contexte de bearer

Un bearer représente un flux de trafic avec des caractéristiques de QoS spécifiques :

  • Bearer par défaut - Créé avec chaque session PDN
  • Bearers dédiés - Bearers supplémentaires pour des besoins de QoS spécifiques
  • EBI (Identifiant de bearer EPS) - Identifiant unique pour chaque bearer
  • Paramètres de QoS - QCI, ARP, débits (MBR, GBR)

Règles PFCP

Le PGW-C programme le PGW-U avec des règles de traitement des paquets :

  • PDR (Règle de détection de paquets) - Correspond aux paquets (montant/descendant)
  • FAR (Règle d'action de transfert) - Spécifie le comportement de transfert
  • QER (Règle d'application de QoS) - Applique des limites de débit
  • BAR (Règle d'action de mise en mémoire tampon) - Contrôle la mise en mémoire tampon des paquets

Voir Documentation de l'interface PFCP pour plus de détails.

Allocation d'adresses IP

Les adresses IP des UE sont allouées à partir de pools de sous-réseaux configurés :

  • Sélection basée sur l'APN - Différents APN peuvent utiliser différents sous-réseaux
  • Allocation dynamique - Sélection aléatoire d'IP à partir de la plage disponible
  • Allocation statique - Support pour les adresses IP demandées par l'UE
  • Détection de collision - Assure une attribution unique des IP

Voir Allocation de pool IP UE pour la configuration.


Prise en main

Prérequis

  • Elixir ~1.16
  • Erlang/OTP 26+
  • Connectivité réseau vers SGW-C, PGW-U et PCRF
  • Compréhension de l'architecture EPC LTE

Démarrer OmniPGW

  1. Configurer les paramètres d'exécution dans config/runtime.exs
  2. Compiler l'application :
    mix deps.get
    mix compile
  3. Démarrer l'application :
    mix run --no-halt

Vérification du fonctionnement

Vérifiez les journaux pour un démarrage réussi :

[info] Démarrage d'OmniPGW...
[info] Démarrage de l'exportateur de métriques sur 127.0.0.42:42069
[info] Démarrage du courtier S5/S8 sur 127.0.0.10
[info] Démarrage du courtier Sxb sur 127.0.0.20
[info] Démarrage du courtier Gx
[info] Démarrage du gestionnaire de nœud PFCP
[info] OmniPGW démarré avec succès

Accédez aux métriques à http://127.0.0.42:42069/metrics (adresse configurée).


Configuration

Toute la configuration d'exécution est définie dans config/runtime.exs. La configuration est structurée en plusieurs sections :

Vue d'ensemble de la configuration

Référence de configuration rapide

SectionButDocumentation
metricsExportateur de métriques PrometheusGuide de surveillance
diameterInterface Gx vers PCRFConfiguration Diameter Gx
s5s8Interface GTP-C vers SGW-CConfiguration S5/S8
sxbInterface PFCP vers PGW-UConfiguration PFCP
uePools d'adresses IP UEConfiguration du pool IP
pcoOptions de configuration de protocoleConfiguration PCO
CDRFacturation hors ligne & rapport d'utilisationFormat CDR

Voir le Guide de configuration complet pour des informations détaillées.


Interface Web - Tableau de bord des opérations en temps réel

OmniPGW comprend une Interface Web intégrée pour la surveillance et les opérations en temps réel, offrant une visibilité instantanée sur l'état du système sans avoir besoin d'outils en ligne de commande ou de requêtes de métriques.

Accéder à l'Interface Web

http://<omnipgw-ip>:<web-port>/

Pages disponibles :

PageURLButTaux de rafraîchissement
Recherche UE/ue_searchPlongée dans des sessions d'abonnés spécifiquesÀ la demande
Sessions PGW/pgw_sessionsVoir toutes les sessions PDN actives2 secondes
Historique des sessions/session_historyJournal des événements de session5 secondes
Topologie réseau/topologyVue de la topologie réseau visuelle5 secondes
Pools IP/ip_poolsUtilisation du pool d'adresses IP UE2 secondes
Sessions PFCP/pfcp_sessionsVoir les sessions PFCP avec PGW-U2 secondes
État UPF/upf_statusSurveiller les associations de pairs PFCP2 secondes
Sélection UPF/upf_selectionVoir les règles de sélection UPF & état P-CSCFStatique
Pairs Diameter/diameterSurveiller la connectivité PCRF1 seconde
Moniteur P-CSCF/pcscf_monitorÉtat de découverte DNS P-CSCF5 secondes
Simulateur Gy/gy_simulatorTester la facturation en ligne Gy/RoÀ la demande
Tours de cellules/cell_towersParcourir la base de données OpenCellIDStatique
Journaux/logsDiffusion en temps réel des journauxEn direct

Fonctionnalités clés

Mises à jour en temps réel :

  • Toutes les pages se rafraîchissent automatiquement (pas besoin de rechargement manuel)
  • Diffusion de données en direct depuis les processus OmniPGW
  • Indicateurs de statut codés par couleur (vert/rouge)

Recherche & Filtre :

  • Rechercher des sessions par IMSI, IP, MSISDN ou APN
  • Filtrage instantané sans rechargement de page

Détails extensibles :

  • Cliquez sur n'importe quelle ligne pour voir les détails complets
  • Inspecter l'état complet de la session
  • Voir la configuration et les capacités des pairs

Aucune authentification requise (usage interne) :

  • Accès direct depuis le réseau de gestion
  • Conçu pour l'utilisation de l'équipe NOC/opérations
  • Lier uniquement à l'IP de gestion pour la sécurité

Flux de travail opérationnels

Dépannage de session (Plongée approfondie) :

1. L'utilisateur signale un problème de connexion
2. Ouvrir la page de recherche UE (/ue_search)
3. Rechercher par IMSI, MSISDN ou adresse IP
4. Examiner les détails complets de la session :
a) Sessions actives - Vérifier que la session existe avec les bons paramètres
b) Emplacement actuel - Vérifier TAC, ID de cellule, emplacement géographique
c) Informations sur le bearer - Vérifier les bearers par défaut et dédiés
- QCI, MBR/GBR, Noms de règles de facturation
- Limites APN-AMBR
d) Informations de facturation - ID de session Gy, état du quota
e) Informations de politique - Session Gx, règles PCC installées
f) Événements récents - Historique des sessions et changements d'état
5. Si la session n'est pas trouvée → Vérifier la page Diameter pour la connectivité PCRF
6. Si des problèmes de localisation → Vérifier les données de la tour de cellules dans la section Emplacement actuel

Recherche rapide de session :

1. L'utilisateur signale un problème
2. Ouvrir la page des sessions PGW (/pgw_sessions)
3. Rechercher par IMSI ou numéro de téléphone
4. Vérifier que la session existe avec des détails de base :
- Adresse IP UE allouée
- Paramètres de QoS
- Points de terminaison de tunnel établis
5. Pour une analyse détaillée → Cliquez sur la session pour l'étendre ou utilisez la recherche UE

Vérification de la santé du système :

1. Ouvrir la page État UPF → Vérifier que tous les pairs PGW-U sont "Associés"
2. Ouvrir la page Diameter → Vérifier que tous les pairs PCRF sont "Connectés"
3. Ouvrir les sessions PGW → Vérifier le nombre de sessions actives par rapport à la capacité

Surveillance de la capacité :

  • Jeter un œil au nombre de sessions PGW
  • Comparer à la capacité licenciée/attendue
  • Identifier les heures de pointe d'utilisation
  • Surveiller la distribution à travers les APN

Interface Web vs. Métriques

Utilisez l'Interface Web pour :

  • Dépannage approfondi des abonnés (Recherche UE)
  • Détails et inspection de session individuelles
  • État en temps réel des pairs (PFCP, Diameter)
  • Vérifications rapides de la santé à travers toutes les interfaces
  • Dépannage d'utilisateurs spécifiques par IMSI/MSISDN/IP
  • Vérification de l'emplacement géographique (intégration de la tour de cellules)
  • Analyse de la QoS du bearer (MBR, GBR, QCI)
  • Inspection des règles de politique et de facturation
  • Historique des sessions et pistes d'audit
  • Surveillance de la capacité du pool IP
  • Vérification de la configuration et des règles

Utilisez les métriques Prometheus pour :

  • Tendances historiques
  • Alertes et notifications
  • Graphiques de planification de capacité
  • Analyse de performance
  • Surveillance à long terme

Meilleure pratique : Utilisez les deux ensemble - Interface Web pour les opérations immédiates, Prometheus pour les tendances et les alertes.


Surveillance & Métriques

En plus de l'Interface Web, OmniPGW expose des métriques compatibles avec Prometheus pour la surveillance :

Métriques disponibles

  • Métriques de session

    • teid_registry_count - Sessions S5/S8 actives
    • seid_registry_count - Sessions PFCP actives
    • session_id_registry_count - Sessions Gx actives
    • address_registry_count - Adresses IP UE allouées
    • charging_id_registry_count - IDs de facturation actifs
  • Métriques de message

    • s5s8_inbound_messages_total - Messages GTP-C reçus
    • sxb_inbound_messages_total - Messages PFCP reçus
    • gx_inbound_messages_total - Messages Diameter reçus
    • Durées de traitement des messages
  • Métriques d'erreur

    • s5s8_inbound_errors_total - Erreurs de protocole S5/S8
    • sxb_inbound_errors_total - Erreurs de protocole PFCP
    • gx_inbound_errors_total - Erreurs Diameter

Accéder aux métriques

Les métriques sont exposées via HTTP à l'endpoint configuré :

curl http://127.0.0.42:42069/metrics

Voir Guide de surveillance & métriques pour la configuration du tableau de bord et des alertes.


Documentation détaillée

Cette section fournit un aperçu complet de toute la documentation d'OmniPGW. Les documents sont organisés par sujet et cas d'utilisation.

Structure de la documentation

Documentation OmniPGW
├── OPERATIONS.md (Ce guide)

└── docs/
├── Configuration & Mise en place
│ ├── configuration.md Référence complète de runtime.exs
│ ├── ue-ip-allocation.md Configuration du pool IP
│ └── pco-configuration.md Paramètres DNS, P-CSCF, MTU

├── Interfaces réseau
│ ├── pfcp-interface.md Sxb/PFCP (communication PGW-U)
│ ├── diameter-gx.md Gx (communication PCRF)
│ ├── diameter-gy.md Gy/Ro (communication OCS)
│ └── s5s8-interface.md S5/S8 (communication SGW-C)

└── Opérations
├── session-management.md Cycle de vie de la session PDN
└── monitoring.md Métriques Prometheus & alertes

Documentation par sujet

🚀 Prise en main

DocumentDescriptionBut
OPERATIONS.mdGuide principal des opérations (ce document)Aperçu et démarrage rapide

⚙️ Configuration

DocumentDescriptionLignes
configuration.mdRéférence complète de runtime.exs1,600+
ue-ip-allocation.mdGestion et allocation des pools IP UE943
pco-configuration.mdOptions de configuration de protocole (DNS, P-CSCF, MTU)344

🔌 Interfaces réseau

DocumentDescriptionLignes
pfcp-interface.mdInterface PFCP/Sxb vers PGW-U1,355
diameter-gx.mdInterface Diameter Gx vers PCRF (Contrôle de politique)941
diameter-gy.mdInterface Diameter Gy/Ro vers OCS (Facturation en ligne)1,100+
s5s8-interface.mdInterface GTP-C S5/S8 vers SGW-C456

📊 Opérations & Surveillance

DocumentDescriptionLignes
session-management.mdCycle de vie et opérations de session PDN435
monitoring.mdMétriques Prometheus, tableaux de bord Grafana, alertes807
data-cdr-format.mdFormat de fichier CDR, configuration URR, facturation hors ligne847
qos-bearers.mdGestion de la QoS et des bearers, contrôle de politique448
troubleshooting.mdProcédures de dépannage et problèmes courants687

🔧 Fonctionnalités avancées

DocumentDescriptionLignes
pcscf-monitoring.mdDécouverte P-CSCF et surveillance de santé894

Fonctionnalités de la documentation

📈 Diagrammes Mermaid

Tous les documents incluent des diagrammes Mermaid pour une compréhension visuelle :

  • Diagrammes d'architecture
  • Diagrammes de séquence (flux de messages)
  • Machines d'état
  • Topologie réseau

💡 Exemples pratiques

Chaque document comprend :

  • Exemples de configuration du monde réel
  • Configurations prêtes à copier-coller
  • Cas d'utilisation courants

🔍 Dépannage

Chaque document d'interface comprend :

  • Problèmes courants et solutions
  • Commandes de débogage
  • Métriques pour le diagnostic

🔗 Références croisées

Les documents sont largement interconnectés pour une navigation facile.

Chemins de lecture

Pour les opérateurs de réseau

  1. OPERATIONS.md - Aperçu (ce document)
  2. configuration.md - Mise en place
  3. monitoring.md - Surveillance
  4. session-management.md - Opérations quotidiennes

Pour les ingénieurs réseau

  1. OPERATIONS.md - Aperçu de l'architecture (ce document)
  2. pfcp-interface.md - Contrôle du plan utilisateur
  3. diameter-gx.md - Contrôle de politique
  4. diameter-gy.md - Facturation en ligne
  5. s5s8-interface.md - Gestion des sessions
  6. ue-ip-allocation.md - Gestion des IP

Pour la configuration & le déploiement

  1. configuration.md - Référence complète
  2. ue-ip-allocation.md - Pools IP
  3. pco-configuration.md - Paramètres réseau
  4. monitoring.md - Configurer la surveillance

Statistiques sur les documents

  • Total de documents : 14
  • Total de lignes : ~10,900+
  • Taille totale : ~265 Ko
  • Diagrammes Mermaid : 75+
  • Exemples de code : 150+

Concepts clés abordés

Architecture

  • ✅ Séparation du plan de contrôle/plan utilisateur
  • ✅ Architecture OTP/Elixir
  • ✅ Supervision des processus
  • ✅ Sessions basées sur GenServer

Protocoles

  • ✅ PFCP (Protocole de contrôle de transfert de paquets)
  • ✅ GTP-C v2 (Protocole de tunneling 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)

Opérations

  • ✅ Gestion des sessions
  • ✅ Stratégies d'allocation IP
  • ✅ Application de la QoS
  • ✅ Intégration de la facturation
  • ✅ Surveillance & alertes

Ressources supplémentaires

Spécifications 3GPP

SpécificationTitre
TS 29.274GTP-C v2 (interface S5/S8)
TS 29.244PFCP (interface Sxb)
TS 29.212Interface Diameter Gx (Contrôle de politique)
TS 32.299Applications de facturation Diameter (Gy/Ro)
TS 32.251Facturation du domaine commuté par paquets
TS 23.401Architecture EPC

Documentation connexe