12 idées d’automatisation pour améliorer un réseau d’entreprise
Cet article donne aux informaticiens les clés pour automatiser le réseau selon 12 cas d’usage qui demandent trop souvent de longues interventions manuelles.
Pour bien se lancer dans l’automatisation du réseau, quoi de mieux que de démarrer par des cas d’usage ? Voici dans cet article une sélection des douze plus fréquents, rangés selon trois niveaux d’expertise.
En préambule, rappelons différents points essentiels. Tout d’abord, les équipes qui se lancent dans l’automatisation du réseau devraient s’en servir pour faire des choses simples, qui ne posent pas de risques et qui sont faciles à implémenter. En clair, les automatismes ne doivent en rien changer le réseau.
Ensuite, le projet d’automatisation idéal est celui qui rend service aux métiers, car ce sont eux qui jugeront en premier votre travail. Il est d’ailleurs pertinent de les solliciter pour leur montrer comment fonctionnent les outils et pour écouter les idées qu’ils pourraient apporter. Les automatismes se multiplieront au fur et à mesure que vous gagnerez en maturité.
La programmation de processus automatiques comprend l’écriture de scripts en Python ou en Ruby, la vérification de numéros de version avec Git et la lecture de modèles en Jinja2, au-dessus de plateformes d’automatisation comme Ansible, Salt ou Napalm. Chaque tâche d’automatisation doit par ailleurs respecter des critères facilement identifiables qui déterminent quand la tâche est accomplie et que l’on peut passer à la suivante. Ce détail est essentiel pour que l’écriture d’un automatisme ne soit pas contre-productive, c’est-à-dire qu’elle prenne plus de temps qu’elle n’en fasse gagner.
Enfin, il existe plusieurs cours en ligne (en anglais) très bien conçus pour apprendre à maîtriser l’écriture de processus automatiques dédiés aux réseaux. Citons « Automating Networks with Ansible the Right Way » et « Automating Networks with Python » de Nick Russo, ainsi que « Ansible for Networking Engineers » et « Building Network Automation Solutions » de Ivan Pepelnjak. On suivra également avec attention les astuces publiées sur le blog de NetworkToCode.
Quatre automatismes simples pour commencer
Commençons par les quatre idées d’automatisation du réseau les plus simples à mettre en œuvre. Elles vous permettront de maîtriser le sujet.
1/ Retrouver où se situe physiquement un appareil. L’idée est de chercher où un appareil est connecté sur le réseau en partant de son nom logique, de son adresse IP ou de son adresse MAC. L’intérêt est de pouvoir aller intervenir physiquement sur un équipement qui a déclenché une alerte, par exemple dans la console de sécurité d’un pare-feu. Pour commencer, utilisez le nom de domaine pour retrouver l’adresse IP. À partir de celle-ci, identifiez le sous-réseau dans lequel elle se situe et demandez au switch de ce sous-réseau à quelle adresse MAC correspond l’adresse IP en question. Ensuite, demandez au switch sur lequel de ses ports est connecté l’appareil avec cette adresse MAC.
2/ Vérifier la connexion entre un poste de travail et une application. Cette tâche est longue à faire à la main, car elle suppose d’envoyer des pings du poste utilisateur vers le serveur de l’application – ou plus exactement vers le serveur de répartition de charge – et vice-versa. L’idée consiste donc à écrire des scripts, éventuellement lancés depuis les relais les plus proches du poste de travail ou du serveur de répartition de charge, qui automatisent les pings et dressent des résultats faciles à lire.
3/ Vérifier l’interconnexion entre les équipements réseau. Il s’agit de s’assurer que chaque routeur, switch, répartiteur de charge, pare-feu, etc. est toujours correctement relié à ses voisins, qu’un câble Ethernet n’a pas été débranché. Cette automatisation nécessite une petite base de données – disons un fichier texte pour rester simple – qui liste tous les voisinages réseau avec le nom des interfaces sur chaque lien. La tâche consiste à tester toutes les interfaces, de préférence en commençant par les plus importantes, comme celles des groupes EtherChannel, puis celles des routeurs aux switches, puis de switches à switches, etc.
4/ Vérifier que les configurations sont toujours correctes. Identifiez les divergences entre les configurations en production et celles que vous aviez définies à l’origine dans des modèles-types. Commencez par les protocoles les plus simples, comme NTP (qui va chercher la bonne heure), SNMP (administration simple) ou encore si les logins administrateurs sont toujours les bons. Vérifiez en dernier les protocoles de plus haut niveau, comme BGP (partage des règles de routage).
Quatre automatismes qui font appel à la programmation des équipements
Au fur et à mesure que vous maitriserez l’automatisation du réseau, les tâches seront de plus en plus complexes à réaliser. À un niveau intermédiaire, il convient de maîtriser la programmation, par exemple celle des API pour interroger ou modifier des bases de paramètres propres aux fabricants de vos équipements. Voici quatre idées d’automatismes qui en tirent parti.
1/ Vérifier le routage. L’idée est ici de vérifier que les routes des équipements sur Internet sont bien les mêmes que celles enregistrées dans les DNS internes, ou du moins que la passerelle vers Internet repose sur et utilise les bons DNS. Il convient aussi d’interroger des DNS sur Internet pour vérifier que le préfixe de votre réseau est correctement annoncé au reste du monde.
2/ Automatiser le changement des mots de passe. Le changement des mots de passe devant se faire régulièrement, il est bon de programmer un processus qui vérifie que tout nouveau mot de passe respecte la charte de l’entreprise. Encore mieux, implémentez un mécanisme d’authentification à double facteur. Pensez bien évidemment à ne stocker les mots de passe de vos utilisateurs que dans des répertoires protégés.
3/ Dresser l’inventaire du réseau. Identifiez chaque équipement en collectant l’identifiant de son modèle, son numéro de série et la version de son système d’exploitation. Les API des fabricants vous donneront par ailleurs accès à des informations comme les alertes de sécurité et les échéances du support contractuel, par exemple pour penser à renouveler un contrat de maintenance. L’information concernant l’OS permet quant à elle d’identifier les équipements qui ne sont plus à jour ; gardez à l’esprit qu’uniformiser tous vos équipements sur la même version de l’OS ne pourra que simplifier vos tâches d’administration.
4/ Virtualiser le réseau. Quelle que soit la configuration adoptée pour virtualiser le réseau, elle doit être automatisée : VLAN, VxLAN ou même MPLS. De cette manière, il devient plus simple de mettre à jour les règles à suivre.
Quatre automatismes avancés
Voici enfin quatre idées d’automatisation plus élaborées, pour ne traiter qu’une bonne fois pour toutes les configurations les plus complexes.
1/ Migrer les règles des pare-feux. Pour faciliter le passage des pare-feux d’une marque à ceux d’une autre marque, le plus efficace est de créer un script qui convertit le format des règles d’un fabricant au format d’un autre. Rédiger un tel script permet de surcroît de faire le ménage dans les règles, certaines devenant obsolètes avec le temps et d’autres ne s’appliquant même pas au nouvel équipement. La difficulté de cette automatisation est d’identifier l’endroit où les adresses IP sont traitées dans les règles.
2/ Mettre à jour les ACL. Les ACL, ou listes de contrôle d’accès (par exemple les règles paramétrées sur un pare-feu) sont difficiles à maintenir, car les administrateurs oublient souvent leur raison d’être et redoutent de les effacer par peur de créer un dysfonctionnement. Pour résoudre ce problème, l’automatisation de la mise à jour des ACL devrait reposer sur une base de données contenant à la fois ces ACL et leurs descriptions. Il s’agit en l’occurrence de préciser dans ces descriptions pourquoi une règle d’accès existe et quels sont les critères pour la modifier ou l’effacer. Lors de la procédure de mise à jour, l’automatisme consistera à retrouver parmi les descriptions quelles ACL sont concernées par les nouvelles politiques de sécurité, puis à les modifier.
3/ Provisionner un pod de datacenter. La configuration réseau d’un module entier de datacenter est certainement la tâche d’administration la plus longue. Elle mérite d’autant plus d’être automatisée que ces modules sont censés être déployables à l’identique au fur et à mesure que de nouveaux projets sont lancés.
4/ Mettre en place une base qui garantit les automatismes. C’est une pratique issue du concept des réseaux basés sur l’intention : il s’agit de référencer les différents scénarios d’usage des réseaux par les métiers afin de pouvoir vérifier que tous les prérequis sont respectés – en particulier les niveaux de service, ou SLA - à chaque fois que l’on enclenche un processus automatique.