====== Introduction à Python, et découverte de NETCONF et YANG ====== Les travaux se dérouleront à Brazzaville, sur trois demie journées du 26 au 28 février 2018 ; afin que les participants s'introduisent au langage Python, et qu'ils acquièrent le nécessaire pour interroger un serveur NETCONF. Le déroulé sera le plus interactif possible ; les participants devront savoir au minimum un langage de programmation, des bases en réseaux seront utiles. ===== Première demie journée : introduction à Python ===== Au bout de cette période, les participants sauront : * types (entier, flottant, chaines de caractères, listes, dictionnaires, tuples) * contrôle de flots (exécution conditionnelle, récursion, boucles) * fonctions, manipulation de fichiers, usage de paquets de la bibliothèque standard * aperçu sur les classes en Python * découverte de la bibliothèque //ncclient.// Cette demie journée se basera sur : * [[https://inforef.be/swi/python.htm|Apprendre à programmer avec Python 2]] de Gérard Swinnen * [[https://docs.python.org/2/library/index.html|La documentation en ligne de la bibliothèque standard]] * [[http://ncclient.readthedocs.io/en/latest/index.html|La documentation en ligne de la bibliothèque ncclient]]. ===== Deuxième demie journée : Réseaux TCP/IP et RESTCONF ===== Le but est que les participants acquièrent un minimum sur les réseaux TCP/IP, et apprennent à user des outils Linux dédiés à cet effet, notamment la suite //iproute2, wireshark, tcpdump// et //nmap.// Ils découvriront : * Les modèles TPC/IP et OSI * La couche liaison, les notions d'adresses MAC, le protocol ARP * La couche IP, les notions d'adresses IPv4 et IPv6, le protocole ICMP * La couche transport, les notions de ports, les protocoles TCP, UDP et TLS * la couche applicative, les protocoles SSH, HTTP * un aperçu sur le protocole RESTCONF. Cette demie journée se basera sur : * [[https://tools.ietf.org/html/rfc1180|A TCP/IP Tutorial]], RFC 1180, janvier 1991 * [[https://tools.ietf.org/html/rfc791|Internet Protocol]], RFC 791, septembre 1981 * [[https://tools.ietf.org/html/rfc1918|Address Allocation for Private Internets]], RFC 1918, février 1996 * [[https://tools.ietf.org/html/rfc8040|RESTCONF Protocol]], RFC 8040, janvier 2017. ===== Deuxième et troisième demie journées : découverte des protocoles NETCONF et YANG ===== Les participants verront : * le flot du protocole NETCONF 1.1 * les notions de //datastores// * les actions de bases de NETCONF (//get, get-config, edit-config, commit,// etc.) * le modèle de structuration YANG * l'interrogation d'un serveur NETCONF, et le rapatriement des modèles YANG. Ces demies journées se baseront sur : * [[https://tools.ietf.org/html/rfc6241|Network Configuration Protocol]], RFC 6241, juin 2011 * [[https://tools.ietf.org/html/rfc5277|NETCONF Even Notifications]], RFC 5277, juillet 2008 * [[https://tools.ietf.org/html/rfc6020|YANG - A Data Modeling Langage for the Network Configuration Protocol]], RFC 6020, octobre 2010 * [[https://tools.ietf.org/html/rfc7895|YANG Module Library]], RFC 7895, juin 2016 * [[https://www.ietf.org/proceedings/75/slides/opsarea-5.pdf]], Netconf and yang, tutorial status, demo Également, avant la formation, les participants devraient lire l'article [[https://www.dropbox.com/s/76ptmwtqk2b24hs/Network%20configuration%20management%20%20%20using%20NETCONF%20and%20YANG%20%28IEEE%20Comm%20Mag%20-%20septembre%202010%29.pdf?dl=0|Network configuration management using NETCONF and YANG]] (septembre 2010, IEEE Communication Magazine). ===== Tuto Netconf SSH ===== [[http://www.brocade.com/content/html/en/configuration-guide/netiron-06000-managementguide/GUID-450E2D6A-6836-4A9F-AA6A-F4FA539160CB.html|Brocade]]