È stato rilasciato il porting della versione del pacchetto di routing OpenBGPD 9.1, sviluppato dai creatori del progetto OpenBSD e adattato per l'uso su FreeBSD e Linux (supporto dichiarato per Alpine, Debian, Fedora, RHEL/CentOS, Ubuntu). Per garantire la portabilità sono stati utilizzati parti del codice provenienti dai progetti OpenNTPD, OpenSSH e LibreSSL. Il progetto supporta gran parte delle specifiche BGP 4 e soddisfa i requisiti di RFC8212, ma non cerca di abbracciare l'inafferrabile e fornisce principalmente il supporto per le funzioni più richieste e diffuse.
Lo sviluppo di OpenBGPD avviene con il supporto del registro internet regionale RIPE NCC, che è interessato a portare le funzionalità di OpenBGPD all'idoneità per l'utilizzo su server per il routing nei punti di interconnessione tra operatori (IXP) e nella creazione di un'alternativa completa al pacchetto BIRD (tra le alternative open source con implementazioni del protocollo BGP si possono citare i progetti FRRouting, GoBGP, ExaBGP e Bio-Routing).
Nel progetto, la massima attenzione è rivolta a garantire il massimo livello di sicurezza e affidabilità. Per la protezione, viene applicato un rigoroso controllo della correttezza di tutti i parametri, strumenti per il monitoraggio del rispetto dei limiti dei buffer, separazione dei privilegi e limitazione dell'accesso alle chiamate di sistema. Tra i vantaggi si nota anche una sintassi comoda per il linguaggio di definizione della configurazione, elevate prestazioni ed efficienza nell'uso della memoria (ad esempio, OpenBGPD può gestire tabelle di instradamento che includono centinaia di migliaia di record).
Modifiche chiave nella nuova versione:
- Le prestazioni del filtro di uscita (outbound filter) sono state migliorate. Le regole di filtraggio ora vengono conservate in un array e i filtri ripetuti tra diversi peer vengono deduplicati.
- Durante il processo RDE (Route Decision Engine) è stata migliorata l'efficienza nell'elaborazione delle tabelle di filtri (filter_sets) — per aumentare l'efficacia della memorizzazione nella cache, i filtri sono stati spostati in un array lineare di oggetti. Su server con un elevato numero di rotte, le ottimizzazioni relative ai filtri hanno consentito di ridurre la durata della sincronizzazione iniziale di oltre il 25%.
- È stato migliorato il logging degli errori durante l'analisi degli attributi che portano alla raccolta delle sessioni.
- Sono state aggiunte metriche addizionali al comando ‘show rib memory’ per valutare il consumo di memoria.
Fonte: opennet.ru
