Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
holo — Suite de protocoles de routage basée sur Rust implémentant BGP, OSPF, IS-IS, RIP et VRRP avec une configuration basée sur YANG, automatisation gNMI/gRPC, et fuzzing intégré pour les réseaux à grande échelle et axés sur l'automatisation. | Kitploit
Outils/GitHubGitHub/holo-routing/holo
Cartographie RéseauAudit de ConfigurationFuzzingSécurité RéseauAnalyse DNS
GitHubholo-routing/holo

holo

Suite de protocoles de routage basée sur Rust implémentant BGP, OSPF, IS-IS, RIP et VRRP avec une configuration basée sur YANG, automatisation gNMI/gRPC, et fuzzing intégré pour les réseaux à grande échelle et axés sur l'automatisation.

Voir le dépôt
535464il y a 2 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

MIT licensed Build Status codecov Discord

Holo est une suite de protocoles de routage conçue pour prendre en charge les réseaux à grande échelle et automatisés.

Pour une description de ce qu'est un protocole de routage, veuillez consulter cette page Wikipedia.

Fonctionnalités

Focus sur la simplicité et l'exactitude

L'objectif principal de Holo est de créer une base de code fiable, facile à maintenir et extensible. Avec la complexité croissante des protocoles de routage et de leurs extensions, il est crucial de disposer d'implémentations de protocoles de routage construites sur des fondations solides. À cette fin, la base de code de Holo privilégie la simplicité, la modularité et une documentation approfondie. Grâce à la rigueur du compilateur Rust et aux nombreux tests unitaires, on s'attend à ce que la plupart des régressions soient détectées tôt dans le cycle de développement des nouvelles fonctionnalités. Pour plus de détails, veuillez consulter la page Architecture.

Prêt pour l'automatisation

Holo a été développé spécifiquement pour les réseaux à grande échelle et pilotés par l'automatisation qui nécessitent une configuration et une surveillance programmables à l'aide de données structurées et modélisées. Holo implémente nativement les modules YANG standard de l'IETF et prend en charge plusieurs interfaces de gestion, y compris les interfaces natives gRPC et gNMI. De plus, Holo dispose d'une CLI autonome qui génère dynamiquement des commandes à partir des modules YANG et communique avec le démon Holo via gRPC.

Les modifications apportées à la configuration sont traitées comme des transactions, garantissant que soit toutes les modifications sont appliquées, soit aucune. Cette fonctionnalité est un facilitateur important de l'automatisation du réseau car elle élimine le besoin de récupération d'erreur dans les applications de gestion. Holo prend également en charge les transactions à l'échelle du réseau impliquant plusieurs périphériques réseau. Des capacités supplémentaires d'automatisation du réseau incluent les commits confirmés et la prise en charge du rollback de configuration.

Sécurité

Grâce au fait d'être écrit dans un langage sûr pour la mémoire, Holo est immunisé contre une grande variété de bugs liés à la mémoire et de vulnérabilités de sécurité. Outre les garanties de sécurité fournies par Rust, le démon Holo abandonne également ses privilèges au démarrage. Pour certaines opérations, comme la liaison de sockets, les capacités Linux sont utilisées pour obtenir la permission minimale requise pour le moins de temps possible.

Holo offre également une protection robuste contre le vecteur d'attaque le plus courant dans les piles de protocoles de routage : les attaques par déni de service (DoS) via l'entrée de paquets malveillants. Les paquets entrants sont décodés dans des tâches asynchrones isolées et supervisées, permettant aux implémentations de protocole de récupérer gracieusement des paniques, par exemple en ignorant les paquets mal formés ou en fermant uniquement le flux TCP affecté, sans compromettre la stabilité de l'ensemble du démon. De plus, grâce à la conception modulaire de Holo et au support intégré du fuzzing guidé par couverture, la plupart des bugs d'analyse sont censés être détectés et corrigés pendant le développement.

Implémentations de protocoles intégrées

Certains protocoles, tels que OSPF et RIP, ont différentes versions qui sont largement déployées, généralement une pour IPv4 et une autre pour IPv6. Holo exploite les génériques de Rust pour avoir des implémentations de protocoles indépendantes de la version, où la plupart du code est partagé par les différentes versions de protocole. Cette approche réduit le coût de maintenance de ces protocoles et facilite la livraison de nouvelles fonctionnalités qui profitent à toutes les versions du protocole.

Parallélisme

Holo utilise abondamment les opérations asynchrones et s'appuie sur le runtime Tokio pour ordonnancer les tâches et les exécuter sur un pool de threads. Afin d'obtenir de meilleures performances, les requêtes d'E/S et les algorithmes gourmands en CPU sont délégués à des tâches séparées, maximisant l'utilisation de tous les cœurs CPU disponibles. Le support d'un code indépendant du runtime est prévu pour l'avenir, une fois que les abstractions nécessaires seront standardisées par l'équipe du langage Rust.

