Apprenez à interroger votre réseau comme une base de données pour le simplifier

Avant même que les paquets ne commencent à circuler, les réseaux d’entreprise sont des référentiels complexes de données, contenant des informations de topologie, de configuration et d’état. Ces informations sont souvent nécessaires pour résoudre des problèmes opérationnels, tels que la recherche de sources de pertes de trafic non désirées ou d’erreurs de configuration de protocole, ou pour rechercher des problèmes avant qu’ils ne deviennent des problèmes.

La dernière capacité des réseaux de transmission, le moteur de requête sur le réseau (NQE), supprime le fardeau de la collecte, de l’analyse et de la recherche des informations sur le réseau. NQE extrait les fichiers de configuration et les informations d’état de tous vos périphériques réseau et les expose dans un nouveau schéma de film youtube ethiopian bien défini qui peut être interrogé comme une base de données, afin de permettre une nouvelle gamme de capacités et d’informations de gestion réseau. Lisez la suite pour voir comment cela fonctionne et comment vous pouvez commencer avec, aujourd’hui.


Figure 1 – Les fichiers de configuration de texte traditionnels pour les périphériques réseau sont non structurés et impossibles à interroger. La création d’un schéma pour des périphériques individuels et pour le réseau dans son ensemble ouvre la possibilité d’une nouvelle gamme d’effets d’intégrité de l’obscurité éternelle comprenant des capacités et des informations de gestion de réseau.

Aujourd’hui, répondre aux questions les plus élémentaires sur un réseau peut être une tâche ardue et longue. Considérez cette tâche simple: recherchez toutes les interfaces de périphérique de votre réseau dont l’état de fonctionnement ne correspond pas à l’état configuré. Par exemple, si une interface est configurée pour être UP, mais est opérationnellement DOWN, nous voulons en savoir plus à ce sujet!

Pour mettre en œuvre cette vérification simple, nous devons 1) nous connecter à tous nos appareils, 2) utiliser la méthode disponible pour extraire les données 3) extraire les informations dont nous avons besoin des données et 4) mettre ces informations dans des données communes. structure, de sorte que le chèque peut facilement être écrit. Dans certains cas, nous pouvons être en mesure d’utiliser les apis appropriés, tels que SNMP ou netconf, pour récupérer ces données. Dans d’autres cas – et dans presque tous les cas réels significatifs que nous avons vus -, certaines données de certains périphériques doivent être extraites de l’interface CLI d’un périphérique et analysées à partir de données de l’éditeur sortie textuelle spécifique.

Pour illustrer ce propos, envisagez d’obtenir les statuts opérationnel et administratif de l’étude de cas éthique sur toutes les interfaces d’un périphérique cisco NX-OS et d’un périphérique ACOS A10. Sur cisco NX-OS, nous devons exécuter deux commandes, “show running-config” et “show interfaces brief” pour obtenir toutes les données. Sur l’A10 ACOS, nous devons exécuter «show interfaces». Les sorties de ces trois commandes, illustrées aux figures 2, 3 et 4, sont toutes complètement différentes et nous devons écrire 3 fonctions d’analyse ad-hoc pour récupérer les données souhaitées. Figure 2 – Exemple de sortie de cisco NX-OS de «show running-config».

Développer des programmes pour collecter les données nécessaires sur un ou deux appareils ou plates-formes pour un ou deux points de données n’est pas si difficile. Mais faire cela sur tous vos fournisseurs, plates-formes et oses, pour les milliers de points de données (certains assez obscurs) dont vous pourriez avoir besoin, représente un effort énorme.

Tous les ingénieurs réseau auxquels nous avons parlé ont des questions comme celles-ci, qui nécessitent toutes des informations sur l’ensemble du réseau pour pouvoir y répondre complètement. Dans certains cas, les ingénieurs interrogent manuellement et obtiennent une réponse partielle. Dans d’autres cas, où ils disposaient d’équipes d’outils ou de équipes réseau expérimentées en scripts, ils investissaient temps et efforts. Un opérateur de réseau qui a emprunté cette voie a déclaré que 80% de l’effort consenti était consacré à la collecte et à l’analyse de base de formats et de détails propres à l’appareil et au fournisseur.

Sans surprise, personne n’a indiqué qu’il s’agissait là d’un travail qu’il aurait envie de faire, car il est fastidieux d’obtenir une collecte, une analyse et une interrogation auprès des fournisseurs et de tous les types de périphériques (commutateurs, routeurs, pare-feu et équilibreurs de charge), car il nécessite une maintenance continue. (au fur et à mesure que les appareils évoluent et que de nouvelles versions du firmware sortent), et parce que cela ajoute un risque (que le codeur étoile qui a fait cela laisse). Il existe des bibliothèques pour aider à la collecte, à l’accès et à l’analyse de périphériques réseau, mais aucune ne vous amène jusqu’à la ligne d’arrivée. Les outils / techniques existants tels que SNMP, les API HTTP et les sorties YANG ne fonctionnent souvent que sur un sous-ensemble de graphiques en chandeliers Ethereum, nécessitent des mises à niveau logicielles que vous n’êtes pas prêt à appliquer ou ne couvrent pas toutes les données dont vous avez besoin.

