È stato rilasciato OpenBGPD 9.0, una versione portatile del pacchetto di routing sviluppato dai programmatori del progetto OpenBSD e adattato per l'uso su FreeBSD e Linux (è supportato Alpine, Debian, Fedora, RHEL/CentOS, Ubuntu). Per garantire la portabilità sono stati utilizzati parti del codice di progetti come OpenNTPD, OpenSSH e LibreSSL. Il progetto supporta la maggior parte delle specifiche BGP 4 e soddisfa i requisiti di RFC8212, ma non cerca di abbracciare l'infinito e si concentra principalmente sul supporto delle 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).
Il progetto pone un forte accento sul garantire il massimo livello di sicurezza e affidabilità. Per la protezione vengono utilizzati controlli rigorosi sulla correttezza di tutti i parametri, strumenti per monitorare i limiti dei buffer, separazione dei privilegi e limitazione dell'accesso alle chiamate di sistema. Tra i vantaggi si evidenzia anche una sintassi user-friendly del linguaggio di definizione della configurazione, alto rendimento e l'efficienza nella gestione della memoria (ad esempio, OpenBGPD può gestire tabelle di routing contenenti centinaia di migliaia di voci).
Modifiche chiave nella nuova versione:
- È stata riscritta l'implementazione delle tabelle Adj-RIB-Out (Adjacency Routing Information Base Out), che memorizzano i percorsi da annunciare ai router vicini. Le ottimizzazioni realizzate durante la revisione hanno permesso di ridurre significativamente il consumo di memoria e aumentare le prestazioni; ad esempio, sui grandi server di scambio del traffico (IXP, Internet Exchange Point) il consumo di memoria è diminuito di oltre il 50%.
- È stata modernizzata la gestione dei messaggi UPDATE, ora suddivisa in due fasi: in primo luogo, viene aggiornata la tabella Adj-RIB-In, Loc-RIB e FIB, dopo di che tutte le tabelle Adj-RIB-Out vengono elaborate separatamente. Il nuovo metodo ha permesso di ridurre i ritardi, poiché la maggior parte del tempo è dedicata all'aggiornamento delle tabelle Adj-RIB-Out.
- È stata implementata una nuova e scalabile realizzazione delle tabelle hash, che ha migliorato le prestazioni grazie a un accesso ai dati in cache più efficiente.
- Sono state aggiunte nuove metriche per monitorare il tempo speso nell'esecuzione delle varie fasi del ciclo di elaborazione degli eventi nel motore di routing.
Fonte: opennet.ru