Journalisation structurée

Holo génère des messages de journal contenant des données structurées, qui peuvent être présentés dans divers formats tels que JSON, texte, etc. Comme la journalisation est effectuée via la façade tracing, différents abonnés tracing peuvent être utilisés pour répondre aux besoins des utilisateurs. Par exemple, la journalisation peut être dirigée vers un fichier, journald, un collecteur OpenTelemetry centralisé, ou toute combinaison de ces options avec des niveaux de journalisation potentiellement variables.

Bugs reproductibles

Holo offre une fonctionnalité d'enregistrement et de rejeu, permettant une reproduction facile de tout bug signalé par un utilisateur. Le démon Holo peut être configuré pour enregistrer le cycle de vie complet d'une instance de protocole dans un fichier. Ce fichier peut ensuite être rejoué sur une autre machine, reproduisant la même séquence d'événements. Alors qu'une session d'enregistrement peut durer des heures ou des jours, le processus de rejeu ne devrait prendre que quelques secondes. Cela est possible grâce à l'architecture modulaire de Holo, où toutes les opérations liées au temps et aux E/S sont effectuées dans des tâches séparées et abstraites sous forme de messages d'événements.

Installation

Pour des instructions détaillées sur l'installation, veuillez consulter le fichier INSTALL.md.

Plateformes supportées

Actuellement, Holo n'est compatible qu'avec les systèmes d'exploitation Linux. Le support de WebAssembly est prévu pour l'avenir.

Pour commencer

La manière la plus simple de commencer à utiliser Holo est d'utiliser des conteneurs Docker pré-construits en combinaison avec le logiciel containerlab. Vous pouvez trouver une variété de topologies réseau pré-configurées à ce lien. Ces topologies peuvent être déployées avec une seule commande, vous permettant de tester Holo dans diverses configurations réseau, y compris les tests d'interopérabilité avec d'autres implémentations.

De plus, Holo peut être utilisé partout où une pile de routage est nécessaire, comme dans les routeurs logiciels, à condition que l'ensemble des fonctionnalités corresponde à vos besoins spécifiques.

Conformité

Holo prend en charge les normes Internet suivantes :

BFD
  • RFC 5880 - Détection de transfert bidirectionnel (BFD)
  • RFC 5881 - Détection de transfert bidirectionnel (BFD) pour IPv4 et IPv6 (saut unique)
  • RFC 5882 - Application générique de la détection de transfert bidirectionnel (BFD)
  • RFC 5883 - Détection de transfert bidirectionnel (BFD) pour les chemins multisauts
BGP
  • RFC 1997 - Attribut de communautés BGP
  • RFC 2385 - Protection des sessions BGP via l'option de signature MD5 TCP
  • RFC 2545 - Utilisation des extensions multiprotocoles BGP-4 pour le routage interdomaine IPv6
  • RFC 2918 - Capacité de rafraîchissement des routes pour BGP-4
  • RFC 4271 - Protocole de passerelle frontière 4 (BGP-4)
  • RFC 4360 - Attribut de communautés étendues BGP
  • RFC 4486 - Sous-codes pour le message de notification de cessation BGP
  • RFC 4760 - Extensions multiprotocoles pour BGP-4
  • RFC 5082 - Mécanisme de sécurité TTL généralisé (GTSM)
  • RFC 5492 - Annonce de capacités avec BGP-4
  • RFC 5668 - Communauté étendue BGP spécifique à un AS de 4 octets
  • RFC 5701 - Attribut de communauté étendue BGP spécifique à une adresse IPv6
  • RFC 6286 - Identifiant BGP unique à l'échelle du système autonome pour BGP-4
  • RFC 6608 - Sous-codes pour l'erreur de machine à états finis BGP
  • RFC 6793 - Support BGP pour l'espace de numérotation des systèmes autonomes (AS) à quatre octets
  • RFC 7606 - Gestion des erreurs révisée pour les messages UPDATE BGP
  • RFC 7607 - Codification du traitement de l'AS 0
  • RFC 8092 - Attribut de grandes communautés BGP
  • RFC 8212 - Comportement par défaut de propagation des routes BGP externes (EBGP) sans politiques
  • RFC 8642 - Comportement des politiques pour les communautés BGP bien connues
  • RFC 9774 - Dépréciation de AS_SET et AS_CONFED_SET dans BGP
