Региональный интернет-регистратор RIPE NCC, занимающийся распределением IP-адресов на территории Европы, Средней и Центральной Азии, обеспечил поддержку разработки OpenBGPD, развиваемого проектом OpenBSD пакета для маршрутизации с использованием протокола BGP. RIPE и несколько европейских точек обмена трафиком организовали финансирование работы над OpenBGPD – последние 6 месяцев ключевой разработчик OpenBGPD имеет возможность развивать проект в режиме полного рабочего дня.

Целью инициативы является проведение оптимизаций и расширение функциональности OpenBGPD для использования на серверах для маршрутизации в точках межоператорского обмена трафиком (IXP). В итоге планируется подготовить полноценную альтернативу пакету BIRD и предоставить операторам возможность выбора между несколькими реализациями BGP (кроме BIRD и OpenBGPD из активно развивающихся открытых реализаций BGP также можно отметить проекты FRRouting, GoBGP, ExaBGP и Bio-Routing).

Из наблюдаемых ранее проблем, мешавших использованию OpenBGPD в крупных инфраструктурах отмечается низкая производительность в условиях поддержания полного набора фильтров на базе глобальной таблицы BGP-маршрутов, и блокировка обновлений в процессе перезагрузки конфигурации (перезаливка конфигурации с 370 тысячами фильтров занимает около часа). Полгода назад началась интенсивная работа по устранению данных проблем и улучшению поддержки актуальных спецификаций. Например, в процессе разработки OpenBGPD 6.4 в код внесено 154 улучшения, что составляет около 8% всех коммитов за всю историю проекта OpenBGPD.

В частности, в OpenBGPD 6.4 обеспечено соответствие требованиям
RFC8212 (по умолчанию теперь применяются правила блокировки), добавлена поддержка RPKI (Resource Public Key Infrastructure) для верификации автономных систем (пока только для статических таблиц (roa-set), без поддержки RTR), реализованы средства для манипуляции наборами префиксов (prefix-sets), автономных систем (as-sets) и исходных систем (origin-sets, префикс + исходная автономная система), задействован новый быстрый алгоритм поиска в больших коллекциях фильтров, обеспечена возможность фонового обновления конфигурации, убрана блокировка, мешающая применению обновлений в процессе перезагрузки конфигурации.

Поддержка новых возможностей OpenBGPD 6.4 добавлена в утилиты bgpq3 и arouteserver, часто применяемые сетевыми операторами для генерации конфигурации BGP. Например, реализация наборов префиксов позволила существенно сократить размер генерируемых таблиц с фильтрами. Если в версии 6.3 таблица с фильтрами включала 370 тысяч записей, то для
версии 6.4 её удалось ужать до 6000 правил. Соответственно, время загрузки полного набора правил после “холодного” перезапуска сократилась с часа до 2 минут, а перезагрузка конфигурации на лету теперь занимает менее 10 секунд.

В мае планируется выпустить релиз OpenBGPD 6.5, в котором ожидается продолжение оптимизации операций с фильтрами, улучшение фильтрации по “community” (сопоставление групп и быстрые операции установки и удаления), рефакторинг кода обработки таблиц маршрутизации (RIB, Routing Information Base) и ускорение работы с несколькими таблицами маршрутизации. Весной также планируется подготовить переносимую версию OpenBGPD (пока без поддержки FIB), которую по аналогии с OpenSSH и LibreSS, можно будет использовать в разных операционных системах.

Из дальнейших планов упоминается добавление поддержки многопоточности в RDE для распаралелливания операций с фильтрами, добавление поддержки FIB в переносимую версию, реализацию расширенных функций (ADD_PATH, BGP multipath, RFC 7313, BMP, RTR).