Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
holo — Набор протоколов маршрутизации на языке Rust, реализующий BGP, OSPF, IS-IS, RIP и VRRP с конфигурацией на основе YANG, автоматизацией через gNMI/gRPC и встроенным фаззингом для крупномасштабных, управляемых автоматизацией сетей. | Kitploit
Инструменты/GitHubGitHub/holo-routing/holo
Картирование сетиАудит конфигурацииФаззингСетевая безопасностьАнализ DNS
GitHubholo-routing/holo

holo

Набор протоколов маршрутизации на языке Rust, реализующий BGP, OSPF, IS-IS, RIP и VRRP с конфигурацией на основе YANG, автоматизацией через gNMI/gRPC и встроенным фаззингом для крупномасштабных, управляемых автоматизацией сетей.

Репозиторий
5354610 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

MIT licensed Build Status codecov Discord

Holo — это набор протоколов маршрутизации, разработанный для поддержки крупномасштабных сетей, управляемых автоматизацией.

Описание того, что такое протокол маршрутизации, можно найти на этой странице Википедии.

Возможности

Фокус на простоте и корректности

Основная цель Holo — создать надёжную, простую в сопровождении и расширяемую кодовую базу. С учётом постоянно растущей сложности протоколов маршрутизации и их расширений крайне важно иметь реализации протоколов маршрутизации, построенные на прочном фундаменте. Для этого кодовая база Holo ставит во главу угла простоту, модульность и тщательную документацию. Благодаря строгости компилятора Rust и обширным модульным тестам ожидается, что большинство регрессий будет выявлено на ранних этапах цикла разработки новых функций. Подробнее см. на странице Архитектура.

Готовность к автоматизации

Holoo был разработан специально для крупномасштабных сетей, управляемых автоматизацией, которые требуют программируемой настройки и мониторинга с использованием структурированных и смоделированных данных. Holo нативно реализует стандартные модули YANG от IETF и поддерживает несколько интерфейсов управления, включая нативные gRPC и gNMI. Кроме того, Holo имеет автономный CLI, который динамически формирует команды из модулей YANG и взаимодействует с демоном Holo через gRPC.

Изменения конфигурации обрабатываются как транзакции, что гарантирует применение либо всех изменений, либо ни одного. Эта функция значительно упрощает сетевую автоматизацию, поскольку устраняет необходимость в восстановлении после ошибок в управляющих приложениях. Holo также поддерживает сетевые транзакции, охватывающие несколько сетевых устройств. Дополнительные возможности сетевой автоматизации включают поддержку подтверждённых фиксаций (confirmed commits) и откат конфигурации.

Безопасность

Благодаря тому, что Holo написан на языке с безопасной работой с памятью, он защищён от широкого спектра ошибок, связанных с памятью, и уязвимостей безопасности. Помимо гарантий безопасности, предоставляемых Rust, демон Holo также сбрасывает привилегии при запуске. Для определённых операций, таких как привязка сокетов, используются возможности Linux, чтобы получить минимально необходимые разрешения на минимальное время.

Holo также обеспечивает надёжную защиту от наиболее распространённого вектора атак в стеках протоколов маршрутизации: атак типа «отказ в обслуживании» (DoS) с помощью вредоносных входных пакетов. Входящие пакеты декодируются в изолированных контролируемых асинхронных задачах, что позволяет реализациям протоколов корректно восстанавливаться после паник, например, игнорируя повреждённые пакеты или закрывая только затронутый TCP-поток, не ставя под угрозу стабильность всего демона. Кроме того, благодаря модульной конструкции Holo и встроенной поддержке фазинга на основе покрытия, ожидается, что большинство ошибок разбора будет обнаружено и устранено в процессе разработки.

Интегрированные реализации протоколов

