La version portable du paquet de routage OpenBGPD 9.1 a été présentée, développée par les concepteurs du projet OpenBSD et adaptée pour être utilisée sur FreeBSD et Linux (prise en charge d'Alpine, Debian, Fedora, RHEL/CentOS, Ubuntu). Pour assurer la portabilité, des parties du code des projets OpenNTPD, OpenSSH et LibreSSL ont été utilisées. Le projet prend en charge la plupart des spécifications BGP 4 et respecte les exigences de RFC8212, mais n'essaie pas de tout englober, se concentrant principalement sur le support des fonctionnalités les plus demandées et répandues.
Le développement d'OpenBGPD est soutenu par le registre Internet régional RIPE NCC, qui s'intéresse à rendre la fonctionnalité d'OpenBGPD utilisable sur serveurs pour le routage aux points d'échange interopérateurs de trafic (IXP) et créer une véritable alternative au package BIRD (parmi les alternatives ouvertes implémentant le protocole BGP, on peut citer les projets FRRouting, GoBGP, ExaBGP et Bio-Routing).
Le projet met l'accent sur la garantie d'un niveau maximal de sécurité et de fiabilité. Pour protéger, il utilise une vérification stricte de la validité de tous les paramètres, des outils pour contrôler le respect des limites de buffer, le principe de séparation des privilèges et la restriction d'accès aux appels système. Parmi ses avantages, on note également une syntaxe conviviale du langage de définition de configuration, une haute performance et une efficacité dans la gestion de la mémoire (par exemple, OpenBGPD peut gérer des tables de routage contenant des centaines de milliers d'enregistrements).
Les changements clés dans la nouvelle version :
- La performance du filtre de routes sortantes (outbound filter) a été améliorée. Les règles de filtrage sont désormais enregistrées dans un tableau, et les filtres redondants entre différents pairs sont dédupliqués.
- Dans le moteur de décision de routage (RDE), la performance du traitement des tables avec des filtres (filter_sets) a été augmentée — afin d'améliorer l'efficacité du cache, les filtres ont été déplacés dans un tableau d'objets linéaire. Sur les serveurs avec un grand nombre de routes, les optimisations liées aux filtres ont permis de réduire la durée de la synchronisation initiale de plus de 25%.
- L'enregistrement des erreurs de parsing des attributs entraînant la collecte de sessions a été amélioré.
- Des métriques supplémentaires ont été ajoutées à la commande ‘show rib memory’ pour évaluer la consommation de mémoire.
Source : opennet.ru
