[technique] [AIDE] Proposition d'amelioration pour le logiciel libre BIRD a coder pour FDN et tetaneutral.net

Laurent GUERBY laurent at guerby.net
Mar 6 Mar 06:01:29 CET 2012


Bonjour,

FDN aurait besoin d'un petit developement sur le logiciel libre BIRD
qui est une implémentation du protocole BGP que tetaneutral.net utilise
aussi sur son infrastructure.

J'ai crée un ticket sur chiliproject ainsi qu'une page wiki

http://chiliproject.tetaneutral.net/issues/158
http://chiliproject.tetaneutral.net/projects/tetaneutral/wiki/BIRD

Si vous êtes interessé(e) par ce projet vous pouvez vous inscrire  sur
chiliproject (en haut a droite "Register") et ensuite vous mettre en
"watch" (en haut a droite aussi) sur le ticket et la page wiki pour
recevoir des courriels lors des mises a jour.

Temps estimé une semaine pour quelqu'un qui connait le C mais pas le
code de BIRD.

Sincèrement,

Laurent

PS: je vais faire passer a la liste toulibre aussi.

-------- Forwarded Message --------
From: Benjamin Cama
To: Laurent GUERBY <laurent at guerby.net>
Cc: adminsys 
Subject: Proposition d'amélioration pour BIRD
Date: Tue, 06 Mar 2012 01:18:31 +0100

Bonjour,

BIRD est un démon de routage qui est utilisé chez FDN pour gérer le
routage de ses abonnés, de ses services, et également des FAI locaux
avec qui il partage sa collecte ADSL. Ce démon est configuré sur deux
machines qui collectent les lignes ADSL avec basculement automatique
(failover) de l'une à l'autre en cas de besoin ou de problème. Ces
lignes sont collectées en L2TP grâce au logiciel l2tpns.

Actuellement, l2tpns ajoute/supprime les routes des abonnés quand il se
connectent/déconnectent automatiquement, dans la table de routage du
kernel. BIRD extrait ces informations du kernel pour les propager en BGP
à d'autres routeurs. Les FAI locaux ayant des interconnexions diverses
avec FDN et des adressages différents, filtrer les routes ainsi
importées du kernel fait intervenir des filtres qui peuvent devenir
complexes.

Une solution serait de filtrer uniquement sur le « protocole » de la
route, ainsi qu'indiqué par le kernel. En effet, chaque route contenue
dans les tables de routage du kernel contient un champ qui indique le
« protocole » qui a ajouté cette route, et l2tpns renseigne cette
information quand il en ajoute une (c'est une version patchée pour faire
ça, cf http://dolka.fr/code/l2tpns.git ). Cela est visible par le
mot-clé « proto » dans les routes affichées par l'utilitaire iproute2
(le protocole n'est pas visible avec l'ancien utilitaire « route »).
Nous pourrions ainsi importer les routes de l2tpns uniquement en
filtrant sur cet attribut.

Malheureusement, BIRD ne sait actuellement pas filtrer sur cet attribut
(cf le thread
http://www.mail-archive.com/bird-users@atrey.karlin.mff.cuni.cz/msg01425.html 
entre autres). Le travail consisterait donc en l'implémentation d'un 
attribut « kernel protocol » (ou autre meilleur nom) dans les 
“route entry” de BIRD afin de pouvoir filtrer dessus.

Le site de BIRD est http://bird.network.cz/ et présente leur dépôt git
où se trouve le code. Une bonne compréhension des principes de BIRD
(assez déroutant quand on est habitué à d'autres démons de routage) est
nécessaire avant de se lancer dans le projet.

Merci et bon courage à celui qui voudra bien se lancer là-dedans !

benjamin






Plus d'informations sur la liste de diffusion technique