Mon Labo Python

Découvrir les bases du réseau Cisco avec le langage Python

Découvrir les bases du réseau Cisco avec le langage Python

Il est presque minuit et mon écran me nargue avec un message d'erreur rouge vif qui refuse de disparaître. Je suis assise à ma table de cuisine à Clermont-Ferrand, entourée de miettes de pain de mie et d'une tasse de thé oubliée, essayant désespérément de faire en sorte que mon script Python « parle » à un routeur virtuel.

En toute franchise : ce carnet contient quelques liens affiliés. Quand un achat passe par eux, une commission m'est versée — le prix que vous payez reste exactement le même. Je ne mentionne que les ressources comme la Formation au langage Python qui ont réellement accompagné mes soirées d'apprentissage depuis que j'ai décidé de ne plus avoir peur du code.

Quand le code rencontre les câbles (virtuels)

Tout a commencé un soir de novembre particulièrement pluvieux. J'avais terminé mes premiers exercices sur les listes et les dictionnaires, et je me sentais un peu comme une enfant qui vient d'apprendre à faire des phrases mais qui n'a personne à qui parler. J'ai alors entendu parler de l'automatisation réseau. L'idée que quelques lignes de code puissent aller configurer une machine à l'autre bout du monde (ou au moins à l'autre bout de mon salon) me fascinait.

C'est là que j'ai plongé dans l'univers Cisco. Pour moi, Cisco, c'était juste un logo sur les boîtiers poussiéreux au bureau. Je ne savais pas que ces machines avaient leur propre système d'exploitation, le Cisco IOS, et qu'on pouvait leur donner des ordres en Python. C'est un peu comme si j'apprenais à dresser un chien qui ne parle qu'un dialecte très spécifique du Groenlandais.

Cahier de notes avec schémas de réseaux informatiques et adresses IP sur une table.

Le mur des acronymes et la structure IPv4

Juste après les fêtes de la nouvelle année, j'ai commencé à m'intéresser sérieusement à la manière dont les données circulent. C'est là que le vertige m'a prise. VLAN, SSH, protocoles... Mon cerveau de débutante saturait. J'ai réalisé que pour utiliser Python dans ce domaine, il fallait d'abord comprendre comment une adresse IP est construite. On m'a expliqué qu'une adresse IPv4, c'est une structure de 32 bits divisée en 4 octets. Pour moi, c'est devenu une sorte de recette de cuisine très stricte : si on dépasse les doses, le gâteau s'effondre.

J'ai passé deux heures à essayer de comprendre pourquoi mon script ne se connectait pas, pour finalement réaliser que j'avais tapé l'adresse IP 192.168.1.256. Un octet ne peut pas dépasser 255. C'est impossible, physiquement et logiquement. Je me suis sentie tellement bête, fixant ce chiffre comme si j'avais essayé de faire entrer un litre d'eau dans une bouteille de 50 centilitres. C'est le genre de moment où l'on se demande : « Je suis juste une femme avec un ordinateur portable en Auvergne, pourquoi est-ce que j'essaie de parler à un commutateur virtuel ? »

Pour m'aider à ne pas tout casser, j'ai installé la version 3.12 de Python sur mon vieux PC. J'avais déjà lu comment installer Python sur Windows sans faire de bêtises, mais là, l'enjeu était différent. Il ne s'agissait plus de trier des noms dans un fichier Excel, mais d'ouvrir un tunnel sécurisé via le port standard SSH (le numéro 22, je l'ai noté en gros sur mon carnet) pour envoyer des commandes.

La magie de Netmiko et le déclic de la mi-mars

Vers la mi-mars, au moment où le temps commençait enfin à se radoucir, j'ai découvert une bibliothèque Python appelée Netmiko. C'est un outil magique qui s'occupe de la partie « technique » de la connexion pour vous. Avant cela, j'avais l'impression de devoir construire moi-même le téléphone avant de pouvoir passer un appel. Avec Netmiko, je n'avais plus qu'à composer le numéro.

Je me souviens très précisément du moment où tout a fonctionné. Je tenais mon mug en céramique, le sentant froid contre ma paume car j'avais encore oublié de boire mon thé, attendant qu'une erreur de « timeout » s'affiche sur mes carreaux de cuisine éclairés par la lumière bleue de l'écran. Et là, au lieu de l'erreur, le terminal a affiché le nom du routeur : 'Router-Clemont-01'.

J'ai eu un sursaut, j'ai pris une grande inspiration et je me suis redressée d'un coup sur ma chaise. Ce n'était qu'un nom sur un écran, mais pour moi, c'était la preuve que mon code avait traversé l'invisible pour obtenir une réponse. J'avais réussi à débuter en Python pour de vrai, en touchant à quelque chose de tangible.

Terminal Python affichant une connexion réussie à un routeur virtuel Cisco.

L'angle mort de l'automatisation

C'est ici que j'ai compris une chose importante, une sorte de mise en garde que les experts oublient souvent de mentionner aux débutants. Pour les techniciens réseau qui sont en astreinte critique, cette approche par script est terriblement risquée. Si vous faites une erreur de syntaxe dans votre boucle Python, vous pouvez envoyer une commande de déconnexion à 50 routeurs en une seconde. Sans un environnement de test isolé, vous pouvez provoquer une coupure réseau immédiate et massive. C'est la différence entre rater son sel dans un plat pour deux et empoisonner tout un banquet par mégarde.

Construire des ponts plutôt que des murs

Il y a quelques semaines, j'ai commencé à feuilleter le programme de la Formation Cisco : réseaux et systèmes. Ce n'est pas encore pour tout de suite, car j'ai encore tellement à apprendre sur les bases de Python elles-mêmes, mais cela me donne un horizon. Je vois bien que mon apprentissage se fait par couches, comme un oignon (et oui, je pleure parfois aussi un peu en l'épluchant).

Je me rends compte que je ne serai probablement jamais ingénieur réseau. Mais comprendre comment Python interagit avec ces machines me donne un sentiment de contrôle incroyable. C'est comme si j'avais enfin trouvé la notice de la plomberie de l'internet. Parfois, je repense à mon envie de choisir JavaScript au début, mais je ne regrette pas Python. Il y a une clarté dans ce langage qui me rassure quand tout le reste — les masques de sous-réseau, les passerelles par défaut — semble n'être qu'un brouillard d'acronymes.

Pauline, débutante en programmation, souriant devant ses progrès en automatisation réseau.

Mon carnet de notes est maintenant taché de café et rempli de schémas de câbles qui ressemblent à des spaghettis. Mais quand je ferme mon ordinateur portable le soir, je ne vois plus seulement des lignes de code. Je vois des ponts invisibles que j'ai construits entre ma table de cuisine et un monde de serveurs et de routeurs. Si vous aussi vous tâtonnez après le travail, sachez que chaque erreur de connexion est juste une étape de plus vers ce moment où, enfin, la machine vous répond. Si vous voulez un point de départ solide pour vos propres soirées, je ne peux que vous conseiller de jeter un œil à la Formation au langage Python, c'est là que tout a commencé pour moi.

Et vous, quelle est la commande qui vous a fait bondir de votre chaise pour la première fois ?

Articles connexes