Juniper France Tech Blog
Afenioux , New User
Juniper France Tech Blog
Approche d’automatisation réseau par France-IX
Jun 9, 2017

L’automatisation fait partie des tâches des administrateurs réseaux depuis longtemps. De la même manière que les ingénieurs systèmes sont passés des boucles ssh à des outils plus sophistiqués il y a des années, les NetOps évoluent maintenant des scripts rancid et expect vers des outils plus puissants et plus robustes.

 

France-IX est le le premier fournisseur de service de peering Internet en France, offrant des services d'interconnexion publics et privés via ses 11 points d'échange neutres à Paris et à Marseille. France-IX interconnecte plusieurs centaines d'opérateurs de télécommunications, de fournisseurs de services Internet, de contenu, de réseaux de distribution de contenu et et de tous les autres réseaux du monde entier avec un trafic significatif sur le marché Internet français. Ces réseaux réclament une qualité de réseau et des performances exceptionnelles.

 

Le défi chez France-IX consiste à gérer la croissance accrue du trafic et à répondre aux attentes de nos clients. C'est la raison pour laquelle nous avons abordé l'automatisation réseau sous différents angles : la première approche est plus proche du code, en utilisant Python et PyEZ alors que la seconde est plus abstraite, en utilisant Ansible.

 

Approche 1 : Automatisation avec Python et PyEZ

---

Dans notre processus actuel, nous utilisons des scripts Python avec la bibliothèque JunOS PyEZ afin de déployer la configuration sur notre équipement via Netconf. Junos PyEZ est connu sous le nom de « Bibliothèque Python pour l'automatisation Junos» : https://github.com/Juniper/py-junos-eznc. Un bon article d'introduction est disponible ici : https://stebe.info/2016/11/introduction-junos-pyez/ .

 

Par exemple, dans notre utilisation actuelle, toutes les configurations courantes telles que ntp, tacacs, syslog, et règles de filtrage sont déployées de cette façon pour assurer la cohérence sur l'ensemble de notre réseau. Cela nous permet également de modifier certaines configurations rapidement et efficacement en ne déployant qu’un fragment de configuration vers un ensemble d’équipements.

 

Comme vous pouvez le voir dans le schéma ci-dessous, nous utilisons un serveur où nous avons configuré l'environnement de développement afin de déployer les configurations via le réseau OOBM.

 graphic.png

 

Il est également possible d'exécuter un ensemble de commandes (format cli possible mais non recommandé). L'objectif n'est pas de faire la configuration ni de parser la sortie texte, mais cela peut être utile pour vérifier certains compteurs, remettre à zéro les compteurs de manière globale ou de collecter des données spécifiques.

 

Certains des scripts et exemples de France-IX sont disponibles ici (dans la section PyEZ) : https://github.com/afenioux/hackathon-evpn .

 

