
Il y a ce moment. Celui que tous les ingénieurs réseau connaissent. Tu viens de modifier une policy BGP. Tu as relu trois fois la configuration. Tu as vérifié les filtres. Tu es raisonnablement sûr de toi. Mais quand tu appuies sur “commit”… tu retiens ton souffle. Parce que dans un réseau complexe, la moindre modification peut provoquer un effet domino invisible. Un préfixe non annoncé. Un flux bloqué. Un chemin suboptimal. Un blackhole discret.
Le problème du réseau moderne, ce n’est pas qu’il est mal configuré. C’est qu’il est trop interconnecté pour être intuitif.Et c’est précisément là que Batfish entre en scène.
Ce que Batfish fait réellement
Batfish n’est pas un simulateur graphique. Ce n’est pas un GNS3 amélioré. Ce n’est pas un simple parser de configuration. C’est un moteur d’analyse formelle qui prend les configurations réelles de ton infrastructure et reconstruit mathématiquement le comportement du réseau.- Tables de routage calculées
- Propagation BGP
- OSPF / EIGRP
- ACL et policies
- NAT
- Reachability
Bloc technique : vérifier la reachability d’un serveur
Imaginons que tu veuilles vérifier si un serveur en VLAN 30 est accessible depuis un réseau utilisateur en VLAN 10.from pybatfish.client.commands import *
from pybatfish.question import bfq
load_snapshot("mon_reseau")
answer = bfq.reachability(
headers={
"srcIps": "10.10.10.0/24",
"dstIps": "192.168.30.15"
},
actions="success"
).answer()
print(answer.frame())
Résultat : Batfish te dit si le trafic est autorisé, bloqué, ou s’il existe un point de rupture dans la chaîne. Avant production.Bloc technique : détecter un blackhole
Les blackholes sont parmi les bugs réseau les plus sournois. Le trafic part… et disparaît.bfq.blackhole(
headers={
"dstIps": "172.16.50.0/24"
}
).answer().frame()
Si une route existe mais que le trafic n’atteint jamais sa destination, Batfish le détecte immédiatement.Bloc technique : comparer deux états du réseau
Tu modifies une policy BGP. Tu veux savoir l’impact exact sur les routes annoncées.init_snapshot("avant_modif")
init_snapshot("apres_modif")
bfq.routes(
compareTo="avant_modif"
).answer().frame()
Batfish te montre précisément quelles routes changent. Pas à l’intuition. Pas à la supposition. Avec une preuve.Le réseau devient testable
Les développeurs ont des tests unitaires. Les DevOps ont des pipelines CI/CD. Pendant longtemps, le réseau a fonctionné sur la confiance et l’expérience. Batfish change ça.- Pull request réseau
- Analyse automatique
- Validation des flux critiques
- Blocage si violation
Scénario réel : éviter une catastrophe BGP
Une entreprise modifie un filtre d’export BGP sur son edge principal. Sans validation, cela aurait supprimé l’annonce d’un préfixe interne vers trois datacenters secondaires. Batfish a détecté la perte de reachability avant le déploiement. Le commit a été bloqué.Ce n’est pas l’outil qui sauve le réseau. C’est la visibilité qu’il apporte.





