
Un routeur ne « comprend » pas vraiment une commande, ou du moins ne fait-il que sembler, comme un chat qui vous regarde parler sans ciller. Cette question m'a traversé l'esprit plus souvent que je ne l'admets, depuis que j'ai commencé à mélanger mon apprentissage de Python avec les rudiments du réseau Cisco. Débutante en informatique jusqu'à il n'y a pas si longtemps, je n'aurais jamais parié que l'automatisation réseau finirait par s'inviter dans mon vocabulaire du soir.
Petite précision avant d'aller plus loin : ce carnet contient quelques liens affiliés, et une commission peut m'être versée si un achat passe par eux, sans que cela change le prix que vous payez de votre côté. Je ne cite que ce qui a vraiment traversé mes soirées, comme la Formation au langage Python, celle par laquelle tout a commencé pour moi.
Cisco n'était qu'un logo poussiéreux au bureau
Tout a commencé un soir où j'avais fini mes exercices sur les listes et les dictionnaires, avec ce sentiment un peu triste d'avoir appris à faire des phrases sans personne à qui les dire. C'est en cherchant quoi faire de ces nouvelles phrases que je suis tombée sur l'automatisation réseau, l'idée que quelques lignes de code puissent aller donner des ordres à une machine à l'autre bout du monde, ou au moins de l'autre côté de mon appartement.
Cisco, pour moi, c'était un logo sur des boîtiers gris au bureau, rien de plus. Je ne savais pas que ces machines tournaient sous leur propre système, Cisco IOS, et qu'on pouvait leur parler en Python. Apprendre ça m'a fait l'effet d'apprendre à dresser un chien qui n'obéit qu'à un dialecte très précis, incompréhensible pour toute autre personne dans la pièce.

Une adresse IP ne pardonne aucune erreur
Après les fêtes, je me suis mise à vouloir comprendre comment les données circulent réellement, et c'est là que le vertige a commencé. VLAN, SSH, protocoles : ma tête de débutante saturait vite. Pour utiliser Python dans ce domaine, il fallait d'abord piger comment une adresse IP est construite — une structure de 32 bits coupée en quatre morceaux, qu'on appelle des octets. Dans ma tête, c'est devenu une recette très stricte : dépassez les doses, et le gâteau s'effondre.
J'ai passé une bonne partie d'une soirée à chercher pourquoi mon script refusait de se connecter, avant de comprendre que j'avais tapé l'adresse 192.168.1.256 — un octet ne dépasse jamais 255, point final. Je me suis sentie franchement bête, à fixer ce chiffre comme si j'essayais de faire tenir bien trop d'eau dans un verre bien trop petit. C'est le genre de soir où on se demande pourquoi une femme avec un ordinateur portable, en Auvergne, s'entête à vouloir parler à un commutateur virtuel.
Ouvrir un tunnel vers le réseau Cisco
Pour ne pas tout casser, j'ai fini par installer une version récente de Python sur mon vieux PC. J'avais déjà appris, un peu par la douleur, comment installer Python sur Windows sans faire de bêtises, mais cette fois l'enjeu était différent. Il ne s'agissait plus de trier des noms dans un tableur, mais d'ouvrir un tunnel sécurisé par le port SSH, ce fameux numéro 22 que j'ai fini par noter en gros dans mon carnet, pour pouvoir envoyer des commandes.
Avant d'en arriver là, j'avais essayé de regarder des tutoriels vidéo sur le réseau sans ouvrir mon ordinateur en même temps, persuadée que ça suffirait à faire entrer les idées toute seule. Ça n'a strictement rien donné : les VLAN et les protocoles glissaient sur moi comme sur une poêle mal nettoyée, sans qu'aucune commande ne s'imprime vraiment. Il a fallu que je remette les mains sur le clavier pour que quoi que ce soit tienne.
Netmiko m'a évité de réinventer le téléphone
Ça faisait à peu près cinq semaines que je butais sur ce genre de blocage quand je suis tombée sur Netmiko, une bibliothèque Python qui s'occupe de toute la partie technique de la connexion à votre place. Avant ça, j'avais l'impression de devoir construire moi-même un téléphone avant de pouvoir passer un appel. Avec Netmiko, il ne restait plus qu'à composer le numéro.
Le terminal a fini par afficher exactement le texte que j'attendais, et pendant deux ou trois secondes, je suis restée sans un mot devant l'écran, pas un soupir, pas un juron, rien, juste ce silence un peu bête qu'on a quand une chose qu'on n'espérait plus finit par marcher. Puis je me suis redressée d'un coup sur ma chaise, presque surprise par mon propre geste.
Ce n'était qu'un nom de routeur affiché à l'écran, mais ça m'a semblé être la preuve que mon code avait traversé quelque chose d'invisible pour obtenir une réponse. J'avais enfin l'impression de débuter en Python pour de vrai, en touchant à quelque chose de concret plutôt qu'à des exercices abstraits.

