Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
holo — Suite di protocolli di routing basata su Rust che implementa BGP, OSPF, IS-IS, RIP e VRRP con configurazione modellata con YANG, automazione gNMI/gRPC e fuzzing integrato per reti ad alta scala guidate dall'automazione. | Kitploit
Strumenti/GitHubGitHub/holo-routing/holo
Mappatura della ReteAudit di ConfigurazioneFuzzingSicurezza di ReteAnalisi DNS
GitHubholo-routing/holo

holo

Suite di protocolli di routing basata su Rust che implementa BGP, OSPF, IS-IS, RIP e VRRP con configurazione modellata con YANG, automazione gNMI/gRPC e fuzzing integrato per reti ad alta scala guidate dall'automazione.

Vedi Repository
5354610 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

MIT licensed Build Status codecov Discord

Holo è una suite di protocolli di routing progettata per supportare reti ad alta scala e guidate dall'automazione.

Per una descrizione di cosa sia un protocollo di routing, si prega di fare riferimento a questa pagina Wikipedia.

Caratteristiche

Focus su semplicità e correttezza

L'obiettivo principale di Holo è creare un codice affidabile, facile da mantenere ed estensibile. Con la crescente complessità dei protocolli di routing e delle loro estensioni, è fondamentale disporre di implementazioni di protocolli di routing costruite su una base solida. A tal fine, la codebase di Holo dà priorità a semplicità, modularità e documentazione approfondita. Grazie alla rigidità del compilatore Rust e agli estesi test unitari, ci si aspetta che la maggior parte delle regressioni venga individuata all'inizio del ciclo di sviluppo delle nuove funzionalità. Per maggiori dettagli, si prega di fare riferimento alla pagina Architettura.

Pronto per l'automazione

Holo è stato sviluppato specificamente per reti ad alta scala e guidate dall'automazione che richiedono configurazione e monitoraggio programmabili utilizzando dati strutturati e modellati. Holo implementa nativamente i moduli YANG standard dell'IETF e supporta molteplici interfacce di gestione, inclusi gRPC e gNMI nativi. Inoltre, Holo offre una CLI standalone che genera dinamicamente comandi dai moduli YANG e comunica con il demone Holo tramite gRPC.

Le modifiche apportate alla configurazione vengono elaborate come transazioni, garantendo che tutte le modifiche vengano applicate o nessuna. Questa funzionalità è un significativo facilitatore dell'automazione di rete poiché elimina la necessità di recupero degli errori nelle applicazioni di gestione. Holo supporta anche transazioni a livello di rete che coinvolgono più dispositivi di rete. Ulteriori capacità di automazione di rete includono commit confermati e supporto per il rollback della configurazione.

Sicurezza

Grazie all'essere scritto in un linguaggio memory-safe, Holo è immune a un'ampia varietà di bug relativi alla memoria e vulnerabilità di sicurezza. Oltre alle garanzie di sicurezza fornite da Rust, il demone Holo riduce anche i privilegi all'avvio. Per alcune operazioni, come il binding dei socket, vengono utilizzate le capabilities di Linux per ottenere il permesso minimo richiesto per il minor tempo possibile.

Holo fornisce anche una protezione robusta contro il vettore di attacco più comune negli stack di protocolli di routing: attacchi denial-of-service (DoS) tramite input di pacchetti malevoli. I pacchetti in entrata vengono decodificati in task asincroni isolati e supervisionati, consentendo alle implementazioni dei protocolli di recuperare con garbo da panico, ad esempio ignorando pacchetti malformati o chiudendo solo il flusso TCP interessato, senza compromettere la stabilità dell'intero demone. Inoltre, grazie al design modulare di Holo e al supporto integrato per il fuzzing guidato dalla copertura, si prevede che la maggior parte dei bug di parsing venga rilevata e risolta durante lo sviluppo.

Implementazioni di protocolli integrate

Alcuni protocolli, come OSPF e RIP, hanno versioni diverse ampiamente distribuite, tipicamente una per IPv4 e un'altra per IPv6. Holo sfrutta i generics di Rust per avere implementazioni di protocolli indipendenti dalla versione, dove la maggior parte del codice è condivisa dalle diverse versioni del protocollo. Questo approccio riduce il costo di manutenzione di questi protocolli e facilita il rilascio di nuove funzionalità che avvantaggiano tutte le versioni del protocollo.

Parallelismo

Holo fa ampio uso di operazioni asincrone e si basa sul runtime Tokio per pianificare i task ed eseguirli su un pool di thread. Per ottenere prestazioni migliori, sia le richieste I/O che gli algoritmi CPU-intensive vengono delegati a task separati, massimizzando l'utilizzo di tutti i core CPU disponibili. Il supporto per codice runtime-agnostic è previsto per il futuro, una volta che le astrazioni necessarie saranno standardizzate dal team del linguaggio Rust.

Logging strutturato