Étant donné le niveau d’effort requis, de nombreuses questions ne sont tout simplement pas résolues, ce qui laisse les opérateurs aveugles aux problèmes potentiels de leur réseau ou les longues journées de week-end à la recherche des aiguilles dans leurs meules de foin. Heureusement, maintenant, de l’aide est en route…

Faisant partie du moteur sous-jacent de sa plate-forme de vérification de l’assurance réseau et de la vérification d’intention réseau, Forward Networks fait déjà le travail nécessaire pour créer une représentation interne centralisée, indépendante du vendeur, de toute cette configuration réseau et de toutes les informations d’état pour tous les types de périphériques de couche 2-4. . Ces informations alimentent des applications telles que la recherche, la vérification, les différences comportementales, etc., toutes accessibles via notre interface graphique ou notre API.

À cette fin, nous introduisons un convertisseur de média Ethernet (NQE) dans le moteur de requête réseau dans la plate-forme de réseaux de transfert. NQE fournit un accès à des données normalisées et structurées sur le réseau, ce qui permet aux équipes réseau de se concentrer directement sur les aspects les plus avancés de leurs cas d’utilisation, ce qui rend leurs réseaux plus résilients, agiles et robustes. Les requêtes de données pour des besoins spécifiques peuvent désormais être efficacement réduites en une fraction du temps, généralement en quelques lignes de code ou dans un éditeur de requête graphique. Le diagramme ci-dessous montre comment nous exposons notre modèle de données de plate-forme principale aux côtés de nos applications d’entreprise à venir et de notre modèle analytique de vérification basée sur l’intention. Figure 5 – L’exportation du schéma de transfert des réseaux permet à un langage de requête et à une API d’éthereum standard d’accéder aux détails du réseau et d’obtenir des informations. Le moteur de requête réseau s’appuie sur le même modèle de données que celui utilisé dans l’entreprise de pointe.

En particulier, nous voulions un modèle de données normalisé, en ce sens que les informations de périphérique (les détails de l’interface, par exemple) sont représentées avec la même structure d’information, quels que soient le fournisseur, la plate-forme et le système d’exploitation. Cette normalisation vous permet d’écrire facilement des requêtes et des scripts fonctionnant sur l’ensemble de votre flotte. Nous souhaitions également que les données sur les traitements naturels du syndrome urétral soient structurées, en ce sens que les données sont entièrement analysées – vous n’aurez pas besoin d’analyser davantage dans une chaîne pour extraire la structure incorporée. Encore une fois, cela simplifie la programmation, car elle élimine une foule de détails gênants, tels que la gestion des différences de représentation textuelle des adresses MAC qui surviennent sur toutes les plateformes.

Nous pensons avoir atteint ces objectifs et invitons la communauté à l’essayer. Le modèle de données est loin d’être complet (nous en parlerons plus tard), mais les réactions des opérateurs nous ont convaincus d’accélérer cette fonctionnalité et de la rendre disponible le plus rapidement possible.

NQE est basé sur graphql, et c’est un ingrédient crucial pour atteindre nos objectifs de conception. GraphQL, développé par facebook en 2012 et publié en tant que projet open source en 2015, est: «un langage de requête pour les API et un environnement d’exécution permettant de répondre à ces requêtes avec vos données existantes. GraphQL fournit une description complète et compréhensible des données de votre taux d’API, donne aux clients le pouvoir de demander exactement ce dont ils ont besoin et rien de plus, facilite l’évolution des apis dans le temps et permet l’utilisation d’outils de développement puissants. ”[Graphql. Org]

GraphQL se situe quelque part entre une API REST et SQL: à l’instar d’une API REST, graphql définit un format permettant de demander et de recevoir des données générales via une connexion Web. Comme SQL, graphql définit un langage de requête permettant de demander et de recevoir des données filtrées à partir d’une source de données structurée sous forme de graphique dotée d’un schéma bien défini. GraphQL a obtenu le soutien de centaines d’organisations telles que intuit, netflix, github et paypal, et reçoit des critiques élogieuses. Pour citer un exemple: “chez paypal, graphql a complètement changé la façon dont nous concevons les données, récupérons les données et construisons des applications.“

