Les évolutions récentes dans le domaine des réseaux IP (y compris les infrastructures Data Center) illustrent l’intérêt croissant des opérateurs pour les techniques destinées à introduire un niveau d’automatisation élevé dans les processus de construction et de production de services de connectivité à valeur ajoutée. Toutefois, la plupart de ces techniques restent encore assez embryonnaires dans la mesure où elles se limitent essentiellement à la fourniture d’instructions de configuration aux différents éléments impliqués dans la fourniture d’un service , envoyées à la suite d’une action explicite, reflétant la prise de décision d’allocation de ressources d’un opérateur. Ces techniques d’automatisation sont par ailleurs déployées dans un environnement qui repose le plus souvent sur un modèle logiquement centralisé où l’intelligence de calcul responsable de la production des instructions de configuration communiquées aux éléments impliqués dans la fourniture d’un service est embarquée dans un équipement souvent désigné dans la littérature comme un contrôleur, voire un orchestrateur. Cette vision de l’automatisation n’est pas nouvelle en soi : des scripts d’automatisation des tâches de configuration sont largement utilisés par les opérateurs depuis des années. En fait, ce type d’automatisation ne permet pas à lui seul de simplifier la production et l’exploitation de ressources réseau, ni de réduire de manière significative le délai de production des services car de tels procédés d’automatisation sont restreints à une seule étape du cycle de conception et de vie d’un service.
De nouvelles étapes techniques doivent être franchies pour une automatisation plus systémique qui dépasse le cadre des seules opérations de configuration.
En effet, l’automatisation de la production et de l’exploitation des services réseaux requiert plus d’éléments fonctionnels tels que :
-
le support d’interfaces (idéalement standardisées) permettant d’exposer les capacités fonctionnelles d’un réseau, et de capturer les besoins des services (par exemple en termes de bande passante, de sécurité, de robustesse, etc.), mais aussi ceux des réseaux voisins susceptibles de contribuer à la fourniture d’un service (tel qu’un service de réseau privé virtuel inter-domaines), et des utilisateurs ;
-
le support d’une intelligence de calcul capable de corréler les demandes de service avec les capacités d’un réseau à un instant donné ou sur une période programmée ;
-
le support de boucles de régulation pour s’assurer que les ressources du réseau sont en adéquation avec les objectifs fixés par un opérateur ;
-
le support de mécanismes (distribués) pour augmenter la disponibilité tout en optimisant les échanges entre ressources réseau et contrôleur(s) (en termes de volumétrie de trafic de signalisation, notamment) ;
-
la capacité d’adaptation d’un service et de ses composantes aux conditions du réseau et, réciproquement, la capacité d’adaptation d’un réseau aux conditions/instructions d’un ensemble de services.
L’automatisation doit devenir une caractéristique fondamentale des processus de production et d’exploitation des services, de la phase d’exposition et de négociation dynamiques des paramètres de service à la phase d’allocation dynamique des ressources impliquées dans la fourniture du service, de la phase de conception du service (sélection des fonctions élémentaires qui constituent l’épine dorsale du service) à la phase de contrôle destinée à vérifier que les ressources allouées à un service sont conformes à ce qui a été convenu avec le client du service. Ainsi, une automatisation élevée dans le processus de production et d’exploitation d’un service permet-elle de réduire significativement les temps de production du service mais également de minimiser les risques d’erreurs auxquels des tâches de configuration complexes sont souvent exposées.
En particulier, les différents protocoles impliqués dans une architecture intégrant un niveau d’automatisation élevé doivent être conçus de telle manière qu’ils (liste non-exhaustive) :
-
Automatisent l’instanciation d’états nécessaires à leur fonctionnement. Par exemple, les applications qui souffrent de la présence de fonctions intermédiaires (appelées « middlebox », telles que les fonctions NAT ou pare-feu) doivent supporter les mécanismes de découverte automatique de ces nœuds. De tels mécanismes permettront en particulier d’interagir avec ces équipements intermédiaires pour créer les états caractéristiques du trafic, et ils serviront également pour découvrir l’adresse externe à utiliser sans faire d’hypothèse quant au support éventuel d’ALG (Application Level Gateway) par ces middleboxes ;
-
Détectent automatiquement tout changement intervenant dans le réseau (modification de la topologie, rupture d’un lien de transmission, etc.) de nature à impacter le fonctionnement du service, notamment. Par exemple, tout changement d’adresse externe allouée par une fonction NAT localisée dans le réseau doit être détecté, sinon le service sera indisponible ;
-
Récupèrent automatiquement les états maintenus par une middlebox en cas de redémarrage de cet équipement, sans toutefois nécessiter un mécanisme de synchronisation d’états. Cette fonction est importante pour les équipements à bas coût comme les CPE (Customer Premises Equipment). En effet, le redémarrage de CPE ne doit pas perturber certains services. Si les fonctions automatiques ne sont pas supportées, des informations (par exemple, entrées statiques de pare-feu) seront maintenues par le CPE alors que ces informations sont obsolètes ;
-
Détectent automatiquement les pannes et réagissent en conséquence ;
-
Découvrent automatiquement le réseau, sa topologie, les fonctions qu’il supporte, leur localisation, leur statut, etc. ;
-
Assurent la disponibilité (c’est-à-dire la capacité à être invoqué) automatique de certaines fonctions ou équipements, sous certaines conditions ;
-
Installent automatiquement des filtres à appliquer sur certains types de trafic (par exemple, détection automatique d’attaques de déni de service) .
L’assemblage de différentes briques fonctionnelles concourant à l’introduction d’un niveau d’automatisation élevé dans le processus de production et d’exploitation d’un service doit à son tour garantir une cohérence globale : ce qui est dynamiquement produit doit en particulier être conforme à ce qui a été éventuellement négocié, mais aussi conforme à la politique de planification d’un opérateur, à sa stratégie de développement, etc.
Étant donné que l’automatisation des tâches de configuration est largement documentée, cet article se propose de traiter les autres fonctions de gestion avancée reposant sur de nouvelles techniques d’automatisation.