Некоторые протоколы, такие как OSPF и RIP, имеют разные версии, которые широко развёрнуты, обычно одна для IPv4, а другая для IPv6. Holo использует обобщённые типы (generics) Rust для создания версионно-независимых реализаций протоколов, где большая часть кода является общей для разных версий протокола. Такой подход снижает затраты на сопровождение этих протоколов и упрощает внедрение новых функций, которые приносят пользу всем версиям протокола.

Параллелизм

Holo активно использует асинхронные операции и полагается на среду выполнения Tokio для планирования задач и их выполнения в пуле потоков. Для достижения лучшей производительности как операции ввода-вывода, так и алгоритмы с интенсивными вычислениями выносятся в отдельные задачи, максимизируя использование всех доступных ядер ЦП. Поддержка кода, не зависящего от среды выполнения, запланирована на будущее, как только необходимые абстракции будут стандартизированы командой разработчиков языка Rust.

Структурированное логирование

Holo генерирует сообщения журнала, содержащие структурированные данные, которые могут быть представлены в различных форматах, таких как JSON, текст и т. д. Поскольку логирование осуществляется через фасад tracing, для удовлетворения различных потребностей пользователей могут использоваться различные подписчики tracing. Например, логирование может быть направлено в файл, journald, централизованный коллектор OpenTelemetry или любую комбинацию этих вариантов с потенциально разными уровнями логирования.

Воспроизводимые ошибки

Holo предоставляет функциональность записи и воспроизведения, что позволяет легко воспроизвести любую ошибку, о которой сообщил пользователь. Демон Holo можно настроить на запись полного жизненного цикла экземпляра протокола в файл. Этот файл затем можно воспроизвести на другой машине, воспроизводя ту же последовательность событий. В то время как сеанс записи может длиться часы или дни, процесс воспроизведения должен занять всего несколько секунд. Это возможно благодаря модульной архитектуре Holo, где все операции, связанные со временем и вводом-выводом, выполняются в отдельных задачах и абстрагируются как сообщения событий.

Установка

Подробные инструкции по установке см. в файле INSTALL.md.

Поддерживаемые платформы

В настоящее время Holo совместим только с операционными системами Linux. Поддержка WebAssembly запланирована на будущее.

Начало работы

Самый простой способ начать использовать Holo — использовать предварительно собранные Docker-контейнеры в сочетании с программным обеспечением containerlab. Различные предварительно настроенные сетевые топологии можно найти по этой ссылке. Эти топологии можно развернуть одной командой, что позволяет тестировать Holo в различных сетевых конфигурациях, включая тестирование интероперабельности с другими реализациями.

Кроме того, Holo можно использовать везде, где требуется стек маршрутизации, например, в программных маршрутизаторах, при условии, что набор функций соответствует вашим конкретным потребностям.

Соответствие стандартам

Holo поддерживает следующие интернет-стандарты:

BFD
  • RFC 5880 - Двунаправленное обнаружение пересылки (BFD)
  • RFC 5881 - Двунаправленное обнаружение пересылки (BFD) для IPv4 и IPv6 (один переход)
  • RFC 5882 - Общее применение двунаправленного обнаружения пересылки (BFD)
  • RFC 5883 - Двунаправленное обнаружение пересылки (BFD) для многопереходных путей
