Представлен выпуск переносимой редакции пакета маршрутизации OpenBGPD 8.2, развиваемого разработчиками проекта 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 может работать с таблицами маршрутизации, включающими сотни тысяч записей).
Ключевые изменения в новой версии:
- Обновлена реализация механизма ASPA (Autonomous System Provider Authorization), применяемого в BPG для верификации путей AS_PATH, авторизации автономных систем провайдеров и защиты от утечки некорректных маршрутов. Реализация ASPA приведена к соответствию спецификациям draft-ietf-sidrops-aspa-verification-16 и draft-ietf-sidrops-aspa-profile-16, и переведена на использование поисковых таблиц, не зависящих от AFI (Address Family Indicator).
- Устранена ошибка в коде парсера сообщений netlink, связанная с неверным определением размера сообщений и приводящая к аварийному завершению на платформе Linux.
- Код для генерации сообщений UPDATE переведён на использование нового API ibuf.
- Улучшены сообщения об ошибках, выводимых в bgpctl при попытке использования возможностей, не поддерживаемых в переносимой версии OpenBGPD.
- Пример правил фильтрации GRACEFUL_SHUTDOWN переделан для обработки только сеансов ebgp.