Batfish, outil Open Source d’analyse de configuration réseau

Batfish

L’écosystème NetDevOps propose de nombreux outils pouvant être positionnés aux différentes étapes de la boucle interne de l’Intent-Based Networking. Dans une approche NetDevOps, Batfish permet de contrôler des configurations avant leur déploiement.

Batfish détecte les erreurs et garantit l’exactitude des configurations de réseau prévisionnelles ou actuellement utilisées. Il permet une évolution sûre et rapide du réseau, sans crainte de pannes ou de failles de sécurité.

Batfish a été initialement développé par des chercheurs de Microsoft Research, UCLA et USC. Beaucoup d’autres y ont contribué depuis. Il est actuellement maintenu par Intentionet, qui propose également Batfish Enterprise, un service qui étend et améliore les capacités de base de Batfish.

Batfish est un service qui tourne sous la forme d’un conteneur Docker. Batfish est conçu pour analyser une série de snapshots d’un réseau. Il faut voir le réseau comme un regroupement logique d’appareils, que ce soit tous les appareils du réseau ou un sous-ensemble. Un snapshot est un état du réseau à un instant donné. Un réseau peut contenir de nombreux snapshots, pour permettre de comprendre son évolution.

Continuer la lecture de « Batfish, outil Open Source d’analyse de configuration réseau »

Observabilité du réseau (part.3)

Suzieq Architecture

Cet article fait suite à la première partie qui présente la notion d’observabilité et à la deuxième partie qui présente la solution commerciale IP Fabric.

SuzieQ est une application open source proposée par la société Startdust Systems située à Sunnyvale en Californie. L’application collecte, normalise et stocke des données horodatées qui ne sont autrement disponibles qu’en se connectant à chaque équipement. Elle peut s’installer sous la forme d’un conteneur ou d’une VM dans laquelle elle est mise en place en tant que package Python.

Avec SuzieQ, il est possible d’acquérir une compréhension approfondie du réseau, remédier rapidement aux défaillances et identifier de manière proactive les problèmes du réseau avant que leurs effets ne se fassent sentir. Lors de la mise en place du modèle Intent-Based Networking, il est possible de s’assurer que chaque modification du réseau est automatiquement validée après avoir été effectuée.

SuzieQ fonctionne avec plusieurs constructeurs et collecte les données depuis Arista EOS (version 20.0 ou ultérieure), IOS, IOS-XE, IOS-XR et NXOS de Cisco (N7K avec les versions 8.4.4 ou supérieures et N9K avec les versions 9.3.1 ou supérieures), Cumulus Linux , Junos de Juniper (plates-formes QFX, EX, MX et SRX) et les plateformes SONiC. SuzieQ prend également en charge la collecte de données à partir de serveurs Linux. Le poller SuzieQ utilise SSH ou l’API REST d’un équipement pour collecter les données.

Suzieq Constructeurs
Constructeurs supportés
Continuer la lecture de « Observabilité du réseau (part.3) »

Observabilité du réseau (part.2)

IP Fabric Architecture

Cet article fait suite à la première partie et présente une des deux solutions évoquées.

IP Fabric, dont le siège Européen est situé à Prague en République Tchèque, est à la fois une société et un produit commercial soumis à licence. L’application s’installe avec les prérequis minimum suivants :

IP Fabric requirements
Dimensionnement

Les fonctionnalités sont articulées autour de trois grands domaines :

  • Découverte du réseau
    Après la phase de découverte, la plateforme crée un modèle mathématique du réseau à partir des données d’état et de configuration du réseau. Le modèle de réseau créé, appelé snapshot, intègre une logique de commutation, de routage et de sécurité permettant une visualisation avancée et des simulations de trafic réseau, ainsi que des chemins empruntés.
    La fonction de découverte cartographie l’infrastructure réseau de la même manière que le ferait un ingénieur réseau. En commençant par un périphérique de départ, le logiciel suit les relations réseau actives pour découvrir naturellement tous les chemins, périphériques et utilisateurs existants. Avec un algorithme de découverte avancé entièrement automatisé, la plateforme explore le réseau à l’aide de SSH (ou Telnet) et collecte les données opérationnelles et de configuration de tous les appareils. Cette partie du processus ne nécessite pas le protocole SNMP (Simple Network Management Protocol) et ne nécessite aucune modification du pare-feu non plus. Tout ce dont IP Fabric a besoin pour se mettre au travail, ce sont des informations d’identification en lecture seule et un accès à l’infrastructure.
    Le processus de découverte de réseau d’IP Fabric fonctionne sur les périphériques réseau actifs, tels que les commutateurs, les routeurs, les pare-feu, les équilibreurs de charge ou les contrôleurs Wi-Fi. Il collecte également des données sur les serveurs et autres appareils connectés au réseau. Le processus de découverte est évolutif et peut découvrir plus de 3000 appareils par heure.
    Afin d’être le plus agnostique possible, la liste des constructeurs et des configurations pris en charge est en constante évolution.