Un script qui casse tout un réseau
C'est à ce moment que j'ai saisi un avertissement que les experts oublient souvent de donner aux débutants : pour les techniciens réseau en astreinte, ce genre de script est terriblement risqué. Une simple erreur de syntaxe dans une boucle Python peut envoyer une commande de déconnexion à des dizaines de routeurs en une poignée de secondes. Sans un environnement de test à part, ça peut couper tout un réseau d'un coup — la différence entre rater le sel d'un plat pour deux personnes et gâcher un banquet entier par mégarde.
Mon collègue Valérian, qui partage mon bureau depuis un moment, a une façon bien à lui de deviner mes soirées ratées : il revient du distributeur avec deux cafés, le sien et le mien, sans même demander si j'en veux un. Il ne comprend rien à Python, mais il sait repérer une tête de mauvaise nuit passée sur un message d'erreur.
Des ponts plutôt que des murs
Il y a peu, j'ai commencé à feuilleter le programme de la Formation Cisco : réseaux et systèmes. Ce n'est pas encore pour maintenant, j'ai encore trop à apprendre sur les bases de Python elles-mêmes, mais ça me donne un horizon vers lequel avancer. Mon apprentissage se fait par couches, un peu comme un oignon qu'on épluche sans être vraiment sûr d'arriver au centre — et oui, ça me fait pleurer un peu aussi, parfois au sens propre.
Je me doute bien que je ne deviendrai probablement jamais ingénieure réseau. Mais comprendre comment Python parle à ces machines me donne un sentiment de contrôle que je n'attendais pas. Je repense parfois à mon envie de choisir JavaScript au tout début, sans regretter Python pour autant : il y a une clarté dans ce langage qui me rassure quand le reste — masques de sous-réseau, passerelles par défaut — ressemble encore à un épais brouillard d'acronymes.

Théophane, un lecteur fidèle qui commente depuis Lyon, m'a récemment rappelé dans un message que ce carnet touche aussi des gens qui ont largement dépassé la vingtaine — ça m'a fait sourire, parce que je l'oublie parfois moi-même en écrivant. Ce genre de message compte plus que je ne saurais le dire, un soir où le code refuse d'avancer.
Mon carnet de notes est maintenant taché de café et couvert de schémas de câbles qui ressemblent à des spaghettis mal rangés. Mais quand je referme l'ordinateur le soir, je ne vois plus seulement des lignes de code : je vois des ponts invisibles entre mon quotidien et tout un monde de serveurs et de routeurs que je ne soupçonnais pas il y a quelques mois. Je me souviens d'avoir ruminé cette histoire de sous-réseaux en faisant la queue au marché du Brézet un samedi matin, l'esprit ailleurs pendant que je choisissais des légumes, incapable de décrocher du problème même loin de l'écran.
Si vous aussi vous tâtonnez après le travail, sachez que chaque erreur de connexion n'est jamais qu'une étape de plus avant ce moment où la machine finit par répondre. Pour un point de départ solide sur vos propres soirées, je ne peux que pointer vers la Formation au langage Python — c'est par là que tout a commencé pour moi.
Et vous, quelle commande — ou quel résultat à l'écran — vous a fait sursauter sur votre chaise pour la toute première fois ?