Théorie de fonctionnement de Juniper BNG CUPS
Cette section décrit le fonctionnement de Juniper et les configurations que vous devez effectuer pour faire fonctionner les CUPS BNG de Juniper.
Présentation opérationnelle
Le TR-459 BNG désagrégé multiservice avec CUPS. Le document TR-459 (Reference Architecture, Deployment Models, Interface, and Protocol Specifications ) a été créé par le Broadband Forum pour définir l’architecture BNG désagrégée. La figure 1 de la spécification TR-459 montre le placement des blocs fonctionnels sur le plan de contrôle et le plan d’utilisateur.

La combinaison des fonctions du plan de contrôle est appelée plan de contrôle du BNG désagrégé. De même, une combinaison de fonctions spécifiques au plan utilisateur est appelée plan utilisateur du BNG désagrégé.
Il existe trois types d’interfaces entre le plan de contrôle et le plan utilisateur :
-
Interface de gestion (Mi) : utilisée en option pour la gestion centralisée des plans utilisateur BNG au niveau du contrôleur CUPS BNG.
-
Control Packet Redirect Interface (CPRi) : utilisée pour diriger et échanger le trafic DHCP, DHCPv6, PPPoE, PPP, L2TP, etc.) entre le contrôleur BNG CUPS et les plans utilisateur BNG afin de négocier les sessions des abonnés.
-
Interface de contrôle d’état (SCi) :
-
Permet d’établir des associations entre le contrôleur BNG CUPS et les plans utilisateurs BNG.
-
Permet de programmer les règles de détection et de transfert de trafic et l’état de l’abonné sur les plans utilisateur BNG pour chaque session d’abonné.
-
Utilisé pour rapporter des statistiques de session au contrôleur BNG CUPS.
-
Les fonctions de plan de contrôle et de plan d’utilisateur ainsi que les interfaces constituent l’architecture BNG désagrégée telle que proposée par la norme TR-459. Vous trouverez plus de détails sur le TR-459 Multi-Service Disaggregated BNG with CUPS. Document sur l’architecture de référence, les modèles de déploiement, l’interface et les spécifications de protocole du Broadband Forum.
Contrôleur BNG CUPS de Juniper
Le contrôleur BNG CUPS est une application conteneurisée qui s’exécute dans un environnement Kubernetes. Kubernetes est un environnement d’orchestration de conteneurs qui fournit une infrastructure permettant de prendre en charge la résilience des applications et du matériel, l’automatisation, la surveillance des applications, la mise à niveau et la restauration des applications, ainsi que la découverte de services.
Le contrôleur BNG CUPS se compose des microservices suivants :
- Instance du plan de contrôle : instance du plan de contrôle de gestion des abonnés. L’instance de plan de contrôle gère les états de session pour différents modèles d’accès (par exemple, DHCP, PPPoE et L2TP). Il fournit également des services AAA, des services d’allocation d’adresses IP et gère les interfaces SCi et CPRi pour ses plans d’utilisateurs BNG. L’instance de plan de contrôle peut également interagir avec une source de préfixe de pool dynamique (gestionnaire de pool d’adresses distant ou réserve locale) pour maintenir une source d’adresses pour l’attribution d’adresses. L’instance du plan de contrôle enregistre l’état de la session dans le pod de cache d’état. Si le pod d’instance du plan de contrôle redémarre, il récupère son état à partir du cache d’état.
-
Cache d’état : cache persistant en mémoire qui stocke la session de l’abonné et d’autres informations d’état générées par l’instance de plan de contrôle. Le pod de cache d’état s’exécute sur un nœud de cluster autre que le nœud sur lequel s’exécute l’instance de plan de contrôle. Si le pod de cache d’état redémarre, il récupère son état à partir de l’instance du plan de contrôle.
Les composants du contrôleur BNG CUPS génèrent des messages de journal via le protocole syslog. Vous pouvez utiliser l’application BBE ECAV (Broadband Edge Event Collection and Visualization) pour collecter et enregistrer les messages de journal.
Modèles d’empilage pris en charge
-
Juniper BNG CUPS prend en charge les modèles d’empilage suivants :
-
Serveur DHCP pile unique
-
Serveur DHCPv6 pile unique
-
Serveur DHCP session unique, double pile
-
Relais DHCP pile unique
-
Relais DHCPv6 pile unique
-
Relais DHCP, session unique, double pile
-
PPPoE pile unique (IP ou IPv6)
-
PPPoE double pile
-
L2TP LAC
-
VLAN dynamiques (pour DHCP et PPPoE)
-
Prise en charge des exigences de mise à l’échelle et de topologie
Un seul contrôleur BNG CUPS prend en charge le nombre d’abonnés et de plans d’utilisateurs BNG suivant :
-
Un contrôleur BNG CUPS peut prendre en charge jusqu’à 512 000 abonnés.
-
Un contrôleur BNG CUPS peut prendre en charge jusqu’à 32 plans utilisateur BNG.
Le contrôleur BNG CUPS fonctionne dans un environnement Kubernetes.
L’environnement Kubernetes requiert les équipements suivants :-
Nœud de plan de contrôle (vous devez en avoir au moins trois)
-
Nœuds de travail (vous devez en avoir au moins trois)
Note:Pour connaître la configuration requise, reportez-vous à la section Installation de Juniper BNG CUPS.
Configurer le contrôleur BNG CUPS
La configuration du contrôleur BNG CUPS se compose des groupes de configuration suivants :
bbe-bng-director
: contient des éléments de configuration à l’échelle du contrôleur, tels que des définitions de plan utilisateur BNG, des définitions d’instance de plan de contrôle, des affectations de plan utilisateur BNG, des définitions de groupe d’abonnés et d’équilibrage de charge.bbe-common-0
: contient la majeure partie des configurations de gestion des abonnés, y compris les suivantes :-
Profils dynamiques
-
Classificateurs de classe de service
-
Règles de réécriture
-
Profils de contrôle du trafic
-
Planificateurs et cartes du planificateur
-
Filtres et mécanismes de contrôle de pare-feu
-
Services d’authentification, d’autorisation et de comptabilité (AAA) au niveau des accès et des profils d’accès
-
La figure 2 illustre la hiérarchie des groupes de configuration.

