Oana HOTESCU Février 2016 [601185]
Oana HOTESCU Février 2016
3TR/Master 2 Recherche RT
Etude des modèles informationnels pour l’automatisation de la configuration
des équipements de réseaux de communication
A. Problématique
La mise à jour des configurations de réseau peuvent provoquer de fortes turbulences dans le
réseau et être une charge de temps pour les équipes de gestion de réseau. Les problèmes
surgissent souvent de l'erreur humaine dans la mise en œuvre ou de la documentation, ce qui
explique pourquoi les gestionnaires et les administrateurs réseau se tournent vers les outils de
gestion de configuration de réseau automatisé.
Il est facile de faire une erreur de configuration. La plupart des changements de configuration
doivent être coordonnées à travers de multiples dispositifs. Une erreur sur un seul appareil parmi
des centaines ou des milliers dans le réseau peut envoyer des données à un réseau sans issue.
L'ajout d'un lien supplémentaire, la mise à niveau de la capacité d'un lien existant, ou l'ajout d'un
nouveau serveur peut modifier les schémas de flux de données à travers un réseau entier. Une
absence totale de connectivité est immédiatement évidente, mais des erreurs plus subtiles, comme
la performance réduite ou une faille de sécurité, peuvent persister pendant des semaines ou des
mois. Malheureusement, ces vulnérabilités plus subtiles peuvent ne pas apparaître jusqu'à ce qu'il
y soit une attaque réussie ou jusqu'à ce que les administrateurs remarquent pendant les mises à
jour suivantes.
L'utilisation de logiciels de gestion de configuration automatisée peut réduire sensiblement le
pourcentage de pannes causées par des erreurs de configuration. L'utilisation d'outils de gestion
de configuration de réseau automatisé peut aussi aider à augmenter la productivité du personnel.
Les outils de gestion de configuration de réseau automatisées réduisent les erreurs par:
Analyser chaque changement avant qu'il ne soit appliqué, pour que les erreurs soient
détectées.
Vérifier les configurations contre les politiques et les normes de l'entreprise. Les outils
peuvent également identifier et signaler les failles de sécurité et les problèmes de
performance.
Éliminer ainsi la nécessité pour le personnel d'apprendre les différentes syntaxes de
commande des dispositifs de différents fournisseurs dans les réseaux
multifournisseurs. L'outil logiciel de configuration est programmé par le fournisseur
de comprendre comment envoyer des commandes à l'un des produits de réseau
2
largement utilisés. Pour les appareils qui ne sont pas largement utilisés, le logiciel a
besoin d'intégration personnalisée.
Simplifier la tâche d'appliquer une configuration standard à plusieurs appareils. Il est
nécessaire de préciser la configuration qu'une seule fois par application pour plusieurs
périphériques. Les outils font les adaptations nécessaires, telles que l'application des
adresses IP différentes à chaque appareil.
Documenter automatiquement toutes les modifications apportées par l'outil, y compris
qui a fait le changement et quand. Cette fonctionnalité élimine les cas dans lesquels un
administrateur décide de faire un changement mineur à un appareil, mais néglige de le
documenter.
Détecter et signaler si quelqu'un a fait un changement manuel à un dispositif [1].
Même si l'automatisation de la configuration des équipements du réseau répond à des besoins
importants, il y a certains aspects qui doivent être pris en considération lors de l'utilisation des
outils de configuration automatique du réseau. Nous allons détailler les problèmes qui pourraient
être rencontrés lors l'automatisation de la configuration des équipements du réseau :
La variation des services et le changement constant de dispositifs : il prend beaucoup
de temps pour mettre à jour les solutions pour faire face aux changements [2].
Le support pour les langages de configuration existantes: Bien qu'il y ait eu beaucoup
d'efforts d'automatisation de la configuration, la plupart ont mis l'accent sur le
développement de langages abstraites ou formalismes associés à spécifier les
configurations de façon neutre par rapport au vendeur, par exemple, la norme IETF
SNMP MIB (Simple Network Management Protocol, Management Information
Bases) et le CIM (Common information Model). Ces modèles d'information
définissent et organisent la sémantique de configuration des équipements et des
services du réseau informatique d'une manière non lié à un fabricant ou à une mise en
œuvre particulière. Toutefois, ces abstractions généralisées introduisent toujours des
couches d'interprétation entre la spécification et l'appareil. Cela fait apparaitre des
trous entre les spécifications générales abstraites, et le langage concrète de
configuration spécifique de l'appareil. Il est très difficile d'éviter l'extension ou la
création de modèles communs spécialisés pour décrire l'évolution rapide des
dispositifs et services du présent. Les efforts pour créer des normes ou des
bibliothèques accusent souvent le marché. En fait, les experts du réseau ne disposent
souvent pas du temps ni de l'envie de comprendre ces abstractions, et aujourd'hui
presque universellement ils trouvent que le travail avec les interfaces de configuration
natives est beaucoup plus efficace pour l'installation initiale et la maintenance
ultérieure.
Mesurer des options, des combinaisons et des infrastructures: les configurations des
clients sont dépendantes, en particulier, des offres de service choisi, des dispositifs,
des révisions de firmware, et l'infrastructure locale. Par exemple, considérons un site
3
de connexion à fournisseur backbone. La commande du client apparemment simple a
beaucoup d'options: le client nécessitent plusieurs routeurs de se connecter à la
backbone ou un seul, il est recommandé d'utiliser des liens multiples ou un seul lien.
En outre, chaque routeur peut avoir plusieurs interfaces WAN (Wide Area Network)
et LAN (Local Area Network), et chaque interface peut admettre des conventions de
nommage spécifiques qui dépendent du modèle de routeur et la carte WAN.
L'infrastructure locale physique (par exemple, les routeurs et les topologies de réseau),
peut souvent avoir un impact majeur sur le flux de travail et le contenu de la
configuration.
Supporter les sources de données hétérogènes et diversifiés: Assembler une
configuration de routeur consiste à recueillir toutes les informations de configuration
du routeur nécessaires. Il se peut que ces informations de configuration ne soient pas
tous disponibles dans un référentiel central au moment où l'information est nécessaire,
mais elles puissent être réparties entre diverses bases de données, qui sont peuplées
par des flux en amont. Un tel exemple est la base de données de la commande du
client. Les informations du client peuvent être arrivées à des moments différents, et
peuvent être divisées dans des diverses formes. Dans les grands réseaux opérationnels,
l'information concernant les commandes des clients et le déploiement et la
maintenance du routeur est potentiellement répartie sur différents systèmes couvrant
plusieurs organisations internes. Un système de configuration automatique doit être
conscient de la diversité des sources d'information (et de la qualité des données) [3].
B. Positionnement
Par la suite, nous allons présenter des modèles informationnels qui cherchent à répondre aux
besoins d’automatisation de la configuration des équipements de réseaux et de proposer des
solutions pour les problèmes de gestion.
Un premier approche est le système de gestion de configuration PRESTO qui présente une
solution pour le problème de disparités entre les modèles conceptuels des outils et des services ils
doivent prendre en charge. Le système de gestion de configuration de PRESTO développe les
configurations des périphériques réseau à partir de collections composées de configlets qui
définissent les services qui doivent être pris en charge par le dispositif cible. Le langage PRESTO
doit respecter les langages de configuration complexes pris en charge par les fournisseurs de
périphériques de réseau. Plus précisément, le système PRESTO génère des configurations de
périphériques natif complètes, qui peuvent ensuite être téléchargés dans un dispositif et archivées
par les opérateurs de réseau.
Le processus de création de configuration commence par des nouvelles demandes de
configuration résultant d'une demande de mise à niveau du réseau ou la commande du client. Les
demandes sont soumises à PRESTO comme une collection d'entrées de spécification, où les
4
données de l'environnement sont fournies en entrée directe ou extraites des bases de données
d'inventaire et de configuration supplémentaires. Les données sont nettoyés et projeté dans un
modèle de données de service ou d'un périphérique (spécifique à l'application) créé pour les
configurations ciblées. Enfin, un modèle actif est exécuté pour l'ensemble des dispositifs cibles
spécifiées résultant dans des configurations de périphériques natif complets. Ces modèles actifs,
appelés configlets, peut conditionnellement ou déterministe importer d'autres modèles ou
d'extraire des données en fonction des besoins au moment de la compilation pour compléter une
configuration. Cette composition par l'importation récursive et l'extraction dynamique de données
depuis une source externe permet à PRESTO de faire face au nombre potentiellement énorme des
options de configuration pour une configuration. PRESTO adopte l'automatisation, mais permet
une intervention humaine en cas de besoin. PRESTO ne définit pas un nouveau langage, mais
plutôt une extension du langage. Cela permet à des experts du domaine de tirer parti de la
connaissance des langages flexibles de configuration d'origine, tout en créant des abstractions
utiles, la définition des services, qui prennent la forme de configlets dans PRESTO. PRESTO
offre les caractéristiques clés suivantes : modélisation des données, un langage de template riche,
support pour un modèle de décomposition et d'assemblage [3].
Une autre solution est proposée par NETCONF. Le protocole NETCONF (Network
Configuration Protocol) est un protocole de gestion de réseau développé et standardisé par
l'IETF. NETCONF prévoit des mécanismes pour installer, manipuler et supprimer la
configuration des périphériques réseau. Ses opérations sont réalisées sur une procédure d'appel à
distance (RPC). Le protocole NETCONF utilise le langage XML (Extensible Markup Language)
de codage de données sur la base des données de configuration ainsi que les messages de
protocole. Les messages de protocole sont échangés sur le dessus d'un protocole de transport
sécurisé. Un des points forts de NETCONF est le support pour les opérations de changement de
configuration robustes impliquant un certain nombre de dispositifs. NETCONF utilise le concept
de data-stores logiques telles que writable-running ou candidate . Les opérateurs ont besoin d'un
moyen de distribuer les modifications apportées aux dispositifs et de les valider localement avant
de les activer. Les données de configuration peuvent être envoyées aux bases de données du
candidat dans les dispositifs avant qu'ils se sont engagés à exécuter dans les applications de
production. Tous les dispositifs de NETCONF doivent permettre aux données de configuration
d'être verrouillées, éditées, enregistrées, et déverrouillées et toutes les modifications apportées
aux données de configuration doivent être sauvegardées dans une mémoire non volatile [4].
NETCONF supporte plusieurs bases de données de configuration. Une base de données de
configuration contient toutes les informations nécessaires pour obtenir la configuration souhaitée
pour un dispositif à partir de son état initial par défaut. La base de données en cours d'exécution
est toujours présente et décrit la configuration active. La conception du protocole NETCONF est
modulaire, et des mises en œuvre avec des capacités différentes sont possibles. Pour promouvoir
l'interopérabilité, un mécanisme d'échange des capacités ou des serveurs et des clients, et
d'annoncer les modèles de données prises en charge et les écarts est utilisé [5].
5
Par la suite nous allons nous intéresser à YANG, un modèle de langage, utilisé par NETCONF.
YANG est un langage de modélisation de données utilisé pour modéliser les données de
configuration et d'état manipulées par le protocole de configuration réseau (NETCONF). YANG
vise à être une langue spécifique à un domaine très lisible et compact pour la définition de
modèles de données NETCONF. Un module YANG définit une hiérarchie de données qui peut
être utilisé pour des opérations basées sur NETCONF, y compris la configuration, les données
d'état, appels de procédure à distance (RPC), et les notifications. YANG modélise l'organisation
hiérarchique des données comme un arbre où chaque nœud a un nom et une valeur ou un
ensemble de nœuds enfants. Les modules YANG peuvent être traduits dans une syntaxe XML
équivalente appelée YIN (YANG Independent Notation). YANG est un langage extensible,
permettant aux instructions d'extension à être définies par les organismes de normalisation, les
fournisseurs et les individus. YANG résiste à la tendance de résoudre tous les problèmes
possibles, ce qui limite l'espace de problème pour permettre l'expression de modèles de données
NETCONF, des documents XML non arbitraires ou des modèles de données arbitraires. Les
modèles de données décrites par Yang sont conçus pour être facilement opéré par les opérations
NETCONF. Comme NETCONF, YANG vise une intégration avec l'infrastructure de gestion
native de l'appareil. Cela permet des implémentations de tirer parti de leurs mécanismes de
contrôle d'accès existants pour protéger ou exposer les éléments du modèle de données [6].
Une dernière solution de configuration automatique du réseau est d’utiliser des interfaces
programmatiques à la place d'outils de configuration traditionnels tels que SSH ou SNMP. Cette
solution est envisagée depuis l’emploi de SDN (Software Defined Networking) qui permet
l’utilisation du logiciel pour définir l'infrastructure de réseau. Plusieurs outils serveur sont utilisés
par la communauté du réseau pour résoudre le problème de la complexité et de l'erreur humaine
dans la configuration des dispositifs. Des exemples d’outils pour la configuration des réseaux
sont Python, Jinja2 (une extension de Python), Puppet, Ansible. Python a l'avantage de posséder
un ensemble de bibliothèques pour accéder aux périphériques de réseau et il est relativement
facile non seulement de créer des configurations, mais aussi d'appliquer ces configurations. Les
fournisseurs de réseau écrivent des APIs pour leur équipement avec support pour Python. Comme
la plupart des centres de données ont un ensemble standard de commandes utilisées sur
l'ensemble de leurs interfaces, les templates de Jinja2 permettent de gagner du temps et réduire
les erreurs potentielles lors de la génération de la configuration avec Python. Puppet est un outil
de configuration guidé par le modèle qui repose sur une architecture client-serveur pour offrir des
configurations du serveur de contrôle à la machine cliente étant configurée. Dans le contexte
réseau, un serveur Puppet a besoin de parler à un agent Puppet fonctionnant sur le système client
[7].
Ces solutions sont basées sur l’utilisation d’un langage connu, compréhensible, facile à intégrer et
à apprendre. De plus, ces outils de configurations du réseau peuvent être utilisés et intégrés avec
des équipements réseau hétérogènes disponibles sur le marché et répondent aux demandes des
différents fournisseurs.
6
C. Discussion
L’utilisation des outils de gestion de configuration de réseau automatisé se montre nécessaire
pour éviter les erreurs de configuration du réseau, des erreurs humaines lors de la rédaction de la
documentation, ou à cause des changements à travers plusieurs équipements du réseau, mais aussi
pour faciliter le travail du gestionnaire du réseau en termes de temps et de complexité de la
configuration. Pour réaliser l’automatisation de la configuration du réseau il faut prendre en
considération les problèmes qui pourraient survenir. Dans cette étude, les aspects traités
concernent la variation des services et le changement constant de dispositifs, le support pour les
langages de configuration existante, l’existence des sources de données hétérogènes et diversifiés
et des options de configuration et d’infrastructures en fonction du choix du client. Les modèles
informationnels que nous avons analysés (PRESTO, NETCONF, YANG, SDN) proposent des
solutions à ces problèmes d’automatisation. Il faut prendre toujours en considération le facteur
d’échelle et la complexité de la configuration et des données qui doivent être récupérées et
traitées. De plus, les équipements du réseau sont en plein évolution et proviennent des
fournisseurs différents. Il est donc nécessaire que les protocoles de configuration s’adaptent à
cette diversité et, en même temps, permettent l’auto configuration et le paramétrage en fonction
des options du client.
Références
[1] Can automated network configuration management save you from errors?
http://searchnetworking.techtarget.com/Can-automated-network-configuration-management-
save-you-from-errors
[2] S.Wallin, C. Wikstrom Automating Network and Service Configuration Using NETCONF
and YANG
[3] W. Enck, Configuration Management at Massive Scale: System Design and Experience
[4] S.Wallin, C. Wikstrom Automating Network and Service Configuration Using NETCONF
and YANG
[5] R. Enns, NETCONF Configuration Protocol, Juniper Networks, RFC 4741, Dec. 2006
[6] M. Bjorklund, YANG – A Data Modeling Language for the Network Configuration Protocol
(NETCONF), RFC6020, October 2010
[7] Incremental SDN: Automating Network Device Configuration
http://www.networkworld.com/article/2603534/software-defined-networking/incremental-sdn-
automating-network-device-configuration.html
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Oana HOTESCU Février 2016 [601185] (ID: 601185)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