IS-IS
  • ISO/IEC 10589 - Technologies de l'information — Télécommunications et échange d'informations entre systèmes — Protocole d'échange d'informations de routage intra-domaine entre système intermédiaire pour une utilisation avec le protocole fournissant le service réseau en mode sans connexion (ISO 8473)
  • RFC 1195 - Utilisation de l'IS-IS OSI pour le routage dans les environnements TCP/IP et doubles
  • RFC 3719 - Recommandations pour les réseaux interopérables utilisant le système intermédiaire à système intermédiaire (IS-IS)
  • RFC 3787 - Recommandations pour les réseaux IP interopérables utilisant le système intermédiaire à système intermédiaire (IS-IS)
  • RFC 5120 - M-ISIS : Routage multi-topologie (MT) dans les systèmes intermédiaires à systèmes intermédiaires (IS-IS)
  • RFC 5301 - Mécanisme d'échange dynamique de noms d'hôtes pour IS-IS
  • RFC 5303 - Établissement de voisinage à trois voies pour les adjacences point à point IS-IS
  • RFC 5304 - Authentification cryptographique IS-IS
  • RFC 5305 - Extensions IS-IS pour l'ingénierie du trafic
  • RFC 5308 - Routage IPv6 avec IS-IS
  • RFC 5310 - Authentification cryptographique générique IS-IS
  • RFC 6232 - Identification de l'origine des purges TLV pour IS-IS
  • RFC 6233 - Extension du registre IS-IS pour les purges
  • RFC 7308 - Groupes administratifs étendus dans l'ingénierie du trafic MPLS (MPLS-TE)
  • RFC 7602 - TLV de numéro de séquence étendu IS-IS
  • RFC 7794 - Attributs de préfixe IS-IS pour l'accessibilité IPv4 et IPv6 étendue
  • RFC 7917 - Balises administratives de nœud publicitaires dans IS-IS
  • RFC 7981 - Extensions IS-IS pour la publicité des informations du routeur
  • RFC 7987 - Durée de vie restante minimale IS-IS
  • RFC 8401 - Support de la réplication explicite d'index de bits (BIER) via IS-IS
  • RFC 8405 - Algorithme de délai d'attente SPF (Shortest Path First) pour les IGP à état de liens
  • RFC 8491 - Signalisation de la profondeur maximale SID (MSD) à l'aide d'IS-IS
  • RFC 8570 - Extensions de métriques d'ingénierie du trafic (TE) IS-IS
  • RFC 8667 - Extensions IS-IS pour le routage par segments
  • RFC 8918 - Gestion des TLV invalides dans IS-IS
  • RFC 9479 - Attributs de liaison spécifiques à l'application IS-IS
  • draft-ietf-bier-lsr-non-mpls-extensions-03 - Extensions LSR pour l'encapsulation BIER non-MPLS
  • draft-ietf-lsr-distoptflood-12 - Réduction de l'inondation distribuée IS-IS
  • draft-westphal-lsr-isis-database-checksumming-00 - Empreinte de base de données IS-IS
MPLS LDP
  • RFC 5036 - Spécification LDP
  • RFC 5561 - Capacités LDP
  • RFC 5918 - FEC (Forward Equivalence Class) de type générique typé (Typed Wildcard) du protocole de distribution d'étiquettes (LDP)
  • RFC 5919 - Signalisation de l'achèvement de l'annonce d'étiquettes LDP
  • RFC 6720 - Mécanisme de sécurité TTL généralisé (GTSM) pour le protocole de distribution d'étiquettes (LDP)
Multicast
  • RFC 2236 - Protocole de gestion de groupe Internet, version 2
OSPF
  • RFC 2328 - OSPF version 2
  • RFC 3623 - Redémarrage progressif OSPF
  • RFC 5187 - Redémarrage progressif OSPFv3
  • RFC 5243 - Optimisation de la liste récapitulative de l'échange de base de données OSPF
  • RFC 5250 - Option LSA opaque OSPF
  • RFC 5340 - OSPF pour IPv6
  • RFC 5613 - Signalisation lien-local OSPF
  • RFC 5642 - Mécanisme d'échange dynamique de noms d'hôtes pour OSPF
  • RFC 5709 - Authentification cryptographique HMAC-SHA OSPFv2
  • RFC 5838 - Support des familles d'adresses dans OSPFv3
  • RFC 6987 - Annonce de routeur de stub OSPF
  • RFC 7166 - Support de la bande d'authentification pour OSPFv3
  • RFC 7684 - Annonce d'attribut de préfixe/liaison OSPFv2
  • RFC 7770 - Extensions à OSPF pour la publicité des capacités optionnelles du routeur
  • RFC 7777 - Balises administratives de nœud publicitaires dans OSPF
  • RFC 8362 - Extensibilité des annonces d'état de lien (LSA) OSPFv3
  • RFC 8405 - Algorithme de délai d'attente SPF (Shortest Path First) pour les IGP à état de liens
  • RFC 8476 - Signalisation de la profondeur maximale SID (MSD) à l'aide d'OSPF
  • RFC 8665 - Extensions OSPF pour le routage par segments
  • RFC 8666 - Extensions OSPFv3 pour le routage par segments
  • RFC 9983 - Annonce de propriété Anycast OSPFv2
  • draft-ietf-bier-ospfv3-extensions-07 - Extensions OSPFv3 pour BIER
  • draft-ietf-bier-lsr-non-mpls-extensions-03 - Extensions LSR pour l'encapsulation BIER non-MPLS
