FRRouting
FRRouting (FRR) est une suite logicielle open-source de protocoles de routage. Elle permet à un système d'exploitation de remplir les fonctions d'un routeur en mettant en œuvre plusieurs protocoles de routage dynamique ainsi que différents mécanismes associés au plan de contrôle. Développé principalement pour les systèmes Linux et BSD, FRRRouting peut également être intégré à des équipements réseau, des systèmes embarqués et des plateformes de virtualisation[2].
Le projet est distribué sous licence libre et est développé par une communauté de contributeurs ainsi que plusieurs organisations impliquées dans le développement de logiciels réseau. Il est utilisé dans les centres de données, les réseaux opérateurs, les laboratoires de recherche et les environnements de cloud computing[3].
FRRouting est issu d'un fork du projet Quagga réalisé en 2016. A cette époque, plusieurs développeurs et entreprises souhaitaient accélérer le développement du logiciel, améliorer le processus de revue de code et intégrer plus rapidement de nouvelles fonctionnalités destinées aux réseaux modernes[4].
Le nouveau projet adopte un modèle de développement communautaire ouvert et reçoit rapidement le soutien de plusieurs acteurs de l'industrie des réseaux. Depuis sa création, FRRouting connaît un rythme de développement soutenu et remplace progressivement Quagga dans de nombreuses distributions Linux ainsi que dans plusieurs systèmes d'exploitation réseau[3].
Au fil des versions, le projet ajoute la prise en charge de nombreux protocoles récents, notamment Segment Routing, EVPN, BGP FlowSpec, BFD ou encore diverses extensions de MPLS[5].
FRRouting adopte une architecture modulaire reposant sur plusieurs processus indépendants communiquant entre eux via un daemon central appelé Zebra[6].
Le démon Zebra assure l'interface entre les protocoles de routage et le noyau du système d'exploitation. Il reçoit les routes calculées par les différents protocoles, sélectionne les meilleures routes selon les informations reçues et les installe dans la table de routage du système au moyen des interfaces du noyau[7],[6].
Chaque protocole est implémenté par un daemon dédié, permettant une séparation des responsabilités et une isolation des composants. Cette architecture facilite également le développement de nouvelles fonctionnalités et limite les conséquences d'une défaillance d'un protocole sur les autres services de routage[8].
Les différents processus sont administrés à travers une interface en ligne de commande commune inspirée de celle des équipements Cisco IOS. Les versions récentes utilisent un daemon de gestion centralisé (mgmtd) permettant une configuration unifiée de l'ensemble des protocoles[9].
FRRouting prend en charge plusieurs protocoles de routage et de mécanismes associés, notamment[2]:
Chaque daemon échange les informations de routage avec ses voisins selon le protocole correspondant. Les routes apprises sont transmises au daemon Zebra, qui les compare aux routes existantes et sélectionne les meilleurs chemins en fonction des métriques, des distances administratives et des règles de sélection propres à chaque protocole[2].
Une fois la décision prise, Zebra installe les routes retenues dans la table de routage du kernel Linux au moyen de l'interface Netlink[6],[7].
FRRouting intervient uniquement dans le plan de contrôle du réseau. Le transfert effectif des paquets est assuré par le noyau du système d'exploitation, ce qui permet de bénéficier des performances du plan de données du système hôte[6].
FRRouting est utilisé dans de nombreux contextes:
Il est notamment employé comme composant de routage dans plusieurs distributions réseau, plateformes Kubernetes, solutions de virtualisation réseau et systèmes d'exploitation spécialisés[2].
Parmi les principales fonctionnalités de FRRouting firurent[2]:
Le développement de FRRouting est coordonné sur une plateforme publique de gestion de code source (Git). Le projet suit un cycle de publication régulier comprenant des versions de maintenance ainsi que des versions majeures introduisant de nouvelles fonctionnalités[8].
Le code source est principalement écrit en langage C et fait l'objet d'une intégration continue comprenant des tests automatisés, des analyses statiques et des tests d'interopérabilité avec différents protocoles de routage[4].
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.