Project

General

Profile

BIRD » History » Version 5

« Previous - Version 5/55 (diff) - Next » - Current version
Laurent GUERBY, 03/06/2012 06:03 AM


BIRD

Implémentation GPL du protocole BGP
http://bird.network.cz/

Volontaires

  • Laurent GUERBY
  • autre

HOWTO

  • ou intervenir sur le code de BIRD ?
  • proposition ici

Spécification du projet

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

From: Benjamin Cama
To: Laurent GUERBY
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