Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
holo — Suite de protocolos de enrutamiento basada en Rust que implementa BGP, OSPF, IS-IS, RIP y VRRP con configuración modelada en YANG, automatización gNMI/gRPC y fuzzing integrado para redes de alta escala impulsadas por automatización. | Kitploit
Herramientas/GitHubGitHub/holo-routing/holo
Mapeo de RedesAuditoría de ConfiguraciónFuzzingSeguridad de RedesAnálisis de DNS
GitHubholo-routing/holo

holo

Suite de protocolos de enrutamiento basada en Rust que implementa BGP, OSPF, IS-IS, RIP y VRRP con configuración modelada en YANG, automatización gNMI/gRPC y fuzzing integrado para redes de alta escala impulsadas por automatización.

Ver Repositorio
535464hace 3 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

MIT licensed Build Status codecov Discord

Holo es un conjunto de protocolos de enrutamiento diseñados para soportar redes de alta escala y orientadas a la automatización.

Para una descripción de qué es un protocolo de enrutamiento, consulte esta página de Wikipedia.

Características

Enfoque en simplicidad y corrección

El objetivo principal de Holo es crear una base de código fiable, fácil de mantener y extensible. Con la creciente complejidad de los protocolos de enrutamiento y sus extensiones, es crucial tener implementaciones de protocolos de enrutamiento construidas sobre una base sólida. Para ello, la base de código de Holo prioriza la simplicidad, la modularidad y una documentación exhaustiva. Gracias al rigor del compilador de Rust y a las extensas pruebas unitarias, se espera que la mayoría de las regresiones se detecten tempranamente en el ciclo de desarrollo de nuevas funciones. Para más detalles, consulte la página de Arquitectura.

Preparado para la automatización

Holo fue desarrollado específicamente para redes de alta escala y orientadas a la automatización que requieren configuración y monitorización programables utilizando datos estructurados y modelados. Holo implementa de forma nativa módulos YANG estándar del IETF y soporta múltiples interfaces de gestión, incluyendo gRPC y gNMI nativos. Además, Holo cuenta con una CLI independiente que renderiza dinámicamente comandos desde módulos YANG y se comunica con el demonio Holo a través de gRPC.

Los cambios realizados en la configuración se procesan como transacciones, garantizando que todos los cambios se apliquen o ninguno. Esta característica es un facilitador significativo de la automatización de redes, ya que elimina la necesidad de recuperación de errores en las aplicaciones de gestión. Holo también soporta transacciones a nivel de red que involucran múltiples dispositivos de red. Capacidades adicionales de automatización de red incluyen commits confirmados y soporte de reversión de configuración.

Seguridad

Debido a estar escrito en un lenguaje seguro en cuanto a memoria, Holo es inmune a una amplia variedad de errores de memoria y vulnerabilidades de seguridad. Además de las garantías de seguridad proporcionadas por Rust, el demonio Holo también elimina privilegios al iniciarse. Para ciertas operaciones, como la vinculación de sockets, se utilizan capacidades de Linux para obtener el permiso mínimo requerido durante el menor tiempo posible.

Holo también proporciona una protección robusta contra el vector de ataque más común en las pilas de protocolos de enrutamiento: los ataques de denegación de servicio (DoS) mediante entrada de paquetes maliciosos. Los paquetes entrantes se decodifican en tareas asíncronas aisladas y supervisadas, lo que permite que las implementaciones de protocolos se recuperen correctamente de pánicos, por ejemplo, ignorando paquetes mal formados o cerrando solo el flujo TCP afectado, sin comprometer la estabilidad de todo el demonio. Además, gracias al diseño modular de Holo y al soporte integrado para fuzzing guiado por cobertura, se espera que la mayoría de los errores de análisis se detecten y solucionen durante el desarrollo.

Implementaciones de protocolos integradas

