FRRouting

FRRouting

FRRouting
FRRouting

Informations
Développé par Fondation LinuxVoir et modifier les données sur Wikidata
Première version
Dernière version 10.7.0 ()[1]Voir et modifier les données sur Wikidata
Dépôt https://github.com/frrouting/frr
Écrit en C
Système d'exploitation LinuxVoir et modifier les données sur Wikidata
Type Logiciel de routageVoir et modifier les données sur Wikidata
Licence GPLv2
Documentation https://docs.frrouting.org/
Site web https://frrouting.org/

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].

Histoire

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].

Architecture

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].

Protocoles pris en charge

FRRouting prend en charge plusieurs protocoles de routage et de mécanismes associés, notamment[2]:

Fonctionnement

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].

Cas d'utilisation

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].

Fonctionnalités

Parmi les principales fonctionnalités de FRRouting firurent[2]:

Développement

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].

Voir aussi

Références

  1. « Release 10.7.0 », (consulté le )
  2. a b c d et e « FRRouting User Guide — FRR latest documentation », sur docs.frrouting.org (consulté le )
  3. a et b « FRRouting », sur frrouting.org (consulté le )
  4. a et b FRRouting/frr, FRRouting, (lire en ligne)
  5. « Releases – FRRouting », sur frrouting.org (consulté le )
  6. a b c et d « Zebra — FRR latest documentation », sur docs.frrouting.org (consulté le )
  7. a et b « Netlink Handbook — The Linux Kernel documentation », sur docs.kernel.org (consulté le )
  8. a et b « FRRouting Developer’s Guide — FRR latest documentation », sur docs.frrouting.org (consulté le )
  9. « MGMTd (Management Daemon) — FRR latest documentation », sur docs.frrouting.org (consulté le )

Content Disclaimer

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.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.