Présentation du GGSN
Le nœud de support GPRS de la passerelle (GGSN) convertit le trafic de données entrant provenant des utilisateurs mobiles via le nœud de support GPRS (SGSN) de la passerelle de services et le transfère au réseau concerné, et vice versa. Le GGSN et le SGSN forment ensemble les nœuds de support GPRS (GSN).
Comprendre la redirection GGSN
Junos OS prend en charge le trafic GTP (GPRS Tunneling Protocol) et la redirection de nœud de support GPRS (GGSN). Un GGSN (X) peut envoyer des réponses create-pdp-context dans lesquelles il peut spécifier différentes adresses IP GGSN (GGSN Y et GGSN Z) pour les messages GTP-C et GTP-U suivants. Par conséquent, le SGSN envoie les messages suivants du protocole de tunnelisation, du contrôle (GTP-C) et du protocole de tunnelisation GGSN, du plan utilisateur (GTP-U) aux GGSN Y et Z, au lieu de X.
Présentation des scénarios de mise en commun GGSN
Le protocole de tunnelisation GTP (General Packet Radio Service) GPRS (General Packet Radio Service) prend en charge différentes adresses IP GGSN (Gateway GPRS Support Node) au cours d’une procédure de création de tunnel. Deux scénarios de mise en pool GGSN prennent en charge l’itinérance du nœud d’assistance GPRS (SGSN).
- Comprendre la mise en commun GGSN pour le scénario 1
- Comprendre la mise en commun GGSN pour le scénario 2
Comprendre la mise en commun GGSN pour le scénario 1
Sur la figure 1, une demande de contexte PDP (Packet Data Protocol) est envoyée de SGSN A à GGSN B lors d’une procédure de création de tunnel GTP. Après avoir envoyé le message de demande de contexte PDP, GGSN D enregistre les informations de la demande et utilise une adresse IP de destination différente de l’adresse IP de destination du paquet de la demande pour envoyer le message de réponse à SGSN A.
Dans ce scénario, deux messages de paquets GTP sont envoyés aux unités de traitement des services 1 (SPU1) et SPU2 par le point central, et les messages sont traités individuellement par SPU1 et SPU2. La session est créée sur SPU1 et SPU 2 pour chaque paquet GTP. Le SPU1 enregistre les informations sur le paquet de demande et le SPU2 les informations sur le paquet de réponse.
Le message de réponse PDP envoyé par GGSN D à SGSN A est abandonné en raison d’un manque d’informations sur la demande. Le tunnel GTP n’est donc pas établi.

Le SPU2 ne peut pas récupérer les informations de demande de SPU1.
- Installer les informations de demande sur le SPU distant
- Solutions de contournement pour le scénario 1
Installer les informations de demande sur le SPU distant
Dans ce scénario, le paquet de réponse PDP a été abandonné en raison d’un manque d’informations sur la demande, et le tunnel GTP n’a pas été établi. Il est possible de résoudre ce problème en installant les informations de demande sur le SPU approprié.
Sur la figure 2, lors de la création d'un tunnel, l'adresse IP GGSN du paquet de réponse change, déclenchant une nouvelle session, et le point central distribue le message à un autre SPU.
Le paquet de réponse est toujours envoyé à l'adresse source du paquet de demande au SPU. Cela permet d’installer les informations de demande sur le SPU distant pour le paquet de réponse suivant.
Installez les informations de demande dans la fonction HASH (req-src-ip) prévisible du SPU tout en traitant le paquet de demande. Une fois que le numéro SPU attendu (Hachage (10.1.1.1) = SPU2) est calculé par l’adresse IP source du message de demande PDP, les informations de demande sont installées dans le SPU2 distant via l’interface de transmission de messages de Juniper (JMPI).