BGP
  • RFC 1997 - Атрибут BGP Communities
  • RFC 2385 - Защита сеансов BGP с помощью опции подписи TCP MD5
  • RFC 2545 - Использование мультипротокольных расширений BGP-4 для междоменной маршрутизации IPv6
  • RFC 2918 - Возможность обновления маршрутов для BGP-4
  • RFC 4271 - Протокол пограничного шлюза 4 (BGP-4)
  • RFC 4360 - Атрибут BGP Extended Communities
  • RFC 4486 - Подкоды для сообщения-уведомления BGP Cease
  • RFC 4760 - Мультипротокольные расширения для BGP-4
  • RFC 5082 - Обобщённый механизм защиты TTL (GTSM)
  • RFC 5492 - Объявление возможностей с BGP-4
  • RFC 5668 - Специфическое расширенное сообщество BGP с 4-октетным AS
  • RFC 5701 - Атрибут расширенного сообщества BGP, специфичный для адреса IPv6
  • RFC 6286 - Уникальный идентификатор BGP в масштабе автономной системы для BGP-4
  • RFC 6608 - Подкоды для ошибки конечного автомата BGP
  • RFC 6793 - Поддержка BGP пространства номеров автономных систем (AS) из четырёх октетов
  • RFC 7606 - Пересмотренная обработка ошибок для сообщений BGP UPDATE
  • RFC 7607 - Кодификация обработки AS 0
  • RFC 8092 - Атрибут BGP Large Communities
  • RFC 8212 - Поведение по умолчанию для распространения внешних маршрутов BGP (EBGP) без политик
  • RFC 8642 - Поведение политик для известных сообществ BGP
  • RFC 9774 - Устаревание AS_SET и AS_CONFED_SET в BGP
IS-IS
  • ISO/IEC 10589 - Информационные технологии — Телекоммуникации и обмен информацией между системами — Протокол обмена информацией о маршрутизации внутри домена между промежуточной системой и промежуточной системой для использования совместно с протоколом, предоставляющим сетевой сервис в режиме без установления соединения (ISO 8473)
  • RFC 1195 - Использование OSI IS-IS для маршрутизации в TCP/IP и смешанных средах
  • RFC 3719 - Рекомендации по созданию интероперабельных сетей с использованием протокола «промежуточная система — промежуточная система» (IS-IS)
  • RFC 3787 - Рекомендации по созданию интероперабельных IP-сетей с использованием протокола «промежуточная система — промежуточная система» (IS-IS)
  • RFC 5120 - M-ISIS: Маршрутизация с несколькими топологиями (MT) в промежуточных системах (IS-ISs)
  • RFC 5301 - Механизм динамического обмена именами хостов для IS-IS
  • RFC 5303 - Трёхстороннее рукопожатие для соединений «точка-точка» IS-IS
  • RFC 5304 - Криптографическая аутентификация IS-IS
  • RFC 5305 - Расширения IS-IS для Traffic Engineering
  • RFC 5308 - Маршрутизация IPv6 с помощью IS-IS
  • RFC 5310 - Общая криптографическая аутентификация IS-IS
  • RFC 6232 - TLV идентификации инициатора очистки для IS-IS
  • RFC 6233 - Расширение реестра IS-IS для очисток
  • RFC 7308 - Расширенные административные группы в MPLS Traffic Engineering (MPLS-TE)
  • RFC 7602 - Расширенный TLV порядкового номера IS-IS
  • RFC 7794 - Атрибуты префиксов IS-IS для расширенной достижимости IPv4 и IPv6
  • RFC 7917 - Реклама административных тегов узлов в IS-IS
  • RFC 7981 - Расширения IS-IS для рекламы информации о маршрутизаторе
  • RFC 7987 - Минимальное оставшееся время жизни IS-IS
  • RFC 8401 - Поддержка Bit Index Explicit Replication (BIER) через IS-IS
  • RFC 8405 - Алгоритм задержки обратного отсчёта Shortest Path First (SPF) для протоколов IGP с состоянием каналов
  • RFC 8491 - Сигнализация максимальной глубины SID (MSD) с использованием IS-IS
  • RFC 8570 - Расширения метрик Traffic Engineering (TE) IS-IS
  • RFC 8667 - Расширения IS-IS для сегментной маршрутизации
  • RFC 8918 - Обработка недопустимых TLV в IS-IS
  • RFC 9479 - Атрибуты каналов, специфичные для приложений в IS-IS
  • draft-ietf-bier-lsr-non-mpls-extensions-03 - Расширения LSR для BIER без инкапсуляции MPLS
  • draft-ietf-lsr-distoptflood-12 - Снижение лавинной рассылки в IS-IS
  • draft-westphal-lsr-isis-database-checksumming-00 - Снятие отпечатков базы данных IS-IS
