Foi lançado o pacote portátil OpenBGPD 9.0, desenvolvido pelos criadores do projeto OpenBSD e adaptado para uso no FreeBSD e Linux (com suporte declarado para Alpine, Debian, Fedora, RHEL/CentOS, Ubuntu). Para garantir a portabilidade, foram utilizados trechos de código dos projetos OpenNTPD, OpenSSH e LibreSSL. O projeto oferece suporte à maioria das especificações BGP 4 e cumpre os requisitos da RFC8212, mas não tenta abranger tudo e assegura principalmente o suporte às funções mais requisitadas e disseminadas.
O desenvolvimento do OpenBGPD é feito com o apoio do registrador regional da Internet RIPE NCC, que está interessado em levar a funcionalidade do OpenBGPD a ser utilizável em servidores roteamento em pontos de troca de tráfego interoperadora (IXP) e na criação de uma alternativa completa ao pacote BIRD (entre as alternativas abertas com implementação do protocolo BGP, podemos citar os projetos FRRouting, GoBGP, ExaBGP e Bio-Routing).
O foco do projeto é garantir o máximo nível de segurança e confiabilidade. Para proteção, é aplicada uma verificação rigorosa da validade de todos os parâmetros, controles de conformidade com limites de buffer, separação de privilégios e restrição de acesso a chamadas de sistema. Entre as vantagens, também se destaca a sintaxe amigável da linguagem de definição de configuração. alto desempenho e a eficiência no uso de memória (por exemplo, o OpenBGPD pode trabalhar com tabelas de roteamento que incluem centenas de milhares de registros).
Mudanças chave na nova versão:
- A implementação das tabelas Adj-RIB-Out (Adjacency Routing Information Base Out), que armazenam rotas para anúncio a roteadores vizinhos, foi reescrita. As otimizações implementadas durante a reestruturação permitiram uma redução significativa no consumo de memória e um aumento de desempenho; por exemplo, em grandes servidores de troca de tráfego (IXP, Internet Exchange Point), o consumo de memória caiu mais de 50%.
- O tratamento das mensagens UPDATE foi modernizado, sendo dividido em duas fases: primeiro, atualizam-se as tabelas Adj-RIB-In, Loc-RIB e FIB, e em seguida, todas as tabelas Adj-RIB-Out são processadas separadamente. O novo método permitiu reduzir as latências, uma vez que a maior parte do tempo é dedicada à atualização das tabelas Adj-RIB-Out.
- Uma nova implementação escalável de tabelas hash foi introduzida, aumentando o desempenho por meio de um acesso mais eficiente aos dados em cache.
- Novas métricas foram adicionadas para monitorar o tempo gasto na execução de diferentes etapas do ciclo de processamento de eventos no mecanismo de roteamento.
Fonte: opennet.ru
