Представен е новият преносим релийз на пакетa за маршрутизиране 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.
- Въведена е нова мащабируема реализация на хеш-таблици, която повишава производителността чрез по-ефективно кеширане на данни.
- Добавени са нови метрики за проследяване на времето, отделено за изпълнението на различни етапи от цикъла на обработка на събития в маршрутизатора.
Източник: opennet.ru