Continuer la lecture de « Observabilité du réseau (part.2) »

Observabilité du réseau (part.1)

Observabilité du réseau

Dernière modification le 16 avril 2022

Dans la boucle interne de l’Intent-Based Networking, il y a la partie « Intent Fulfillment » qui consiste à partir d’une Source de Vérité unique pour générer des configurations en direction des équipements (directement vers les équipements ou en passant pas une station de management) à l’aide d’un ensemble de programme et la partie « Intent Assurance » qui comprend, entre autre, le « Monitoring ».

Que ce soit dans ou en dehors de la démarche NetDevOps , le chapitre « Monitoring », qui comprend l’observabilité du réseau, est souvent mal compris et mal pris en compte.

Lorsque le sujet de la visibilité du réseau est abordé, la plupart des professionnels pensent à la surveillance du réseau en terme de monitoring traduit par « surveillance ». Les outils de monitoring fournissent une vue centralisée de la santé opérationnelle de l’infrastructure sous-jacente.

Les protocoles et technologies courants de surveillance du réseau incluent entre autre : SNMP (Simple Network Management Protocol), NetFlow, sFlow et syslog. Ils se retrouvent dans des produits aussi divers que Grafana/Prometheus, Zabbix, sFlow-RT, ntopng, Graylog…
La surveillance du réseau nécessite généralement une intervention humaine pour établir le comportement normal du réseau et du trafic. Ensuite, des outils de surveillance identifient et alertent les équipes sur les modifications du comportement attendu. Par exemple, les équipes peuvent utiliser SNMP pour référencer le comportement de débit d’une liaison réseau critique au fil du temps. Une fois que les administrateurs ont déterminé le comportement de base, l’outil de surveillance peut les alerter lorsque le comportement de débit dépasse ce qui est typique.

Continuer la lecture de « Observabilité du réseau (part.1) »

Nornir, Netmiko et Template Text Parser

Template Text Parser

Les développements Python, dans le domaine de l’automatisation réseau, ont tout à gagner à utiliser le Framework Nornir. Celui-ci propose plusieurs méthodes pour accéder aux équipements. Chacune de ces méthodes a ses avantages et inconvénients et surtout elles ne sont pas toujours applicables à tous les constructeurs.

La méthode adressant le plus grand nombre de constructeurs est sans aucun doute Netmiko. Cette souplesse vient du fait que l’idée consiste à initier une connexion avec chacun des équipements pour leur envoyer des commandes et récupérer le résultat de la commande au travers du canal qui a été ouvert. Ce qui est reçu en retour est le même texte qui se serait affiché à l’écran si la manipulation avait été faite manuellement.

Analyser les informations qui sont retournées dans ces conditions, relève d’une pratique qui s’appelle le « Screen Scraping ». Il s’agit majoritairement d’utiliser des expressions régulières (regex) pour extraire du texte les informations recherchées. Des librairies ont été mises au point pour simplifier cette analyse et pour retourner les informations recherchées dans une structure de données utilisable programmatiquement. Qui plus est, ces librairies ont été intégrées dans le module Netmiko et par voie de conséquence, elles sont utilisables dans le Framework Nornir.

Continuer la lecture de « Nornir, Netmiko et Template Text Parser »

Intent-Based Networking, concepts et définitions

Internet Research Task Force

Dernière modification le 9 janvier 2022

Les bases de la définition de l’IBN (Intent-Based Networking) ont été posées en décembre 2019 dans le groupe de recherche NMRG (Network Management Research Group) de l’IRTF (Internet Research Task Force). Elle a évolué pendant deux ans et à la date d’écriture de cet article, c’est la version 06 du 15/12/2021 qui est active.

Alors que les réseaux qui acceptent les ordres sous forme d’intentions s’appellent « Intent-Based Networks » (IBN), les systèmes qui permettent cette implémentation se nomment « Intent-Based Systems » (IBS). L’intention se définit comme un ensemble d’objectifs opérationnels qu’un réseau doit atteindre et les résultats qu’un réseau est censé fournir, sans préciser comment les atteindre ou les mettre en œuvre. Le terme « Intent » est apparu la première fois en juin 2015 dans le RFC 7575 « Autonomic Networking ».

L’intention applique plusieurs concepts simultanément :

  • Fournir une abstraction des données : les utilisateurs n’ont pas besoin de s’inquiéter de la configuration de bas niveau des équipements.
  • Fournir une abstraction fonctionnelle : les utilisateurs n’ont pas besoin de se préoccuper de la manière d’atteindre une intention donnée. Ce qui est spécifié est le résultat souhaité, avec l’IBS qui détermine automatiquement un plan d’action (par exemple, en utilisant un algorithme ou en appliquant un ensemble de règles dérivées de l’intention) pour savoir comment atteindre le résultat.