MPLS LDP
  • RFC 5036 - Спецификация LDP
  • RFC 5561 - Возможности LDP
  • RFC 5918 - 'Typed Wildcard' Forward Equivalence Class (FEC) протокола распределения меток (LDP)
  • RFC 5919 - Сигнализация завершения рекламы меток LDP
  • RFC 6720 - Обобщённый механизм защиты TTL (GTSM) для протокола распределения меток (LDP)
Многоадресная рассылка
  • RFC 2236 - Протокол управления группами Интернета, версия 2
OSPF
  • RFC 2328 - OSPF версия 2
  • RFC 3623 - Graceful Restart OSPF
  • RFC 5187 - Graceful Restart OSPFv3
  • RFC 5243 - Оптимизация сводного списка обмена базой данных OSPF
  • RFC 5250 - Опция OSPF Opaque LSA
  • RFC 5340 - OSPF для IPv6
  • RFC 5613 - Сигнализация на уровне канала OSPF
  • RFC 5642 - Механизм динамического обмена именами хостов для OSPF
  • RFC 5709 - Криптографическая аутентификация OSPFv2 с HMAC-SHA
  • RFC 5838 - Поддержка семейств адресов в OSPFv3
  • RFC 6987 - Реклама тупикового маршрутизатора OSPF
  • RFC 7166 - Поддержка аутентификационного трейлера для OSPFv3
  • RFC 7684 - Реклама атрибутов префикса/канала OSPFv2
  • RFC 7770 - Расширения OSPF для рекламы дополнительных возможностей маршрутизатора
  • RFC 7777 - Реклама административных тегов узлов в OSPF
  • RFC 8362 - Расширяемость объявлений о состоянии каналов (LSA) OSPFv3
  • RFC 8405 - Алгоритм задержки обратного отсчёта Shortest Path First (SPF) для протоколов IGP с состоянием каналов
  • RFC 8476 - Сигнализация максимальной глубины SID (MSD) с использованием OSPF
  • RFC 8665 - Расширения OSPF для сегментной маршрутизации
  • RFC 8666 - Расширения OSPFv3 для сегментной маршрутизации
  • RFC 9983 - Реклама свойства anycast OSPFv2
  • draft-ietf-bier-ospfv3-extensions-07 - Расширения OSPFv3 для BIER
  • draft-ietf-bier-lsr-non-mpls-extensions-03 - Расширения LSR для BIER без инкапсуляции MPLS
RIP
  • RFC 2080 - RIPng для IPv6
  • RFC 2453 - RIP версия 2
  • RFC 4822 - Криптографическая аутентификация RIPv2
VRRP
  • RFC 3768 - Протокол резервирования виртуального маршрутизатора (VRRP)
  • RFC 5798 - Протокол резервирования виртуального маршрутизатора (VRRP) версия 3 для IPv4 и IPv6

Тестирование на соответствие

Результаты тестирования на соответствие, проведённого с помощью Ixia IxANVL RFC Compliance Tester, доступны здесь.

Покрытие реализации модулей YANG IETF

Финансирование

Этот проект финансируется через NGI Zero Core, фонд, учреждённый NLnet при финансовой поддержке программы Next Generation Internet Европейской комиссии. Узнайте больше на странице проекта NLnet.

Логотип фонда NLnet Логотип NGI Zero

Лицензия

Этот проект лицензирован в соответствии с [лицензией MIT].

Участие

Мы приветствуем любой вклад, от сообщений об ошибках до запросов на включение изменений. Пожалуйста, ознакомьтесь с нашим списком пожеланий проекта для идей, где можно помочь.

Если явно не указано иное, любой вклад, намеренно предоставленный для включения в Holo вами, будет лицензирован как MIT, без каких-либо дополнительных условий.

Скачать инструмент
МодульКонфигурацияСостояниеRPCУведомленияВсего
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%