L’automatisation des réseaux est de plus en plus perçue comme une évidence : elle promet des gains notables en efficacité, que ce soit dans la phase de build comme dans celle de run. Pourtant, à mesure que l’automatisation progresse, elle entraîne avec elle une autre dynamique, moins intuitive : celle de la complexification.
Nouveaux outils, nouveaux langages, nouveaux protocoles, nouvelles habitudes… L’automatisation n’est pas une simple amélioration des pratiques existantes, c’est un changement de pratique qui s’accompagne aussi de nouveaux risques. Parmi ceux-ci :
- la source de vérité est sortie du réseau et peut être en déphasage avec les configurations déployées
- L’amplification des erreurs humaines, qui peuvent désormais s’appliquer à l’ensemble du réseau en quelques secondes.
Automatiser les processus ou repenser le réseau ?
La première tentation est de partir des processus existants et de les automatiser. C’est à mon avis la meilleure façon d’échouer.
Parce que cette approche perpétue une complexité opérationnelle et reste étroitement lié au fonctionnement des composants (routeurs, switchs, firewalls, …) alors que l’automatisation doit s’en abstraire et adresser directement le service que l’on veut mettre en place.
En d’autres termes, un réseau ne doit pas seulement être automatisé, il doit être repensé pour l’automatisation.
Réduire les données nécessaires
Un premier levier pour réduire la complexité consiste à identifier les données vraiment indispensables à la configuration d’un service, et à éliminer ou dériver toutes les autres.
- Réduction par la création de règles
Prenons un exemple simple : le déploiement d’un nouveau site dans une architecture L3VPN opérée par un fournisseur.
Classiquement, la configuration du routeur CE côté client comprend :
- Côté LAN : le segment IP local, l’adresse du routeur principal, celle du secondaire, et une adresse virtuelle partagée (VRRP par exemple),
- Côté WAN : un préfixe /30 ou /31 fourni par l’opérateur.
À première vue, cela fait six données à intégrer dans la solution d’automatisation. Mais en regardant de plus près :
- Les adresses du routeur principal et secondaire peuvent être déduites du segment LAN via des règles simples (par exemple : .1 et .2),
- L’adresse VRRP peut elle aussi être calculée (.254 par exemple).
- Réduction par l’utilisation de protocoles réseau
De même, nous notons également que le préfixe WAN peut être obtenu via DHCP, ou être distribué via IPCP à travers un overlay PPPoE.
Dans notre exemple, nous sommes arrivés à une seule donnée réellement nécessaire à fournir : le segment LAN.
Toutes les autres peuvent être générées dynamiquement ou extraites depuis le réseau en production.
C’est une réduction massive de la complexité pour notre solution d’automatisation. Et surtout, cela change le flux : les données non essentielles ne sont plus injectées dans les configurations réseau, elles sont exportées vers la supervision et le SI de l’entreprise.
D’un part la production est simplifiée, d’autre par, les équipes de supervision obtiennent une meilleure visibilité des événements réseaux.
Classer les données et définir les services
Une fois les données essentielles répertoriées, elles doivent être liées à un propriétaire afin de s’assurer de leur unicité. C’est dans cette phase qu’on s’éloigne des équipements pour adresser un service.
Par exemple, notre segment LAN sert à configurer un service de routage et s’applique à un site qui est une entité pouvant regrouper plusieurs routeurs.
Avec cette perspective, chaque site participant à notre service de routage doit posséder un segment LAN, la solution d’automatisation doit gérer la distribution de cette donnée vers les différents composants via un mécanisme d’héritage.
Notre solution est alors organisée selon un triptyque service, topologie, données.
Conclusion
L’automatisation n’est pas un vernis qu’on applique à une architecture existante. C’est une opportunité pour repenser les réseaux à la racine, avec un objectif clair : réduire les données nécessaires et répertorier les services.
C’est ainsi que l’on construit des réseaux plus simples, plus robustes, et réellement adaptés à l’ère de l’automatisation.