Configurer le groupe bbe-bng-director
Le bbe-bng-director
groupe de configuration contient la bng-controller
strophe. Vous devez configurer au minimum les bng-controller-name
paramètres , user-planes
, et control-plane-instances
dans la bng-controller
strophe.
Reportez-vous à l’exemple de configuration de groupe suivant bbe-bng-director
:
groups { bbe-bng-director { bng-controller { bng-controller-name new-england; user-planes { billerica { transport { 198.20.33.4; } dynamic-address-pools { partition middlesex; v6-na-partition v6-na-partition; v6-dp-partition v6-dp-partition; } user-plane-profile up-std; } canton { transport { 198.20.48.7; } dynamic-address-pools { partition middlesex; v6-na-partition v6-na-partition; v6-dp-partition v6-dp-partition; } user-plane-profile up-std; } } control-plane-instances { cpi-boston { control-plane-config-group bbe-common-0; user-plane [billerica canton]; } } } } }
Dans l’exemple ci-dessus, il y a deux plans d’utilisateur BNG définis (billerica et canton). Dans le cadre de la configuration du plan utilisateur BNG, l’adresse IP de contact du plan utilisateur BNG est configurée dans la transport
strophe. Les partitions dynamiques du pool d’adresses sont configurées sous la dynamic-address-pools
strophe. De plus, le user-plane-profile
, qui définit les interfaces et les capacités du plan utilisateur BNG, est défini et attribué à chaque plan utilisateur BNG.
Le user-plane-profile
est configuré dans le groupe de configuration commun (par exemple, bbe-common-0
). Ainsi, lorsque le plan utilisateur BNG est configuré ou affecté à une instance de plan de contrôle, son profil de plan utilisateur doit être défini dans le groupe de configuration commun attribué par le pour l’instance de control-plane-config-group
plan de contrôle.
Le bng-controller-name
fournit le nom du contrôleur (l’ensemble des instances de plan de contrôle et des microservices associés).
Dans le cadre de la configuration de l’instance de plan de contrôle, vous configurez les éléments suivants :
-
Nom de l’instance du plan de contrôle : le nom de l’instance du plan de contrôle doit correspondre au nom de l’instance du plan de contrôle que vous avez attribué au pod d’instance de plan de contrôle créé lors de la
cpi add
configuration initiale du contrôleur BNG CUPS (voir Installation de Juniper BNG CUPS). -
Nom du groupe de configuration (par exemple)
bbe-common-0
à utiliser pour la configuration de la gestion des abonnés. -
Liste des plans utilisateur BNG affectés à l’instance du plan de contrôle.
Configurer le groupe bbe-common-0
Les configurations communes pour la gestion des abonnés sont configurées dans un groupe de configuration commun. Il est possible de définir jusqu’à cinq groupes de configuration courants. Le nom du groupe de configuration commun est fixe. Le nom doit être l’un des suivants : bbe-common-0
, bbe-common-1
, bbe-common-2
, bbe-common-3
, ou bbe-common-4
.
Voir l’exemple de configuration de groupe suivant bbe-common-0
(pour simplifier, l’exemple n’est que partiellement développé) :
[edit] groups bbe-common-0 { system { services { dhcp-local-server { dhcpv4 { group dhcp-v4-client { dynamic-profile dhcp-client-demux; interface-tag access001; } } } } } access-profile acc001; access { address-pool-manager { inet 198.19.224.134; port 20557; local-reserve { partition v6-na-partition { family { inet6 { prefix 173:162:1::/96; } } } partition v6-dp-partition { family { inet6 { prefix 3000::/8; } } } } } radius-server {/* not elaborated */} profile acc001 {/* not elaborated */} address-assignment { domain-profile v4pool { family { inet { preferred-prefix-length 24; excluded-address last-octet 255; dhcp-gateway-address-last-octet 1; install-discard-routes { tag 77; backup-tag 88; } } } domain-profile dpPool { family { inet6 { partition-type delegated-prefix; preferred-prefix-length 48; allocation-length 56; install-discard-routes { tag 77; backup-tag 88; } } } } domain-profile naPool { family { inet6 { partition-type non-temporary-address; preferred-prefix-length 120; allocation-length 128; install-discard-routes { tag 55; backup-tag 66; } } } } } } user-plane-profiles { up-std { interfaces xe-1/1/0 { interface-tag access001; auto-configure { stacked-vlan-ranges { dynamic-profile dhcp-server-demux { accept [ dhcp-v4 dhcp-v6 ]; ranges { any,any; } } } remove-when-no-subscribers; } } } } dynamic-profiles { dhcp-client-demux {/* not elaborated */} } }
Dans cette configuration de groupe courante, le dhcp-local-server group
fait référence à une interface par son nom balisé. Une balise d’interface est définie dans la user-plane-profile
configuration. Ainsi, la même configuration de groupe de serveurs DHCP peut être utilisée pour tous les ports logiques du plan utilisateur BNG affectés à la même balise d’interface.
Un profil de plan utilisateur est un modèle utilisé pour la configuration de l’interface d’un plan utilisateur BNG et d’autres configurations telles que l’interception légale, la livraison de contenu sur un portail captif, le moniteur de ressources, etc. Il est supposé que la plupart de vos plans d’utilisateur BNG auront des configurations similaires. Le profil du plan utilisateur vous permet d’éviter d’avoir constamment à répéter la configuration du plan utilisateur BNG. Le serveur local DHCP peut représenter universellement l’interface d’un plan utilisateur BNG par son nom de balise (au lieu de up:billerica:xe-1/1/0). La combinaison du nom de la balise et du contexte du plan utilisateur BNG (fourni par l’infrastructure BNG CUPS) est suffisante pour identifier l’interface avec le composant de serveur local DHCP. Cela permet également d’éviter de spécifier l’interface de chaque port logique pour chaque plan utilisateur BNG à affecter au groupe de serveurs locaux DHCP. La même balise d’interface peut être affectée à chaque interface logique et référencée une fois dans le groupe de serveurs locaux DHCP.
La configuration de groupe commune inclut également des configurations pour le gestionnaire de pool d’adresses (APM). Dans ce cas, une instance APM distante est utilisée pour les partitions IPv4 et une réserve locale est définie pour les partitions IPv6 locales utilisées pour fournir des préfixes pour les adresses non temporaires IPv6 et les préfixes délégués.Appliquer la configuration de groupe bbe-common-0
Une fois que vous avez terminé la configuration du bbe-common-0
groupe, vous devez appliquer la configuration pour qu’elle soit effective.
Voir l’exemple suivant bbe-common-0
d’application de la configuration de groupe :
[edit] groups { bbe-bng-director {} bbe-common-0 {} } apply-groups [ bbe-bng-director bbe-common-0 ];
Configurer des plans utilisateur BNG
Le plan utilisateur BNG est chargé d’appliquer l’état de session de l’abonné émis par le contrôleur BNG CUPS et de servir de plan de transfert pour le trafic de l’abonné. En outre, il est chargé de rediriger les paquets du protocole de contrôle vers le contrôleur BNG CUPS pour négocier et configurer la session de l’abonné.
La configuration du plan utilisateur BNG pour la gestion des abonnés est une configuration plus simple, car la plupart des configurations pour la gestion des abonnés sont effectuées sur le contrôleur BNG CUPS.
Reportez-vous à l’exemple de configuration de plan utilisateur BNG suivant :
configuration-database { max-db-size 419430400; } subscriber-management { enable; mode { user-plane { user-plane-name billerica; transport { inet 198.19.20.33; } control-plane { bng-controller-name new-england; } } } }
De plus, vous devrez effectuer une configuration similaire pour le canton du plan utilisateur BNG.
La user-plane
configuration du mode s’effectue sous la subscriber-management
strophe. L’adresse IP que le plan utilisateur BNG utilise pour communiquer avec le contrôleur BNG CUPS est définie sous la transport
strophe. Le nom du contrôleur BNG CUPS auquel le plan utilisateur BNG a été affecté, et à partir duquel il acceptera des associations, est défini sous la control-plane
strophe.
Le reste de la configuration du plan utilisateur BNG doit se concentrer sur d’autres configurations système (par exemple, l’interface, la télémétrie, le routage, les protections DDoS, la surveillance des ressources, etc.).
Finalisation du déploiement de votre contrôleur BNG CUPS
Une fois que vous avez terminé le processus d’installation du contrôleur BNG CUPS (voir le Guide d’installation de Juniper BNG CUPS), seul le service de cache d’état est en cours d’exécution. Vous pouvez le vérifier en exécutant la dbng status
commande.
$ dbng status --context context-name scache 1/1 0
Pour terminer le déploiement du contrôleur BNG CUPS, vous devez créer une instance de plan de contrôle. Ceci est requis avant de configurer les instances de plan de contrôle dans le groupe de bbe-bng-director
configuration. Vous créez une instance de plan de contrôle à l’aide de la cpi-add
commande.
$ sudo -E dbng cpi add –context context-name --version 23.4R2 cpi-boston
Cela crée le pod d’instance du plan de contrôle. Vous pouvez exécuter à nouveau la dbng status
commande pour vérifier que l’instance de plan de contrôle a été créée. Dans cet exemple, vous pouvez voir que cela cpi-boston a été créé.
$ dbng status --context context-name MICROSERVICE PODS RESTARTS cpi-boston 1/1 0 scache 1/1 0 Storage: Healthy
Le nom que vous affectez à l’instance de plan de contrôle doit correspondre au nom que vous utilisez dans la configuration de groupe bbe-bng-director
de l’instance de plan de contrôle. Maintenant que l’instance de plan de contrôle est créée, vous pouvez procéder à la configuration du contrôleur BNG CUPS en entrant dans l’interface de ligne de commande.
$ dbng cli –context context-name root@cpi-boston>
Opérations du contrôleur BNG CUPS et du protocole du plan utilisateur BNG
Maintenant que les plans utilisateurs BNG (billerica et canton) sont configurés et que l’instance de plan de contrôle assignée (cpi-boston) est configurée, le contrôleur BNG CUPS et les plans utilisateurs BNG forment un système BNG désagrégé par signalisation via l’interface de contrôle de l’état. La signalisation consiste en des échanges de messages PFCP afin d’établir une association entre le contrôleur BNG CUPS et chaque plan utilisateur BNG qui lui est attribué. La signalisation inclut également des échanges de messages PFCP supplémentaires avant que la négociation de la session de l’abonné et la signalisation ne se poursuivent.
Le diagramme suivant montre les échanges initiaux de messages PFCP entre le contrôleur BNG CUPS et chaque plan utilisateur BNG affecté.

Les échanges PFCP initiaux se déroulent en trois étapes de base avant que le plan utilisateur BNG ne lance le transfert des paquets du protocole de contrôle (par exemple, PPPoE, PADI, DHCP DISCOVER, DHCPv6, SOLICIT) au contrôleur BNG CUPS à l’étape 4 ci-dessous.
Chaque plan d’utilisateur BNG affecté à un contrôleur BNG CUPS passe par les étapes suivantes.
-
Le contrôleur BNG CUPS initie la demande de pulsation vers le plan utilisateur BNG. Le plan utilisateur BNG répond à la demande de pulsation et lance sa propre demande de pulsation au contrôleur CUPS BNG.
Le contrôleur BNG CUPS initie une association au plan utilisateur BNG avec une demande de configuration d’association. Le plan utilisateur BNG n’initie pas d’association PFCP et attend d’être contacté par le contrôleur BNG CUPS. Si la demande provient du ,
bng-controller-name
le plan utilisateur BNG répond par une réponse de configuration d’association PFCP. Une association de contrôleur BNG CUPS est alors formée avec le plan utilisateur BNG.Les messages de pulsation sont envoyés périodiquement de manière bidirectionnelle entre le contrôleur BNG CUPS et le plan utilisateur BNG en fonction de l’intervalle configuré. Il est recommandé que le contrôleur BNG CUPS et les plans utilisateur BNG utilisent la même configuration d’intervalle et de nouvelle tentative.
La
show health user-plane
commande peut être exécutée à partir du contrôleur BNG CUPS pour confirmer une association réussie avec chaque plan d’utilisateur BNG affecté.root@cpi-boston> show health user-plane Name Address CPi State Health Up-time Active/Backup-sess billerica 198.20.33.4 cpi-boston connected healthy 00:03:07 0/0 canton 198.20.48.7 cpi-boston connected healthy 00:00:18 0/0
Le contrôleur BNG CUPS initie des échanges de demandes d’établissement de session pour configurer les tunnels CPRi suivants :
- CPRi par défaut pour permettre le transfert des paquets de contrôle du plan utilisateur BNG au contrôleur BNG CUPS pour démarrer les négociations de session d’abonné.
- Si le profil de plan utilisateur affecté au plan utilisateur BNG dans la configuration du contrôleur BNG CUPS spécifie des interfaces configurées pour les VLAN à détection automatique, un CPRi de port logique est créé pour chaque interface configurée pour les VLAN à détection automatique. Une demande d’établissement de session est lancée pour chaque interface et inclut à la fois le nom du port logique et les plages de VLAN de la
auto-configure
strophe de l’interface. Le port logique CPRi est utilisé pour prendre en charge la création de sessions retardées et donc l’échange de paquets de protocole de contrôle entre le plan utilisateur BNG et le contrôleur CUPS BNG pour négocier les sessions des abonnés.
Cette étape se compose de trois sous-étapes. Les sous-étapes peuvent se dérouler dans n’importe quel ordre, mais elles sont censées se produire avant que la négociation de session de l’abonné ne soit effectuée :
Le plan utilisateur BNG lance un ou plusieurs rapports d’instance de réseau au niveau du nœud. Les rapports affichent chaque instance de réseau configurée et son état de connectivité initial (connectée ou isolée). Cette action est effectuée conformément à TR-459.
Le plan utilisateur BNG initie un ou plusieurs rapports de port logique au niveau du nœud. Les rapports indiquent chaque port logique d’accès ainsi que sa capacité de transfert initiale. Cette action est effectuée conformément à TR-459.
Le contrôleur BNG CUPS initie un ou plusieurs échanges de demandes de mise à jour d’association pour créer un ou plusieurs groupes d’abonnés provisionnés. Le port logique attribué à partir du plan utilisateur BNG est inclus dans le message de création des groupes d’abonnés.
Le contrôleur BNG CUPS reçoit les paquets de protocole de contrôle du plan utilisateur BNG sur le CPRi par défaut ou le port logique. La négociation de session d’abonné commence sur la base des échanges de paquets de contrôle entre le plan utilisateur BNG et le contrôleur BNG CUPS, ce qui entraîne des demandes d’établissement de session initiées par le contrôleur BNG CUPS pour créer un CPRi de session d’abonné.
Notez les points suivants :
Le plan utilisateur BNG ne transfère pas les paquets de protocole de contrôle reçus provenant d’un port logique d’accès au contrôleur BNG CUPS tant qu’une demande de création de groupe d’abonnés au niveau du nœud pour le port logique n’a pas été reçue du contrôleur BNG CUPS.
Le contrôleur BNG CUPS rejette les paquets de contrôle reçus arrivant sur le CPRi jusqu’à ce que la réponse de mise à jour de l’association pour créer ou modifier le groupe d’abonnés correspondant pour le port logique soit reçue du plan utilisateur BNG.