Holo genera messaggi di log che contengono dati strutturati, che possono essere presentati in vari formati come JSON, testo, ecc. Poiché il logging viene effettuato tramite la facciata tracing, è possibile utilizzare diversi subscriber tracing per soddisfare diversi requisiti utente. Ad esempio, il logging può essere diretto a un file, journald, un collector OpenTelemetry centralizzato, o qualsiasi combinazione di queste opzioni con livelli di logging potenzialmente variabili.

Bug riproducibili

Holo fornisce funzionalità di registrazione e riproduzione, consentendo una facile riproduzione di qualsiasi bug segnalato dall'utente. Il demone Holo può essere configurato per registrare l'intero ciclo di vita di un'istanza di protocollo su un file. Questo file può poi essere riprodotto su un'altra macchina, riproducendo la stessa sequenza di eventi. Mentre una sessione di registrazione può durare ore o giorni, il processo di riproduzione dovrebbe richiedere solo pochi secondi. Ciò è possibile grazie all'architettura modulare di Holo, dove tutte le operazioni relative al tempo e I/O vengono eseguite in task separati e astratte come messaggi di evento.

Installazione

Per istruzioni dettagliate sull'installazione, si prega di fare riferimento al file INSTALL.md.

Piattaforme supportate

Al momento, Holo è compatibile solo con sistemi operativi Linux. Il supporto per WebAssembly è previsto per il futuro.

Per iniziare

Il modo più semplice per iniziare a usare Holo è utilizzare container Docker pre-costruiti in combinazione con il software containerlab. Puoi trovare una varietà di topologie di rete pre-configurate a questo link. Queste topologie possono essere distribuite con un singolo comando, permettendoti di testare Holo in varie configurazioni di rete, inclusi test di interoperabilità con altre implementazioni. Inoltre, Holo può essere utilizzato ovunque sia richiesto uno stack di routing, ad esempio in router software, a condizione che l'insieme di funzionalità sia allineato alle tue esigenze specifiche.

Conformità

Holo supporta i seguenti standard Internet:

BFD
  • RFC 5880 - Bidirectional Forwarding Detection (BFD)
  • RFC 5881 - Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6 (Single Hop)
  • RFC 5882 - Generic Application of Bidirectional Forwarding Detection (BFD)
  • RFC 5883 - Bidirectional Forwarding Detection (BFD) for Multihop Paths
BGP
  • RFC 1997 - BGP Communities Attribute
  • RFC 2385 - Protection of BGP Sessions via the TCP MD5 Signature Option
  • RFC 2545 - Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing
  • RFC 2918 - Route Refresh Capability for BGP-4
  • RFC 4271 - A Border Gateway Protocol 4 (BGP-4)
  • RFC 4360 - BGP Extended Communities Attribute
  • RFC 4486 - Subcodes for BGP Cease Notification Message
  • RFC 4760 - Multiprotocol Extensions for BGP-4
  • RFC 5082 - The Generalized TTL Security Mechanism (GTSM)
  • RFC 5492 - Capabilities Advertisement with BGP-4
  • RFC 5668 - 4-Octet AS Specific BGP Extended Community
  • RFC 5701 - IPv6 Address Specific BGP Extended Community Attribute
  • RFC 6286 - Autonomous-System-Wide Unique BGP Identifier for BGP-4
  • RFC 6608 - Subcodes for BGP Finite State Machine Error
  • RFC 6793 - BGP Support for Four-Octet Autonomous System (AS) Number Space
  • RFC 7606 - Revised Error Handling for BGP UPDATE Messages
  • RFC 7607 - Codification of AS 0 Processing
  • RFC 8092 - BGP Large Communities Attribute
  • RFC 8212 - Default External BGP (EBGP) Route Propagation Behavior without Policies
  • RFC 8642 - Policy Behavior for Well-Known BGP Communities
  • RFC 9774 - Deprecation of AS_SET and AS_CONFED_SET in BGP
IS-IS
  • ISO/IEC 10589 - Information technology — Telecommunications and information exchange between systems — Intermediate System to Intermediate System intra-domain routeing information exchange protocol for use in conjunction with the protocol for providing the connectionless-mode network service (ISO 8473)
  • RFC 1195 - Use of OSI IS-IS for Routing in TCP/IP and Dual Environments
  • RFC 3719 - Recommendations for Interoperable Networks using Intermediate System to Intermediate System (IS-IS)
  • RFC 3787 - Recommendations for Interoperable IP Networks using Intermediate System to Intermediate System (IS-IS)
  • RFC 5120 - M-ISIS: Multi Topology (MT) Routing in Intermediate System to Intermediate Systems (IS-ISs)
  • RFC 5301 - Dynamic Hostname Exchange Mechanism for IS-IS
  • RFC 5303 - Three-Way Handshake for IS-IS Point-to-Point Adjacencies
  • RFC 5304 - IS-IS Cryptographic Authentication
  • RFC 5305 - IS-IS Extensions for Traffic Engineering
  • RFC 5308 - Routing IPv6 with IS-IS
  • RFC 5310 - IS-IS Generic Cryptographic Authentication
  • RFC 6232 - Purge Originator Identification TLV for IS-IS
  • RFC 6233 - IS-IS Registry Extension for Purges
  • RFC 7308 - Extended Administrative Groups in MPLS Traffic Engineering (MPLS-TE)
  • RFC 7602 - IS-IS Extended Sequence Number TLV
  • RFC 7794 - IS-IS Prefix Attributes for Extended IPv4 and IPv6 Reachability
  • RFC 7917 - Advertising Node Administrative Tags in IS-IS
  • RFC 7981 - IS-IS Extensions for Advertising Router Information
  • RFC 7987 - IS-IS Minimum Remaining Lifetime
  • RFC 8401 - Bit Index Explicit Replication (BIER) Support via IS-IS
  • RFC 8405 - Shortest Path First (SPF) Back-Off Delay Algorithm for Link-State IGPs
  • RFC 8491 - Signaling Maximum SID Depth (MSD) Using IS-IS
  • RFC 8570 - IS-IS Traffic Engineering (TE) Metric Extensions
  • RFC 8667 - IS-IS Extensions for Segment Routing
  • RFC 8918 - Invalid TLV Handling in IS-IS
  • RFC 9479 - IS-IS Application-Specific Link Attributes
  • draft-ietf-bier-lsr-non-mpls-extensions-03 - LSR Extensions for BIER non-MPLS Encapsulation
  • draft-ietf-lsr-distoptflood-12 - IS-IS Distributed Flooding Reduction
  • draft-westphal-lsr-isis-database-checksumming-00 - IS-IS Database Fingerprinting