Les informations de demande sont désormais installées sur les SPU1 locaux et les SPU2 distants, de sorte que le message de réponse PDP est autorisé.
Solutions de contournement pour le scénario 1
Dans le scénario 1, le message de demande de contexte PDP envoyé par SGSN A a atteint l’application junos-gprs-gtp
Junos OS par défaut et l’inspection GTP a été activée pour le message de demande de contexte PDP. Toutefois, le message de réponse de contexte PDP envoyé par GGSN D ne peut pas atteindre l’application junos-gprs-gtp
Junos OS par défaut . Ainsi, le paquet ne sera pas inspecté par le module GTP.
Pour contourner le problème, vous devez activer l’inspection GTP pour le message de réponse de contexte PDP en configurant la stratégie et les applications personnalisées. Reportez-vous à la section Configuration d’une stratégie/application personnalisée GGSN.
Comprendre la mise en commun GGSN pour le scénario 2
Sur la figure 3, une demande de contexte PDP (Packet Data Protocol) est envoyée de SGSN A à GGSN B lors d’une procédure de création de tunnel GTP. Après avoir reçu le message de demande de contexte PDP, GGSN B envoie le message de réponse de contexte PDP à SGSN A. Après avoir reçu le message de réponse de contexte PDP, le tunnel GTP-C est créé entre SGSN C et GGSN D. Ensuite, SGSN C envoie un message de mise à jour de la demande de contexte PDP à GGSN D en utilisant différentes adresses IP source et de destination de l'en-tête IP du paquet de demande.
Dans le scénario 2, le SGSN A crée la première demande de contexte GTP et l’envoie au SPU par le point central. La session est créée pour le paquet de demande sur SPU1. Le paquet de réponse envoyé de GGSN B à SGSN A atteint la session correctement.
Le paquet de demande envoyé par SGSN A indique que GTP-C est établi sur le contrôle IP 10.1.1.2 et que le GTP-U est établi sur les données IP 10.1.1.3. De même, le message de réponse envoyé par GGSN indique que GTP-C est établi sur l’IP de contrôle 10.2.2.3 et QUE GTP-U est établi sur les données IP 10.2.2.4.
Les tunnels GTP-C et GTP-U sont créés sur le SPU local1 une fois tous les points de terminaison établis. Toutefois, le tunnel n’est pas établi sur SPU 2, de sorte que le message de demande de mise à jour PDP reçu de SPU2 est supprimé.

Installer les informations sur le tunnel sur le SPU distant
Dans le scénario 2, le paquet de demande de mise à jour est abandonné en raison d’un manque d’informations sur le tunnel. Cela peut être résolu en installant les informations du tunnel sur le SPU approprié après le traitement des paquets de demande et de réponse. Le SPU qui reçoit le paquet de réponse installe les informations du tunnel sur le SPU local ou distant.
Sur la figure 4, une fois le tunnel établi, les messages de contrôle sont envoyés au point de terminaison du tunnel de contrôle. L'adresse IP de destination de tous les messages de contrôle doit être l'adresse IP GGSN du tunnel de contrôle. Cela permet de calculer le numéro de SPU distant à l’avance pour le message de contrôle suivant.
Installez les informations du tunnel dans le SPU prévisible. Une fois que le nombre de SPU est calculé par l’IP de terminal GGSN du tunnel de contrôle, les informations sur le tunnel sont installées dans le SPU distant via JMPI.