Pour aller encore plus loin, nous aurions pu choisir d'utiliser les templates jinja, compléter ces templates avec Python et déployer le résultat comme nous l'avons fait avec le PyEZ (exemples disponibles ici: https://github.com/ksator/python-training-for-network-engineers). L'alternative que nous avons décidé d'utiliser chez France-IX est Ansible.

 

Approche 2 : Automatisation avec Ansible

---

Ansible est un logiciel d'orchestration open-source qui automatise le provisioning logiciel, la gestion de la configuration et le déploiement d'applications. Il utilise une architecture sans agent, ce qui signifie que les nœuds sont gérés par une machine maître via SSH, mais n'ont pas besoin d'installer ni d'exécuter de logiciel localement. Initialement utilisé pour la gestion de serveurs, des fonctionnalités supplémentaires ont été ajoutées pour la gestion d’ équipements réseau.

 

Nous utilisons des playbooks pour décrire les configurations, le déploiement et l'orchestration dans Ansible. Chaque playbook lie un groupe d'hôtes à un ensemble de rôles, et chaque rôle est découpé en tâches Ansible. La documentation est disponible à l'adresse suivante : http://docs.ansible.com/ansible/playbooks.html .

 

Il existe actuellement deux modules Ansible qui peuvent être utilisés pour gérer les équipements JunOS. Même si ces modules dépendent de scripts et de bibliothèques Python, il n'est pas nécessaire d'écrire de code Python pour les utiliser.

 

Le premier module a été développé par Juniper (http://junos-ansible-modules.readthedocs.io) et comprend une multitude de fonctionnalités (remise à zéro de l’équipement, installation de l'image JunOS, configuration, snapshot de la configuration et possibilité de faire des tests). Certaines fonctionnalités ne sont disponibles qu'avec ce module.

 

Le deuxième module a été développé par l'équipe Ansible. Bien qu'il soit limité en terme de fonctionnalités, il apporte une perspective intéressante car il respecte le principe de l'idempotence (peu importe combien de fois vous exécutez les instructions, le résultat sera toujours le même) et fait partie des modules de base. La documentation est disponible à l'adresse suivante: https://docs.ansible.com/ansible/list_of_network_modules.html#junos .

 

Ces deux modules ont été utilisés pour automatiser le déploiement de configuration sur un backbone de test avec MPLS et EVPN lors d'un hackathon de 3 jours organisé par Juniper France en Mars 2017. Grâce à cet ensemble de playbooks, nous avons déployé toute l'architecture (Routeurs P et PE, plus un Route-Reflector, avec ISIS, LDP, BGP et EVPN) sur 7 vMX en moins de 2 minutes. Nous avons également profité de la sortie XML fournie par les XML-RPC invoquée sur l'équipement pour effectuer des tests sur le réseau, tels que l'état des interfaces physiques, l'accessibilité des IP loopback et les adjacences ISIS et BGP. La configuration du lab, la topologie ainsi que les playbooks d’exemples sont disponibles ici : https://github.com/afenioux/hackathon-evpn dans la section Ansible-lab.

 

Perspectives

---

Comme vous pouvez le voir, beaucoup de choses peuvent déjà être réalisées d'une manière élégante avec ces outils, en moins de temps qu'on ne s'y attendrait. Vous êtes plus que bienvenu si vous souhaitez vous inspirer de nos exemples.

 

Chez France-IX, la prochaine étape consiste à récupérer des données de notre système interne basées sur Netbox (https://github.com/digitalocean/netbox) afin d'automatiser le provisioning de nouveaux clients en 2017. Nous réfléchissons déjà à d'autres projets d'automatisation pour 2018, restez à l’écoute !

 

A propos de l'auteur

---

Arnaud Fenioux est actuellement ingénieur réseau chez France-IX, le premier fournisseur de services de peering Internet en France. En charge de la gestion des opérations réseau, du déploiement à la maintenance (réseau MPLS/VPLS, réseau OOB), il est fortement impliqué dans les projets d'automatisation liés aux livraisons de service client et aux déploiements réseau. Avant de rejoindre France-IX, Arnaud a eu un rôle similaire au LyonIX (IXP régional français) et a débuté sa carrière dans l'administration de systèmes et de réseaux avec l'ISP Claranet et le site artprice.com.

 

Arnaud est diplômé de l’ESEO, école française d'ingénieurs basée à Angers. Il donne régulièrement des présentations dans des universités françaises et lors de conférences professionnelles et contribue activement aux hackathons organisés par le RIPE et Juniper par exemple.

May 13, 2018
ntrqjs
extended essay topics english essay writing service college essay heading write my college essay for me http://speedy-papers.com
May 15, 2018
qiampy
[url=http://canadian-pharmasy.com]buy cialis cheap online[/url] generic cialis available usa best place to buy cialis online forum http://canadian-pharmasy.com
May 17, 2018
wlcwnn
buy viagra malaysia online cheap viagra 100mg viagra online with prescription http://viagrasy.com
May 20, 2018
ovgdlg
May 21, 2018
dukxoy
how to get viagra doctors who prescribe viagra online http://canadian-pharmacie.com
May 26, 2018
unyvcn
cialis bph buy cialis in usa generic for cialis http://canadian-pharmasy.com
May 29, 2018
xweimq
May 31, 2018
znsawr
buy viagra online reviews buy viagra usa pharmacy where to order viagra online http://canadian-pharman.com
Jun 5, 2018
bskfce
http://cialisn.com - cialis canada cialis online from us pharmacy http://cialisn.com
Jun 9, 2018
pnxqub
generic viagra viagra prescription usa online viagra sales http://canadian-pharman.com