Przedstawiono wydanie przenośnej edycji pakietu routingu OpenBGPD 8.2, rozwijanego przez programistów projektu OpenBSD i dostosowanego do użycia w FreeBSD i Linux (deklarowane wsparcie dla Alpine, Debian, Fedora, RHEL/CentOS, Ubuntu). Aby zapewnić przenośność, wykorzystano części kodu z projektów OpenNTPD, OpenSSH i LibreSSL. Projekt wspiera większość specyfikacji BGP 4 i spełnia wymagania RFC8212, ale nie próbuje objąć wszystkiego i głównie zapewnia wsparcie dla najbardziej poszukiwanych i powszechnie stosowanych funkcji.
Rozwój OpenBGPD odbywa się przy wsparciu regionalnego rejestratora internetowego RIPE NCC, który jest zainteresowany przystosowaniem funkcjonalności OpenBGPD do używania na serwerach do routingu w punktach wymiany ruchu między operatorami (IXP) oraz do stworzenia pełnoprawnej alternatywy dla pakietu BIRD (wśród otwartych alternatyw z realizacją protokołu BGP można wymienić projekty FRRouting, GoBGP, ExaBGP oraz Bio-Routing).
W projekcie główną uwagę poświęcono zapewnieniu maksymalnego poziomu bezpieczeństwa i niezawodności. W celu ochrony zastosowano surową kontrolę poprawności wszystkich parametrów, narzędzia do monitorowania zgodności z granicami buforów, podział uprawnień oraz ograniczenia dostępu do wywołań systemowych. Zaletami są także wygodna składnia języka definiowania konfiguracji, wysoka wydajność i efektywność pracy z pamięcią (na przykład, OpenBGPD może obsługiwać tabele routingu zawierające setki tysięcy wpisów).
Kluczowe zmiany w nowej wersji:
- Zaktualizowano realizację mechanizmu ASPA (Autonomous System Provider Authorization), stosowanego w BGP do weryfikacji ścieżek AS_PATH, autoryzacji systemów autonomicznych dostawców i ochrony przed wyciekiem niepoprawnych tras. Realizacja ASPA została dostosowana do specyfikacji draft-ietf-sidrops-aspa-verification-16 i draft-ietf-sidrops-aspa-profile-16, i przeniesiona na użycie tabel wyszukiwania, niezależnych od AFI (Address Family Indicator).
- Usunięto błąd w kodzie parsera wiadomości netlink, związany z nieprawidłowym określeniem rozmiaru wiadomości, co prowadziło do awaryjnego zakończenia na platformie Linux.
- Kod do generacji wiadomości UPDATE został przeniesiony na nowe API ibuf.
- Poprawiono komunikaty o błędach wyświetlane w bgpctl przy próbie wykorzystania funkcji, które nie są wspierane w przenośnej wersji OpenBGPD.
- Przykład reguł filtracji GRACEFUL_SHUTDOWN został przerobiony na obsługę tylko sesji ebgp.
Źródło: opennet.ru