Maintenant, les informations sur le tunnel sont installées sur le SPU2 distant, de sorte que le message de réponse à la mise à jour PDP est autorisé.
Exemple : configuration d’une stratégie et d’une application personnalisées GGSN
Cet exemple montre comment configurer une stratégie et une application personnalisées GGSN (Gateway GPRS Support Node) pour prendre en charge le pooling GGSN scénario 1.
Exigences
Cet exemple utilise les composants matériels et logiciels suivants :
Équipement SRX5400
Un PC
Version Junos OS 12.1X44-D10
Configuration
Configuration d’une stratégie personnalisée GGSN
Aperçu
Cet exemple montre comment configurer des stratégies de sécurité pour le trafic GTP, ce qui permettra au trafic de fonctionner en cas de mise en commun de GTP. Ce même exemple permettra également de fluidifier le trafic GTP lorsque la fonctionnalité de distribution GTP est activée, avec ou sans inspection GTP. Ce que nous faisons ici, c’est de configurer les stratégies de sécurité dans les deux sens, en miroir. Dans les deux sens, nous utilisons les mêmes objets d’adresse et les mêmes applications. Outre l’application GTP standard junos-gprs-gtp, nous créons une application GTP inversée personnalisée, nommée reverse-junos-gprs-gtp. Cette application GTP inversée fera correspondre les paquets GTP à la stratégie de sécurité, même si seul leur port UDP source est un port GTP bien connu. De cette façon, tout le trafic GTP sera apparié par les stratégies et géré correctement en tant que trafic GTP.
Configuration rapide cli
Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez les détails nécessaires pour correspondre à la configuration de votre réseau, copiez et collez les commandes dans la CLI au niveau de la [edit]
hiérarchie, puis entrez commit à partir du mode de configuration.
Si la fonctionnalité de distribution GTP est utilisée sans inspection GTP, ne créez pas le profil GTP et n’appliquez pas le profil gtp-services aux stratégies de sécurité.
set security address-book global address local_GSN_range 10.1.1.0/24 set security address-book global address remote_GSN_range 10.2.2.0/24 set security gtp profile GTP-Profile set security policies from-zone trust to-zone untrust policy t-u match source-address local_GSN_range set security policies from-zone trust to-zone untrust policy t-u match destination-address remote_GSN_range set security policies from-zone trust to-zone untrust policy t-u match application junos-gprs-gtp set security policies from-zone trust to-zone untrust policy t-u match application reverse-junos-gprs-gtp set security policies from-zone trust to-zone untrust policy t-u then permit application-services gtp-profile GTP-Profile set security policies from-zone untrust to-zone trust policy u-t match source-address remote_GSN_range set security policies from-zone untrust to-zone trust policy u-t match destination-address local_GSN_range set security policies from-zone untrust to-zone trust policy u-t match application reverse-junos-gprs-gtp set security policies from-zone untrust to-zone trust policy u-t match application junos-gprs-gtp set security policies from-zone untrust to-zone trust policy u-t then permit application-services gtp-profile GTP-Profile
Procédure étape par étape
Pour configurer une stratégie personnalisée GGSN :
Configurez l’adresse source.
[edit security] user@host# set security policies from-zone trust to-zone untrust policy t-u match source-address local_GSN_range
Configurez l’adresse de destination.
[edit security] user@host# set security policies from-zone trust to-zone untrust policy t-u match destination-address remote_GSN_range
Configurez les applications de stratégie.
[edit security] user@host#set security policies from-zone trust to-zone untrust policy t-u match application junos-gprs-gtp user@host#set security policies from-zone trust to-zone untrust policy t-u match application reverse-junos-gprs-gtp
-
Configurez le type d’activité et spécifiez le nom du profil GTP.
[edit security]user@host# set security policies from-zone trust to-zone untrust policy t-u then permit application-services gtp-profile GTP-Profile
Dans le cas où la fonctionnalité de distribution GTP est utilisée sans inspection GTP :
[edit security] user@host# set security policies from-zone trust to-zone untrust policy t-u then permit
-
Configurez la même chose à nouveau, avec l’inversion des zones de sécurité de confiance et de non confiance.
Résultats
À partir du mode configuration, confirmez votre configuration en entrant la show security policies
commande. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de configuration de cet exemple pour la corriger.
[edit] user@host# show security policies from-zone trust to-zone untrust { policy t-u { match { source-address local_GSN_range; destination-address remote_GSN_range; application [ junos-gprs-gtp reverse-junos-gprs-gtp ]; } then { permit { application-services { gtp-profile GTP-Profile; } } } } } from-zone untrust to-zone trust { policy u-t { match { source-address remote_GSN_range; destination-address local_GSN_range; application [ reverse-junos-gprs-gtp junos-gprs-gtp ]; } then { permit { application-services { gtp-profile GTP-Profile; } } } } }
Avant de pouvoir valider la configuration, nous devons configurer l’application GTP inversée.
Configuration de l’application REVERSE GTP
Lorsque vous utilisez la fonctionnalité de distribution GTP , les sessions de flux sont définies comme unidirectionnelles. Cette action pour les définir comme unidirectionnels est effectuée par l’ALG GTP (même en cas d’inspection GTP). Pour cette raison, il est nécessaire que le GTP ALG soit appliqué à tout le trafic GTP.
L’application prédéfinie junos-gprs-gtp est configurée avec l’ALG GTP. Toutefois, dans certains cas, le trafic GTP peut ne pas correspondre à cette application, ce qui sera le cas pour le trafic de retour lorsqu’un port source différent de celui des ports UDP GTP standard a été utilisé. Dans ce cas, l’aile de session inversée peut avoir un port de destination aléatoire et le port GTP standard comme port source. Afin de s'assurer que l'ALG GTP est appliqué à ce trafic GTP inversé dans ce cas, il est nécessaire d'ajouter l'application GTP « inversée » suivante à toutes les stratégies de sécurité GTP.
Configuration rapide cli
Pour configurer rapidement cet exemple, copiez les commandes suivantes, collez-les dans un fichier texte, supprimez les sauts de ligne, modifiez les détails nécessaires pour correspondre à la configuration de votre réseau, copiez et collez les commandes dans la CLI au niveau de la [edit]
hiérarchie, puis entrez commit à partir du mode de configuration.
set applications application reverse-junos-gprs-gtp-c term t1 alg gprs-gtp-c set applications application reverse-junos-gprs-gtp-c term t1 protocol udp set applications application reverse-junos-gprs-gtp-c term t1 source-port 2123 set applications application reverse-junos-gprs-gtp-c term t1 destination-port 0-65535 set applications application reverse-junos-gprs-gtp-u term t1 alg gprs-gtp-u set applications application reverse-junos-gprs-gtp-u term t1 protocol udp set applications application reverse-junos-gprs-gtp-u term t1 source-port 2152 set applications application reverse-junos-gprs-gtp-u term t1 destination-port 0-65535 set applications application reverse-junos-gprs-gtp-v0 term t1 alg gprs-gtp-v0 set applications application reverse-junos-gprs-gtp-v0 term t1 protocol udp set applications application reverse-junos-gprs-gtp-v0 term t1 source-port 3386 set applications application reverse-junos-gprs-gtp-v0 term t1 destination-port 0-65535 set applications application-set reverse-junos-gprs-gtp application reverse-junos-gprs-gtp-c set applications application-set reverse-junos-gprs-gtp application reverse-junos-gprs-gtp-u set applications application-set reverse-junos-gprs-gtp application reverse-junos-gprs-gtp-v0
Vérification
Vérifiez que la configuration fonctionne correctement.
Vérification de la configuration
But
Vérifiez que la configuration des stratégies personnalisées GGSN est correcte.
Action
Validez la configuration et quittez. Depuis le mode opérationnel, saisissez la show security policies
commande.
Exemple de sortie
nom-commande
[edit] user@host# show applications application reverse-junos-gprs-gtp-c { term t1 alg gprs-gtp-c protocol udp source-port 2123 destination-port 0-65535; } application reverse-junos-gprs-gtp-u { term t1 alg gprs-gtp-u protocol udp source-port 2152 destination-port 0-65535; } application reverse-junos-gprs-gtp-v0 { term t1 alg gprs-gtp-v0 protocol udp source-port 3386 destination-port 0-65535; } application-set reverse-junos-gprs-gtp { application reverse-junos-gprs-gtp-c; application reverse-junos-gprs-gtp-u; application reverse-junos-gprs-gtp-v0; } [edit] user@host# commit and-quit commit complete Exiting configuration mode user@host> show security policies Default policy: deny-all Default policy log Profile ID: 0 Pre ID default policy: permit-all From zone: trust, To zone: untrust Policy: t-u, State: enabled, Index: 6, Scope Policy: 0, Sequence number: 1, Log Profile ID: 0 Source vrf group: any Destination vrf group: any Source addresses: local_GSN_range Destination addresses: remote_GSN_range Applications: junos-gprs-gtp, reverse-junos-gprs-gtp Source identity feeds: any Destination identity feeds: any Action: permit, application services From zone: untrust, To zone: trust Policy: u-t, State: enabled, Index: 7, Scope Policy: 0, Sequence number: 1, Log Profile ID: 0 Source vrf group: any Destination vrf group: any Source addresses: remote_GSN_range Destination addresses: local_GSN_range Applications: reverse-junos-gprs-gtp, junos-gprs-gtp Source identity feeds: any Destination identity feeds: any Action: permit, application services
Ce résultat affiche un récapitulatif de la configuration des stratégies.