Ukazała się oficjalna wersja serwera LDAP ReOpenLDAP 1.2.0, stworzonego w celu wskrzeszenia projektu po zablokowaniu jego repozytorium na GitHubie. W kwietniu GitHub usunął konta i repozytoria wielu rosyjskich programistów powiązanych z firmami objętymi amerykańskimi sankcjami, w tym repozytorium ReOpenLDAP. W związku z ponownym zainteresowaniem użytkowników ReOpenLDAP zdecydowano o przywróceniu projektu do życia.
Projekt ReOpenLDAP powstał w 2014 roku w celu rozwiązania problemów powstałych podczas wykorzystania pakietu OpenLDAP w infrastrukturze PJSC MegaFon, gdzie serwer LDAP był zaangażowany w jeden z podsystemów infrastruktury (NGDR to UDR (User Data Repository), zgodnie z 3GPP 23.335 i jest scentralizowanym węzłem przechowującym dane o wszystkich rodzajach usług abonenckich w infrastrukturze informatycznej operatora telekomunikacyjnego). Taka aplikacja zakładała przemysłową pracę w trybie 24×7 konkretnego katalogu LDAP o wielkości 10-100 milionów wpisów, w scenariuszu dużego obciążenia (10 tys. aktualizacji i 50 tys. odczytów na sekundę) oraz w topologii multi-master.
Firma Symas Corp, jako główni programiści, autorzy i właściciele kodu OpenLDAP, nie byli w stanie rozwiązać powstałych problemów, więc postanowili spróbować zrobić to sami. Jak się później okazało, błędów w kodzie było znacznie więcej, niż można było się spodziewać. Dlatego włożono więcej wysiłku, niż planowano, a ReOpenLDAP nadal ma pewną wartość i (według dostępnych informacji) jest jedynym serwerem LDAP, który w pełni i niezawodnie obsługuje topologię wielu wzorców dla RFC-4533, także w scenariuszach dużego obciążenia.
W 2016 roku cele projektu zostały osiągnięte, a także zakończono wsparcie i rozwój projektu bezpośrednio w interesie MegaFon PJSC. Następnie ReOpenLDAP był aktywnie rozwijany i wspierany przez kolejne trzy lata, ale stopniowo stracił swoje znaczenie:
- Technologicznie MegaFon migrował z ReOpenLDAP do Tarantool, co jest poprawne architektonicznie;
- Nie było wyraźnie zainteresowanych użytkowników ReOpenLDAP;
- Żaden z deweloperów nie dołączył do projektu, zarówno ze względu na wysoki próg wejścia, jak i niski popyt na sam ReOpenLDAP;
- Rozwój i wsparcie zaczęły zajmować zbyt dużo czasu pozostałemu (głównemu) programiście, ponieważ zawodowo odszedł od przemysłowej działalności ReOpenLDAP.
W stanie nieaktywnym repozytorium ReOpenLDAP istniało do kwietnia 2022 r., kiedy to administracja Githuba usunęła powiązane konta i samo repozytorium bez żadnego ostrzeżenia ani wyjaśnienia. Ostatnio autor otrzymał kilka próśb dotyczących ReOpenLDAP, w tym lokalizacji repozytorium i statusu bazy kodu. Dlatego zdecydowano się na minimalną aktualizację projektu, stworzenie wersji technicznej i wykorzystanie tej wiadomości do poinformowania wszystkich zainteresowanych.
Aktualny stan projektu, w tym dotyczący OpenLDAP:
- Ulepszenia i poprawki nie są importowane z OpenLDAP od grudnia 2018 r. W przypadku aplikacji krytycznych należy przeanalizować wszystkie poprawki w OpenLDAP i zaimportować odpowiednie.
- Obecne wersje OpenLDAP są teraz oparte na gałęzi 2.5. Dlatego też opisane poniżej modyfikacje zostały wprowadzone jedynie w gałęzi „devel” (która odpowiadała OpenLDAP 2.5), a następnie zostały połączone w gałąź „master” (która przed połączeniem odpowiadała OpenLDAP 2.4).
- W 2018 roku nadal występowały problemy z backendem konfiguracyjnym odziedziczonym z OpenLDAP. W szczególności podczas zmiany konfiguracji serwera za pomocą zaplecza konfiguracyjnego (konfiguracja LDAP przez LDAP) występują sytuacje wyścigowe lub problemy rekurencyjne, w tym zakleszczenia.
- Prawdopodobnie występują problemy z kompilacją aktualnych wersji OpenSSL/GnuTLS;
- Przechodzi podstawowy zestaw zastrzeżonych testów, bez tych wymagających TLS/SSL;
Najnowsze ulepszenia:
- Biblioteka libmdbx została zaktualizowana do najnowszej wersji, eliminując wszystkie odnotowane problemy z niekompatybilnością, które powstały w związku z rozwojem biblioteki. Jednakże prawdopodobnie na stronach podręcznika znajdują się pewne nieaktualne informacje.
- Używana jest aktualna wersja autotools 2.71.
- Wprowadzono drobne zmiany w następstwie niektórych ostrzeżeń w bieżącym kompilatorze gcc 11.2.
Źródło: opennet.ru