Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| netadmin:supervision:reseau-services:s4:010_introduction_netconf_yang [2020/02/28 18:55] – yoann | netadmin:supervision:reseau-services:s4:010_introduction_netconf_yang [2021/02/01 21:51] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 6: | Ligne 6: | ||
| Problématique: | Problématique: | ||
| - | * Diversité des solutions propriétaires et scripts/ | + | * Diversité des solutions propriétaires et scripts/ |
| Nécessité croissante de normalisation. IETF via la délégation IAB (Internet Architecture Board) constate l' | Nécessité croissante de normalisation. IETF via la délégation IAB (Internet Architecture Board) constate l' | ||
| - | * Le passage à l'echelle | + | * Le passage à l' |
| * 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. | * 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): | + | Quelques |
| - | * Différencier les éléments configurables et les données de monitoring | + | * 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 | + | * 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 à affecter |
| - | * Communication bidirectionnelle pour pouvoir retourner des informations au le gestionnaire. | + | * Communication bidirectionnelle pour pouvoir retourner des informations au gestionnaire. |
| - | * Protocole en mode texte: car les protocoles de ce type ont fait leurs preuves: facilité des échanges, | + | * Protocole en mode texte car les protocoles de ce type ont fait leurs preuves |
| * Paralléliser les opérations. | * Paralléliser les opérations. | ||
| - | * Faciliter la manipulation des configurations: | + | * Faciliter la manipulation des configurations: |
| - | * Sécurité | + | * Sécurité. |
| - | Pour répondre | + | Pour répondre |
| - | NETCONF: protocole de gestion ou supervision des réseaux qui pernet | + | NETCONF: protocole de gestion ou supervision des réseaux qui permet |
| - | s' | + | Il s' |
| - | * **RPC**((**R**emote **P**rocédure **C**all)) utilisant le formalisme XML | + | * **RPC**((**R**emote **P**rocédure **C**all)) utilisant le formalisme XML. |
| - | * Connexion sécurisée principalement par tunnel SSH | + | * Connexion sécurisée principalement par tunnel SSH. |
| - | La session NETCONF commence avec l' | + | La session NETCONF commence avec l' |
| Un identifiant de session est alors fournit par le serveur. | Un identifiant de session est alors fournit par le serveur. | ||
| - | Protocole | + | ===== Vue générale du protocole |
| + | |||
| + | Généralités sur l' | ||
| < | < | ||
| - | C'est l' | + | C'est l' |
| </ | </ | ||
| - 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 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/ | - Le serveur répond et envoie également ses capacités/ | ||
| - | - Le client | + | - Le client |
| - | Les messages Hello contiennent entre autre l' | + | Les messages Hello contiennent entre autre l' |
| | | ||
| ===== Modèle de données ===== | ===== Modèle de données ===== | ||
| - | Pour réaliser des opérations NETCONF à besoin de s' | + | Pour réaliser des opérations NETCONF à besoin de s' |
| - | 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. | + | Le modèle de données est définit par le langage |
| + | |||
| + | ==== Les types ==== | ||
| * Dans YANG tout est définit par des modules. | * Dans YANG tout est définit par des modules. | ||
| - | * On peut inclure | + | * On peut inclure |
| - | * types prédéfinis simples: entiers, | + | * Contient des types prédéfinis simples: entiers, |
| - | * typedef | + | * La déclaration |
| + | |||
| + | ==== La hiérarchisation ==== | ||
| + | |||
| + | YANG permet de hiérarchiser les données. | ||
| + | |||
| + | Pour hiérarchiser les données plusieurs éléments (Nodes) sont disponibles: | ||
| + | |||
| + | Les feuilles (leaf): | ||
| + | * leaf: Une feuille représente une variable unique. | ||
| + | * leaf-list: ensemble de variables du même type (tableau). | ||
| + | |||
| + | Pour assembler et hiérarchiser les feuilles YANG propose les conteneurs et les listes: | ||
| + | * container: ensemble de nœuds chacun étant présent une seule fois. | ||
| + | * list: ensemble d' | ||
| + | |||
| + | Quelques mot clés largement utilisés: | ||
| + | * config: L' | ||
| + | * mandatory: spécifie si un nœud doit être présent. | ||
| + | |||
| + | |||
| + | ==== Quelques exemples ==== | ||
| + | |||
| + | Définition et utilisation d'une feuille. | ||
| + | |||
| + | ^ Définition dans YANG ^ Utilisation par NETCONF | ||
| + | | < | ||
| + | leaf port{ | ||
| + | type inet: | ||
| + | default 22; | ||
| + | config true; | ||
| + | description "port to listen to"; | ||
| + | } | ||
| + | </ | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | Définition et utilisation d'une leaf-list: | ||
| + | |||
| + | ^ Définition dans YANG ^ Utilisation par NETCONF | ||
| + | | < | ||
| + | leaf-list allow-user{ | ||
| + | type string; | ||
| + | mandatory true; | ||
| + | } | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | Utilisation d'un node de type list. On notera que les feuilles ip et port ne sont pas obligatoires et peuvent ne pas être spécifiées dans le fichier de configuration NETCONF. | ||
| + | |||
| + | ^ Définition dans YANG ^ Utilisation par NETCONF | ||
| + | | < | ||
| + | list server{ | ||
| + | key " | ||
| + | leaf name{type string;} | ||
| + | leaf ip{type inet: | ||
| + | leaf port{type inet: | ||
| + | } | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Dernier exemple, définition d'un container system. On notera ici l' | ||
| + | |||
| + | ^ Définition dans YANG ^ Utilisation par NETCONF | ||
| + | | < | ||
| + | container system{ | ||
| + | container services{ | ||
| + | container " | ||
| + | presence " | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | Pour résumer C'est le langage YANG qui modélise les différentes données d' | ||
| + | |||
| + | ===== Quizz ===== | ||
| + | |||
| + | * Par défaut la sécurité des échanges du protocole NETCONF est garantie par SSH. | ||
| + | * NETCONF définie les primitives utilisées pour configurer les appareils réseau. | ||
| + | * YANG définit le modèle des données exploitables par le protocole NETCONF. | ||
| + | * Les " | ||
| + | * La structure arborescente des données se définie avec YANG via les nodes de type container et list. | ||
| + | * Le mot clé " | ||
| + | * Il est possible de définir ces propres types de données de configuration. | ||