Больше, чем Quagga — пакет для маршрутизации FRRouting
Есть мнение, что ИТ-сообщество можно условно поделить на тех, кто знаком с пакетом маршрутизации FRRouting (FRR), и тех, кто никогда о нем не слышал. Мы решили обсудить его возможности, мнения комьюнити, а также отличия от пакета Quagga.
Фотография: Jared Murray / Unsplash
Фотография: Jared Murray / UnsplashПричём тут Quagga
Программные пакеты, поддерживающие протоколы динамической маршрутизации, позволяют превратить сервер в маршрутизатор, который можно кастомизировать и настроить под любые потребности. Основные пользователи таких решений — интернет-провайдеры, операторы ЦОД, корпорации и исследовательские институты.
Одним из наиболее известных пакетов маршрутизации является Quagga. Он был представлен в 2002 году как форк программного обеспечения для Unix-подобных операционных систем GNU Zebra. Инструмент GNU Zebra, разработанный инженером Кунихиро Исигуро, поддерживал такие протоколы маршрутизации, как RIP, OSPF и BGP. Однако со временем разработка проекта замедлилась, что привело к техническому застою и появлению Quagga. Новый пакет смог реализовать поддержку протоколов маршрутизации IPv4 и IPv6 — к нему подключились крупные игроки, например, Linux Foundation. А развитие GNU Zebra в 2005 году окончательно остановилось.
Однако Quagga столкнулся с теми же проблемами, что и предшественник: многие были недовольны темпами обновлений. Авторы проекта накопили бэклог из 3 тыс. патчей, работа над которыми почти не продвигалась. В итоге спонсоры Quagga решили запустить форк под названием Free Range Routing (FRRouting). FRR стремится сохранить наработки Quagga, одновременно предлагая новые возможности.
Под капотом FRR
FRRouting поддерживает несколько протоколов маршрутизации, в частности, BGP, OSPF, RIP и весь спектр конфигурации L3: статические маршруты, управление IP-адресами, объявления маршрутизаторов. FRR также поддерживает механизм управления потоками данных MPLS, включает средства для мониторинга и диагностики MPLS-сетей. С их помощью системным администраторам проще отслеживать состояние сети, выявлять и устранять проблемы. FRR работает на всех современных Unix-подобных операционных системах, включая Linux и BSD. Поддержку функций на конкретной платформе можно посмотреть в таблице Feature Matrix на официальном сайте проекта.
Изначально FRR был построен на базе Quagga 1.1. Однако после форка в проект внесли несколько модификаций. Среди них, например, есть поддержка AddPath, next-hop отслеживание и 32-битные теги маршрутов. Кроме того, разработчики перевели инфраструктуру модульного тестирования на pytest и реализовали поддержку JSON.
В отличие от традиционного ПО для маршрутизации с единым процессом для управления функциональностью протоколов, FRRouting представляет собой набор демонов для каждого протокола. Например, bgpd управляет BGP, а ospfd отвечает за OSPF. Все демоны взаимодействуют с демоном-посредником zebra. Его название — это наследие GNU Zebra, с которого началась история Quagga и затем FRR. Zebra выступает в роли координатора — отвечает за принятие окончательных решений по маршрутизации и взаимодействие с плоскостью передачи данных (dataplane).
Такая архитектура обеспечивает высокую отказоустойчивость, поскольку ошибка в одном демоне, как правило, не затрагивает работу остальных. Также модульный подход позволяет легко расширять существующий набор протоколов. Все демоны FRR управляются через интерфейс под названием vtysh. Он подключается к каждому демону через сокет домена UNIX, а затем работает как прокси для пользовательского ввода. Сейчас разработчики FRR внедряют новую внутреннюю систему конфигурации, основанную на моделях данных YANG. Когда эта работа будет завершена, FRR станет полностью программируемым стеком маршрутизации.
Какие есть мнения
В open source форк может иметь негативную окраску. Часто процесс приводит к созданию конкурирующих проектов, которые перестают обмениваться наработками друг с другом и раскалывают сообщество разработчиков. Однако FRRouting избежал этой судьбы, и многие отмечают его производительность и гибкость. Авторы пакета развивают функциональность, связанную с протоколами PIM и IGMP для многоадресной маршрутизации, которые обеспечивают работоспособность технологий IPTV и потокового вещания. По этой причине FRR используют крупные телекомы и операторы связи.
Фотография: K. Mitch Hodge / Unsplash
Но не обошлось и без ложки дегтя. Ряд специалистов отмечает несколько особенностей, которые могут вызывать неудобство. Один инженер из Нидерландов в своем блоге отметил, что авторы FRRouting изменили команду для определения списков доступа AS в протоколе BGP. В Quagga команда выглядела как ip as-path, а в FRR появился новый префикс: bgp as-path. Специалист отмечает, что такой подход более логичен, поскольку задача создания списков относится к протоколу BGP, а не к общей IP-маршрутизации. Однако замена префикса привела к невозможности использовать конфигурационный файл, который работает и на Quagga, и на FRR. Аналогичное изменение произошло и в команде ip community (теперь bgp community). По мнению инженера, было бы удобнее, если бы пакет принимал команду с ip, но автоматически преобразовывал синтаксис.
Но в целом перспективы у FRR есть. Команда сотрудничает с IETF и другими организациями, что позволяет ему адаптироваться к новым требованиям рынка. Конечно же, на дорожной карте проекта отмечены планы по расширению возможностей.
Больше альтернатив
В данной нише существуют и другие решения. Так, один из аналогов FRR — BIRD. Этот пакет был разработан в Чешском техническом университете. Он поддерживает основные протоколы: BGP, OSPF, IPv4 и IPv6. BIRD написан на C и распространяется под лицензией GPL (GNU General Public License). Пакет позволяет создавать сразу несколько таблиц маршрутизации, включает в себя мощный язык фильтрации маршрутов. BIRD особенно популярен среди крупных облачных провайдеров, стриминговых платформ.
Ещё одна альтернатива — ExaBGP, разработанный командой Exa Networks. Его используют операторы облачных сервисов и дата-центров. ExaBGP написан на Python и поддерживает IPv4, IPv6, L2VPN, L3VPN и FlowSpec.
Дополнительное чтение в нашем блоге на Хабре:
Странные «услуги» интернет-провайдеров и не только — делимся кейсами, иллюстрирующими необычный подход к работе корейских интернет-провайдеров, а также говорим об особенностях предоставления услуг связи в других странах.
Когда мобильная сеть недоступна — зачем запускают звонки через интернет. Наш обзорный материал, в котором мы говорим о технологии VoWiFi. Обсуждаем актуальность, подводные камни и способы реализации: от OTT и UMA до недоверенного доступа к ePDG. Спойлер: перспективы у технологии есть, но необходимо развивать защиту от перебоев связи и атак вроде DDoS.
Динамика DDoS-атак — обзор первого квартала 2024 года. К слову о DDoS, мы подготовили компактный обзор того, как продолжают меняться характеристики такого рода кибератак в мире. За первые три месяца 2024 года, число DDoS-атак выросло на 30%. Они повлияли на работу не только корпораций и критических инфраструктурных объектов, но даже разработчиков-фрилансеров.
Самый маленький open source свитч — как он устроен, что может предложить, мнения и альтернативы. Ученики из школы в штате Нью-Гэмпшир разработали компактный коммутатор — mrxSwitch. Рассказываем, как проект для соревнований по подводной робототехнике привел к появлению открытого продукта. Также смотрим на мнения и некоторые альтернативы разработки: SwitchBlox и PE-505.
Голодающие дата-центры и блекауты — как решают проблему с нехваткой электроэнергии для ИТ-инфраструктуры. Дошло до того, что корпорации и операторы ЦОД приостанавливают строительство площадок. Они не могут получить доступ к надежным источникам энергии, а стоимость участков для строительства резко возросла. Гонка в сегменте систем ИИ только усугубляет ситуацию.
Облачные провайдеры в центре внимания западных регуляторов — акцент на комиссиях и работе с системами ИИ. Обсудили интерес государственных органов к облачным провайдерам и реакцию компаний — некоторые игроки уже отменили комиссии за перенос данных к другим поставщикам. Рассмотрели возможные изменения законодательства для регулирования сферы ИИ.