Выпуск OpenBGPD 9.0
Представлен выпуск переносимой редакции пакета маршрутизации OpenBGPD 9.0, развиваемого разработчиками проекта OpenBSD и адаптированного для использования во FreeBSD и Linux (заявлена поддержка Alpine, Debian, Fedora, RHEL/CentOS, Ubuntu). Для обеспечения переносимости использованы части кода из проектов OpenNTPD, OpenSSH и LibreSSL. Проект поддерживает большую часть спецификаций BGP 4 и соответствует требованиям RFC8212, но не пытается объять необъятное и обеспечивает главным образом поддержку наиболее востребованных и распространённых функций.
Разработка 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
© OpenNet
