Ceci est une ancienne révision du document !
Introduction à netconf et YANG
netconf: protocole de configuration réseau ( né dans les années 2000 alors que les opérateurs réseaux sont confrontés à la multiplication des équipements et services à superviser).
Problématique:
Nécessité croissante de normalisation. IETF via la délégation IAB (Internet Architecture Board) constate l'insuffisance des technologies et protocoles de gestion qui à l'époque n'atteignaient pas un niveau jugé satisfaisant (résumé par la RFC3535).
Le passage à l'echelle via snmp reste problématique avec de nombreuses MIB restées propriétaires.
snmp permet de faire essentiellement du monitoring et non de la configuration (la plupart des MIBs ne prévoient pas ce cas). Les mécanismes de configuration sont plus complexes.
les besoins (RFC3535 et RFC3139):
Différencier les éléments configurables et les données de monitoring
Interface et langage standards pour manipuler les mêmes éléments de configuration. (ex: décrire de la même manière une adresse IP a affecter a tout équipement).
Communication bidirectionnelle pour pouvoir retourner des informations au le gestionnaire.
Protocole en mode texte: car les protocoles de ce type ont fait leurs preuves: facilité des échanges, de la maintenance et développement collaboratif.
Paralléliser les opérations.
Faciliter la manipulation des configurations: opérations de dump, restauration, déploiement de configurations complètes sur des configuration en cours d’exécution et facilité de bascule.
Sécurité
Pour répondre a ces besoins l'IETF propose NETCONF.
NETCONF: protocole de gestion ou supervision des réseaux qui pernet de manipuler les différentes données de configuration sur un équipement réseau physique ou virtuel. il est décrit dans de nombreuses RFCs dont la RFC 6241.
s'appuie sur des technologies existantes:
La session NETCONF commence avec l'échange de messages “Hello” permettant de définir les capacités de l'appareil supervisé.
Un identifiant de session est alors fournit par le serveur.
Protocole NETCONF
C'est l'appareil à configurer qui exécute le serveur NETCONF
Le client contacte le serveur pour pousser les paramètres de configuration. Il initie donc la connexion en annonçant ses capacités (Hello client).
Le serveur répond et envoie également ses capacités/fonctionnalités et l'identifiant de session (Hello serveur).
Le client envoie des requêtes RPC, de façon à exécuter des traitements sur le serveur distant.
Les messages Hello contiennent entre autre l'espace de nommage soit la définition des éléments de configuration utilisables.
Modèle de données
Pour réaliser des opérations NETCONF à besoin de s'appuyer sur un langage capable de définir différents types de données. NETCONF permet de les manipuler des données mais le les définit pas.
Le modèle de données est définit par YANG (RFC 6020). C'est YANG qui décrit les différents éléments que NETCONF peut manipuler.
Dans YANG tout est définit par des modules.
On peut inclure des modules (import)
types prédéfinis simples: entiers, chaines
typedef pour définir de nouveaux types.