Представен е изданието на преносимата версия на пакета за маршрутизиране OpenBGPD 9.1, разработван от екипа на проекта 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 може да работи с маршрутизиращи таблици, включващи стотици хиляди записи).
Ключови изменения в новата версия:
- Повишена е производителността на филтрирането на изходящите маршрути (outbound filter). Правилата за филтриране вече се съхраняват в масив, а повторяемите филтри между различни пирове се дублират.
- По време на RDE (Route Decision Engine) е подобрена производителността при обработка на таблици с филтри (filter_sets) — за повишаване на ефективността на кеширането, филтрите са преместени в линейен масив от обекти. На сървъри с голям брой маршрути, свързаните с филтри оптимизации позволиха да се съкрати времето за начална синхронизация с над 25%.
- Подобрен е отразяването в логовете на грешките от парсирането на атрибути, които водят до събиране на сесии.
- В командата ‘show rib memory’ са добавени допълнителни метрики за оценка на потреблението на памет.
Източник: opennet.ru