RIP
  • RFC 2080 - RIPng pour IPv6
  • RFC 2453 - RIP version 2
  • RFC 4822 - Authentification cryptographique RIPv2
VRRP
  • RFC 3768 - Protocole de redondance de routeur virtuel (VRRP)
  • RFC 5798 - Protocole de redondance de routeur virtuel (VRRP) version 3 pour IPv4 et IPv6

Tests de conformité

Les résultats des tests de conformité effectués avec le testeur de conformité RFC Ixia IxANVL sont disponibles ici.

Couverture de l'implémentation YANG de l'IETF

Financement

Ce projet est financé par NGI Zero Core, un fonds établi par NLnet avec le soutien financier du programme Next Generation Internet de la Commission européenne. En savoir plus sur la page du projet NLnet.

Logo de la fondation NLnet Logo NGI Zero

Licence

Ce projet est sous licence MIT.

Contribution

Nous accueillons toutes les contributions, des rapports de bogues aux demandes de tirage (Pull Requests). Veuillez consulter notre Liste de souhaits du projet pour des idées sur où contribuer.

Sauf indication contraire explicite, toute contribution soumise intentionnellement pour inclusion dans Holo par vous sera sous licence MIT, sans conditions supplémentaires.

Télécharger l’outil
ModuleConfigurationÉtatRPCsNotificationsTotal
ietf-bfd-ip-mh@2022-09-22100.00%100.00%-100.00%100.00%
ietf-bfd-ip-sh@2022-09-22100.00%100.00%-100.00%100.00%
ietf-bfd@2022-09-22100.00%100.00%--100.00%
ietf-bgp-policy@2023-07-05100.00%---100.00%
ietf-bgp@2023-07-0532.38%85.95%--60.40%
ietf-bier@2023-09-12100.00%--0.00%72.50%
ietf-if-extensions@2023-01-26100.00%0.00%--50.00%
ietf-if-vlan-encapsulation@2023-01-2642.86%---42.86%
ietf-igmp-mld@2019-11-0184.62%100.00%--95.83%
ietf-interfaces@2018-02-20100.00%0.00%--22.22%
ietf-ip@2018-02-2252.17%0.00%--40.00%
ietf-ipv4-unicast-routing@2018-03-13100.00%100.00%--100.00%
ietf-ipv6-unicast-routing@2018-03-1340.62%100.00%--45.71%
ietf-isis-flex-algo@2026-06-260.00%100.00%-0.00%74.00%
ietf-isis-link-attr@2026-06-2681.82%78.43%--78.76%
ietf-isis-msd@2024-09-02-100.00%--100.00%
ietf-isis-sr-mpls@2025-12-0915.38%57.27%--52.85%
ietf-isis@2022-10-1993.62%80.09%100.00%100.00%86.77%
ietf-key-chain@2017-06-15100.00%100.00%--100.00%
ietf-mpls-ldp@2022-03-1486.96%92.31%100.00%100.00%92.38%
ietf-mpls@2020-12-180.00%57.14%--35.29%
ietf-ospf-anycast-flag@2026-05-19100.00%---100.00%
ietf-ospf-sr-mpls@2025-12-0921.43%51.36%--49.82%
ietf-ospf@2022-10-1995.70%85.04%100.00%58.06%83.89%
ietf-ospfv3-extended-lsa@2024-06-0750.00%85.28%--84.85%
ietf-rip@2020-02-2027.91%93.33%100.00%-55.41%
ietf-routing-policy@2021-10-11100.00%0.00%--98.11%
ietf-routing@2018-03-13100.00%85.71%--92.31%
ietf-segment-routing-mpls@2021-05-2662.50%0.00%-23.53%32.76%
ietf-segment-routing@2021-05-26100.00%---100.00%
ietf-system@2014-08-0626.67%60.00%0.00%-38.24%
ietf-vrrp@2018-03-1353.19%80.00%-66.67%66.35%