MPLS LDP
  • RFC 5036 - LDP Specification
  • RFC 5561 - LDP Capabilities
  • RFC 5918 - Label Distribution Protocol (LDP) 'Typed Wildcard' Forward Equivalence Class (FEC)
  • RFC 5919 - Signaling LDP Label Advertisement Completion
  • RFC 6720 - The Generalized TTL Security Mechanism (GTSM) for the Label Distribution Protocol (LDP)
Multicast
  • RFC 2236 - Internet Group Management Protocol, Version 2
OSPF
  • RFC 2328 - OSPF Version 2
  • RFC 3623 - Graceful OSPF Restart
  • RFC 5187 - OSPFv3 Graceful Restart
  • RFC 5243 - OSPF Database Exchange Summary List Optimization
  • RFC 5250 - The OSPF Opaque LSA Option
  • RFC 5340 - OSPF for IPv6
  • RFC 5613 - OSPF Link-Local Signaling
  • RFC 5642 - Dynamic Hostname Exchange Mechanism for OSPF
  • RFC 5709 - OSPFv2 HMAC-SHA Cryptographic Authentication
  • RFC 5838 - Support of Address Families in OSPFv3
  • RFC 6987 - OSPF Stub Router Advertisement
  • RFC 7166 - Supporting Authentication Trailer for OSPFv3
  • RFC 7684 - OSPFv2 Prefix/Link Attribute Advertisement
  • RFC 7770 - Extensions to OSPF for Advertising Optional Router Capabilities
  • RFC 7777 - Advertising Node Administrative Tags in OSPF
  • RFC 8362 - OSPFv3 Link State Advertisement (LSA) Extensibility
  • RFC 8405 - Shortest Path First (SPF) Back-Off Delay Algorithm for Link-State IGPs
  • RFC 8476 - Signaling Maximum SID Depth (MSD) Using OSPF
  • RFC 8665 - OSPF Extensions for Segment Routing
  • RFC 8666 - OSPFv3 Extensions for Segment Routing
  • RFC 9983 - OSPFv2 Anycast Property Advertisement
  • draft-ietf-bier-ospfv3-extensions-07 - OSPFv3 Extensions for BIER
  • draft-ietf-bier-lsr-non-mpls-extensions-03 - LSR Extensions for BIER non-MPLS Encapsulation
RIP
  • RFC 2080 - RIPng for IPv6
  • RFC 2453 - RIP Version 2
  • RFC 4822 - RIPv2 Cryptographic Authentication
VRRP
  • RFC 3768 - Virtual Router Redundancy Protocol (VRRP)
  • RFC 5798 - Virtual Router Redundancy Protocol (VRRP) Version 3 for IPv4 and IPv6

Test di conformità

I risultati dei test di conformità eseguiti con Ixia IxANVL RFC Compliance Tester sono disponibili qui.

Copertura delle implementazioni YANG IETF

Finanziamento

Questo progetto è finanziato tramite NGI Zero Core, un fondo istituito da NLnet con il supporto finanziario del programma Next Generation Internet della Commissione Europea. Scopri di più sulla pagina del progetto NLnet.

Logo della fondazione NLnet Logo NGI Zero

Licenza

Questo progetto è concesso in licenza secondo la [licenza MIT].

Contributi

Accogliamo con favore qualsiasi contributo, dai bug report alle Pull Request. Si prega di fare riferimento alla nostra Project Wishlist per idee su dove contribuire.

Salvo diversa indicazione esplicita, qualsiasi contributo inviato intenzionalmente per l'inclusione in Holo da parte tua, sarà concesso in licenza come MIT, senza ulteriori termini o condizioni.

Scarica lo strumento
ModuloConfigurazioneStatoRPCsNotificheTotale
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%