Pour les besoins du réseau Lothaire (aka « mon boulot »), j'ai écrit un service web permettant de piloter Exabgp (logiciel permettant de faire des annonces de routes en BGP. C'est du Software-Defined Networking) afin de lui ajouter ou de lui retirer des routes de façon simple, afin de faire du RTBH (Remotely Triggered Black Hole).
Ce logiciel (libre, bien sûr, comment pourrait-il en être autrement ?), s'appelle Erco (Exabgp ROutes COntroller). Le site de présentation est https://erco.xyz, et une démo est disponible sur https://erco.xyz/demo/.
Soyez indulgents sur le temps de chargement du site, c'est hébergé chez moi, derrière de l'ADSL.
Le service expose une API REST, ce qui permet à Erco d'être piloté par des programmes.
Pour les besoins du service, j'ai écrit un programme pour exposer l'API d'Exabgp, et incidemment, j'ai écrit un client en ligne de commande pour cette API.
Les sources d'Erco sont sur https://git.framasoft.org/luc/erco.
Pour les curieux de technique, le logiciel est écrit en Perl avec le framework Mojolicious (bien sûr, comment pourrait-il en être autrement ? 1).
1 : c'est pas parce qu'on n'est pas vendredi qu'on n'a pas le droit de troller un peu 😛
Ok mais cékoidonc Exabgp ?
C’est pour annoncer des routes en BGP (un truc de barbu administrateur réseau). J’ai mis à jour l’article.
Juste un point de détail : est-ce que le SDN ne traite pas justement des couches inférieures à la couche Réseau? C’est juste que c’est la première fois que je vois BGP (qui n’est pas tout jeune) rangé dans le Software-Defined Networking (qui me semble un concept nettement plus récent).
Ou suis-je gouré?
Je me contente de faire un raccourci à ce que dit le README d’Exabgp :
En fait on utilise Exabgp, un soft, pour manipuler les routes annoncées, via des annonces BGP émises par Exabgp. Du coup, ça me semble bien correspondre à du SDN 😉