Den portable utgaven av rutepakken OpenBGPD 9.0 har blitt presentert, utviklet av utviklerne av OpenBSD-prosjektet, og tilpasset for bruk i FreeBSD og Linux (støtte for Alpine, Debian, Fedora, RHEL/CentOS, Ubuntu er bekreftet). For å sikre portabilitet er det brukt deler av koden fra prosjektene OpenNTPD, OpenSSH og LibreSSL. Prosjektet støtter det meste av spesifikasjonene for BGP 4 og oppfyller kravene i RFC8212, men forsøker ikke å omfatte alt, og gir hovedsakelig støtte for de mest etterspurte og utbredte funksjonene.
Utviklingen av OpenBGPD skjer med støtte fra den regionale internettregistratoren RIPE NCC, som er interessert i å gjøre funksjonaliteten til OpenBGPD brukbar for servere ruting på internettutvekslingspunkter (IXP) og skape et fullverdig alternativ til BIRD-pakken (blant de åpne alternativene med implementering av BGP-protokollen kan man nevne prosjektene FRRouting, GoBGP, ExaBGP og Bio-Routing).
I prosjektet legges det hovedvekt på å sikre maksimal sikkerhet og pålitelighet. For beskyttelse brukes streng validering av alle parametre, verktøy for å kontrollere overholdelse av buffergrenser, privilegieskille og begrensning av tilgangen til systemanrop. En annen fordel er det brukervennlige syntaksen av konfigurasjonsdefinisjonsspråket, høy ytelse og effektiv minnehåndtering (for eksempel kan OpenBGPD håndtere rutetabeller som inkluderer hundretusener av oppføringer).
Nøkkelendringer i den nye versjonen:
- Implementeringen av Adj-RIB-Out-tabeller (Adjacency Routing Information Base Out), som lagrer rutene som annonseres til nabroutere, er omskrevet. Optimaliseringene som ble implementert under omarbeidingen har betydelig redusert minneforbruket og økt ytelsen; for eksempel ble minnebruken redusert med mer enn 50% på store trafikkutvekslingsservere (IXP, Internet Exchange Point).
- Oppdateringen av UPDATE-meldinger er modernisert, og er delt opp i to faser – først oppdateres Adj-RIB-In, Loc-RIB og FIB-tabellene, deretter behandles alle Adj-RIB-Out-tabellene separat. Den nye metoden har gjort det mulig å redusere forsinkelsene, da mesteparten av tiden brukes på oppdatering av Adj-RIB-Out-tabellene.
- En ny skalerbar implementering av hash-tabeller er blitt aktivert, noe som har økt ytelsen gjennom mer effektiv tilgang til cache.
- Nye metrikker er lagt til for å overvåke tiden brukt på de forskjellige fasene av prosesseringssyklusen i rutingsmotoren.
Kilde: opennet.ru