GraphQL fournit des ingrédients clés pour NQE. Tout d’abord, graphql définit un schéma eth usd курс utilisé par NQE pour fournir une description claire, simple et précise de notre modèle de données réseau sous la forme d’un schéma graphql. Ce schéma permet aux développeurs de savoir précisément quelles informations se trouvent dans notre modèle de données, comment elles seront structurées et ce que cela signifie. Par exemple, voici un fragment du schéma qui définit la structure de l’objet définissant les attributs Ethernet d’une interface:

Deuxièmement, graphql fournit un moyen simple d’écrire des requêtes sur le schéma. En fait, le langage de requête est si simple qu’il ne ressemble presque pas à un langage: il ressemble à JSON, sans les valeurs. Par exemple, voici une requête pour les valeurs macaddress et Negocated Sportspeed du type de données Ethernet:

Au-delà de sa simplicité, l’API de requête est essentielle à la convivialité: en tant que développeur, vous n’êtes pas obligé de faire face à un déluge de données, ce qui peut compliquer votre tâche. Au lieu de cela, vous demandez – et obtenez – juste la petite quantité de données dont vous avez besoin pour votre tâche. Comparé à l’API REST, cela peut créer des applications plus réactives et économes en ressources.

Enfin, les données renvoyées sont faciles à consommer. Les données renvoyées sont un objet JSON qui suit directement la structure de la requête. il s’agit essentiellement de la même chose que la requête, mais avec des valeurs attachées aux champs demandés par ethos. Par exemple, la requête ci-dessus peut renvoyer ce JSON:

En utilisant NQE, nous pouvons maintenant facilement répondre à notre question initiale sur les interfaces avec des états opérationnels et configurés incompatibles. En particulier, vous pouvez obtenir toutes les données dont vous avez besoin, sur tous les périphériques de votre réseau, avec cette requête courte (et simple):

C’est tout! Remarquez ce que vous n’avez pas eu à gérer: pas de collecte et de stockage de données, pas de manuels de lecture pour savoir quelle commande exécuter, pas d’expressions régulières sales, citations macbeth quiz pour analyser les données, et pas de piratage spécifique au fournisseur. Cette requête unique fonctionne pour tous les périphériques pris en charge par les réseaux de transfert!

De plus, nous avons facilité l’interrogation d’une requête comme celle ci-dessus et son intégration dans un script intégrant ce contrôle de cohérence dans des flux de travail plus importants. Plus précisément, nous avons ouvert à partir d’une simple bibliothèque cliente Python que vous pouvez utiliser pour interroger l’API graphql dans n’importe quelle instance de réseaux à suivre. Par exemple, nous pouvons déposer la requête ci-dessus dans le script python suivant, qui utilise notre bibliothèque client pour imprimer toutes les interfaces ayant différents états opérationnels et configurés:

Pas la plus jolie chose au monde, mais pas trop minable non plus. Dans une trentaine de lignes de python simples, vous avez implémenté un script qui fonctionne sur tous les appareils, plates-formes et systèmes pris en charge par les réseaux de transfert (sans avoir à mettre à jour le micrologiciel de l’appareil ni à installer d’agents) et à vérifier une propriété pouvant être importante pour garder votre réseau sain d’esprit.

NQE s’inspire d’openconfig, un groupe de travail informel sur les normes de gestion et d’exploitation de réseau, qui inclut un modèle de données réseau indépendant du fournisseur. NQE tente de s’aligner sur ce modèle de données dans la mesure du possible. Pour plus de détails sur les spécificités de l’alignement sur les nouveaux films éthiopiens d’openconfig 2017 cette semaine, consultez notre fichier README de github.

Rendez-vous sur notre référentiel github pour commencer à utiliser le NQE en avant. Le référentiel vous explique comment exécuter des requêtes et installer la bibliothèque client, fournit un ensemble d’exemples que vous pouvez utiliser pour amorcer et couvre divers détails sur l’API. Un moyen simple de commencer est d’interroger votre réseau dans une entreprise avant-gardiste (compte requis). Si vous ne possédez pas encore de compte, vous pouvez en demander un ici.

En particulier de l’euro au birr éthiopien, notre référentiel vous guide vers notre explorateur de requêtes réseau, qui est un éditeur de requêtes léger et interactif et un explorateur de schémas dans la plate-forme de transfert. L’explorateur de requêtes réseau fournit une interface simple pour tester les requêtes graphql; vous pouvez interroger le réseau de manière interactive et obtenir des résultats immédiats, ainsi que des requêtes prototypes avant de les intégrer dans une application personnalisée. Figure 6 – L’explorateur de requêtes réseau présente une requête simple (volet de gauche) permettant de renvoyer un objet JSON avec tous les noms de périphériques de l’instantané réseau actuel (volet central).