Continuer la lecture de « Intent-Based Networking, concepts et définitions »

Le Web 3.0, technologie opérationnelle

Web 3.0

Dernière modification le 9 janvier 2022

A l’origine, le Web 3.0 a été nommé le Web sémantique par l’inventeur du World Wide Web, Tim Berners-Lee. Il visait à devenir un Internet plus autonome, intelligent et ouvert.

On peut ajouter que les données sont interconnectées de manière décentralisée, ce qui constitue un énorme pas en avant par rapport à notre génération actuelle d’Internet Web 2.0, où les données sont principalement stockées dans des référentiels centralisés.

Les utilisateurs et les machines peuvent interagir avec les données. Mais pour que cela se produise, les programmes doivent comprendre les informations à la fois conceptuellement et contextuellement. Dans cette optique, les deux technologies essentielles du Web 3.0 sont le Web sémantique et l’Intelligence Artificielle (IA).

Comme les réseaux Web 3.0 fonctionnent via des protocoles décentralisés – un des fondamentaux de la technologie blockchain et crypto-monnaie – nous voyons une forte convergence entre ces technologies.

Toutes les personnes qui suivent les projets de la blockchain, savent que le Web 3.0 est déjà là au travers de nombreux projets qui couvrent plusieurs domaines actuellement entre les mains des GAFAM. Il en existe beaucoup, mais pour ne prendre que seulement deux d’entre eux, nous avons une illustration de la décentralisation de la fonction Cloud et de la fonction Recherche.

Continuer la lecture de « Le Web 3.0, technologie opérationnelle »

Quel rapport entre le NetDevOps et le Web 3.0

Web 3.0

Ne regarde pas la télévision de si près, c’est mauvais pour les yeux !

Vous aussi vous avez entendu cette phrase à de nombreuses reprises quand vous étiez plus jeunes ? Et pourtant, nous continuons souvent de regarder de trop près ! Vous êtes vous déjà demandé pourquoi on parlait du NetDevOps, de l’Infrastructure as Code et pourquoi on y utilisait autant de technologies issues du système, du développement, de l’Edge Computing, de l’Intelligence Artificielle et de la Blockchain (croyez moi, vous allez le voir arriver).

Je vous propose de prendre beaucoup de hauteur pour regarder le paysage technologique qui se dessine…

Les informations de fuites de données et de censures sont sorties de la presse spécialisée pour atteindre le grand public, avec une forte accentuation depuis deux ans. Est-ce que le Covid a exacerbé le phénomène ? Peut être !

Nous sommes arrivés bien loin de l’idée première d’Internet qui permettait de disposer d’un espace de liberté visant à contourner la censure et outrepasser les frontières. Des algorithmes, de plus en plus pointus, déterminent les contenus que nous consommons. Des géants du numérique se sont imposés. Les GAFAM (Google, Apple, Facebook, Amazon et Microsoft, aussi appelés « Big Five ») qui pèsent à eux seuls une capitalisation boursière d’environ 5.000 milliards de dollars, vendent nos informations personnelles sans qu’aucune récompense ne nous soit directement rétribuée. On essaye de nous faire croire que grâce à l’argent récolté, on nous propose de plus en plus de services gratuits, mais ce n’est qu’une utopie car ces services permettent de nous cerner encore plus pour récolter toujours plus d’informations sur nos comportements.

Continuer la lecture de « Quel rapport entre le NetDevOps et le Web 3.0 »

L’Intelligence Artificielle au service du NetDevOps

Intelligence Artificielle

Dernière modification le 17 novembre 2021

Je le répète assez souvent : « l’Intelligence Artificielle peut nous rendre des services dans le NetDevOps » pour résoudre des problèmes qui nécessiteraient des algorithmes très longs basés sur des successions de tests. Pour illustrer concrètement ces propos, je vous propose d’étudier un cas simple d’application de l’apprentissage automatique.

Prenons un exemple qui pourrait parfaitement faire partie d’un test de QI. Soit la suite de nombre suivante :

X-1012345
Y-3-11357?

Compléter la dernière valeur de Y manquante…

Pour résoudre ce problème, il va falloir trouver la relation qui relie X et Y et une fois trouvée, l’appliquer à la valeur manquante. Un oeil un peu entrainé va rapidement voir que la relation est Y = 2X – 1

Par soucis de validation, on pourra l’appliquer à chacun des X pour vérifier qu’on a trouvé la relation avec certitude. Une fois validée, la relation sera appliquée à la dernière valeur de X pour trouver Y = 9. Cette relation pourrait s’appliquer à de nouvelles valeurs de X.

Fonction Intelligence Artificielle
Fonction f(x)=2x-1
Continuer la lecture de « L’Intelligence Artificielle au service du NetDevOps »