Разработка OpenBGPD ведётся при поддержке регионального интернет-регистратора RIPE NCC, который заинтересован в доведении функциональности OpenBGPD до пригодности к использованию на серверах для маршрутизации в точках межоператорского обмена трафиком (IXP) и в создании полноценной альтернативы пакету BIRD (из открытых альтернатив с реализацией протокола BGP можно отметить проекты FRRouting, GoBGP, ExaBGP и Bio-Routing).
В проекте основное внимание уделяется обеспечению максимального уровня безопасности и надёжности. Для защиты применяется жёсткая проверка корректности всех параметров, средства для контроля соблюдения границ буферов, разделение привилегий и ограничение доступа к системным вызовам. Из достоинств также отмечается удобный синтаксис языка определения конфигурации, высокая производительность и эффективность работы с памятью (например, OpenBGPD может работать с таблицами маршрутизации, включающими сотни тысяч записей).
Ключевые изменения в новой версии:
- Переписана реализация таблиц Adj-RIB-Out (Adjacency Routing Information Base Out), хранящих маршруты для анонсирования соседним маршрутизаторам. Реализованные при переработке оптимизации позволили заметно снизить потребление памяти и повысить производительность, например, на крупных серверах обмена трафиком (IXP, Internet Exchange Point) потребление памяти снизилось более чем на 50%.
- Модернизирована обработка UPDATE-сообщений, которая разделена на две фазы — вначале осуществляется обновление таблиц Adj-RIB-In,
Loc-RIB и FIB, после чего отдельно обрабатываются все таблицы Adj-RIB-Out. Новый метод позволил снизить задержки, так как большую часть времени занимает обновление таблиц Adj-RIB-Out. - Задействована новая масштабируемая реализация хэш-таблиц, позволившая повысить производительность за счёт более эффективного попадания данных в кэш.
- Добавлены новые метрики для отслеживания времени, потраченного на выполнение различных этапов цикла обработки событий в движке маршрутизации.
Источник: http://www.opennet.ru/opennews/art.shtml?num=64534