Algunos protocolos, como OSPF y RIP, tienen diferentes versiones que se despliegan ampliamente, típicamente una para IPv4 y otra para IPv6. Holo aprovecha los genéricos de Rust para tener implementaciones de protocolos independientes de la versión, donde la mayor parte del código es compartida por las diferentes versiones del protocolo. Este enfoque reduce el coste de mantenimiento de estos protocolos y facilita el lanzamiento de nuevas funciones que beneficien a todas las versiones del protocolo.

Paralelismo

Holo hace un uso extensivo de operaciones asíncronas y se basa en el runtime Tokio para programar tareas y ejecutarlas en un pool de hilos. Para lograr un mejor rendimiento, tanto las solicitudes de E/S como los algoritmos intensivos en CPU se descargan a tareas separadas, maximizando la utilización de todos los núcleos de CPU disponibles. Se planea soporte para código independiente del runtime en el futuro, una vez que el equipo de lenguaje Rust estandarice las abstracciones necesarias.

Registro estructurado

Holo genera mensajes de registro que contienen datos estructurados, que se pueden presentar en varios formatos como JSON, texto, etc. Dado que el registro se realiza a través de la fachada tracing, se pueden utilizar diversos suscriptores tracing para satisfacer diferentes requisitos del usuario. Por ejemplo, el registro puede dirigirse a un archivo, journald, un recolector centralizado de OpenTelemetry, o cualquier combinación de estas opciones con niveles de registro potencialmente variables.

Errores reproducibles

Holo proporciona funcionalidad de grabación y reproducción, lo que permite reproducir fácilmente cualquier error reportado por el usuario. El demonio Holo se puede configurar para grabar el ciclo de vida completo de una instancia de protocolo en un archivo. Ese archivo se puede reproducir luego en otra máquina, reproduciendo la misma secuencia de eventos. Mientras que una sesión de grabación puede durar horas o días, el proceso de reproducción debería tomar solo unos segundos. Esto es factible gracias a la arquitectura modular de Holo, donde todas las operaciones relacionadas con el tiempo y E/S se realizan en tareas separadas y se abstraen como mensajes de evento.

Instalación

Para instrucciones detalladas sobre la instalación, consulte el archivo INSTALL.md.

Plataformas compatibles

Actualmente, Holo solo es compatible con sistemas operativos Linux. Se planea soporte para WebAssembly en el futuro.

Primeros pasos

La forma más sencilla de empezar a usar Holo es utilizando contenedores Docker preconstruidos en combinación con el software containerlab. Puede encontrar una variedad de topologías de red preconfiguradas en este enlace. Estas topologías se pueden desplegar con un solo comando, permitiéndole probar Holo en varios escenarios de red, incluyendo pruebas de interoperabilidad con otras implementaciones.

Además, Holo se puede usar donde sea necesario una pila de enrutamiento, como en routers de software, siempre que el conjunto de funciones se alinee con sus necesidades específicas.

Cumplimiento

Holo soporta los siguientes estándares de 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

Pruebas de conformidad

Los resultados de las pruebas de conformidad realizadas con el Ixia IxANVL RFC Compliance Tester están disponibles aquí.

Cobertura de implementación de YANG del IETF

Financiación

Este proyecto está financiado a través de NGI Zero Core, un fondo establecido por NLnet con el apoyo financiero del programa Next Generation Internet de la Comisión Europea. Obtenga más información en la página del proyecto NLnet.

NLnet foundation logo NGI Zero Logo

Licencia

Este proyecto está licenciado bajo la [licencia MIT].

Contribución

Agradecemos cualquier contribución, desde informes de errores hasta solicitudes de extracción (Pull Requests). Consulte nuestra Lista de deseos del proyecto para ideas sobre dónde contribuir.

A menos que usted indique explícitamente lo contrario, cualquier contribución enviada intencionalmente para su inclusión en Holo por su parte, se licenciará como MIT, sin términos ni condiciones adicionales.

Descargar herramienta
MóduloConfiguraciónEstadoRPCNotificacionesTotal
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%