RIPE NCC uwolniła źródła narzędzi pomiarowych RIPE Atlas

9
1985
Sieci
Sieci

RIPE Network Coordination Centre uwolniła źródła narzędzia pomiarowego RIPE Atlas, czyli największej sieci pomiarowej w Internecie. RIPE NCC to niezależna i niedochodowa organizacja, która zajmuje się wsparciem infrastruktury sieci Internet oraz rozdzielaniem i przechowywaniem adresów IPv4, IPv6 oraz numerów AS. Jej projekt – RIPE Atlas, tworzy interaktywną mapę internetową na podstawie danych zebranych ze specjalnych sond.

Kod RIPE Atlas jest dostępny na licencji GPLv2. Jednym z powodów wypuszczenia kodu źródłowego były prośby użytkowników, którzy chcieli wiedzieć, jak to działa. Dodatkowo ma to pomóc w rozwoju oraz poprawie bezpieczeństwa całego projektu.

Sonda RIPE Atlas

Krótka historia

Projekt został rozpoczęty, jako mała modyfikacja standardowych narzędzi w oprogramowaniu BusyBox. Skrypty konsolowe uruchamiały ping i traceroute, przekierowywały wyjście do plików logów, a następnie używały narzędzia wget do publikacji wyników kontroli infrastruktury.

W tym czasie projekt ewoluował w dwóch różnych kierunkach. Wpierw został napisany planista, bazujący na crond ale dostosowany do potrzeb RIPE Atlas. Nazwano go perd, czyli periodic daemon. Odróżnia się on od crona tym, że posiada początek i koniec zadania, a także przedział czasowy w sekundach. Dodatkowo jest zaimplementowany jitter, aby uniknąć kolizji startu kilku pomiarów jednocześnie, a także stałego odstępu czasu w jednym pomiarze. Na koniec perd zwraca wyniki pomiarów, jako wywołania funkcji C, zamiast jako nowe procesy. Jest to wymagane przez ograniczenia pierwszej i drugiej wersji próbników, które nie posiadają MMU.

Głównym ograniczeniem perd i tradycyjnych narzędzi Uniksa jest wykonywanie tylko jednego pomiaru w danych czasie. Aby stworzyć wielozadaniowość, sondy musiałyby uruchamiać kilka instancji perda.

RIPE NCC wydało do tej pory kilka wersji sond:

Kolejnym logicznym krokiem było przepisanie kodu pomiarowego do używania libevent, biblioteki która zapewnia abstrakcję i zarządzanie zadaniami z wybranego wywołania systemu i nie zablokowanego I/O. Zmieniono także format pomiarów na JSON. Perd został przemianowany na eperd, aby móc zaadoptować libevent.

Kod libevent został zmodyfikowany, aby naprawić błąd w DNS stub-resolver.

Programiści dodali dwa ciekawe narzędzia, które posiadają specjalne modyfikacje, aby mogły używać funkcji RIPE Atlas. Telnet daemon otrzymał możliwość akceptowania komand z kontrolera do uruchamiania i zakańczania pomiarów. Eooqd jest demonem, który uruchamia pomiary one-off.

Narzędzia

Warto wymienić ciekawe funkcje, które wykorzystują pewne udoskonalenia z użyciem libevent.

  • perd – periodic daemon, używany z sslgetcert i komendą wysyłającą wyniki
  • eperd – periodic daemon z obsługą libevent, następca perd
  • evping jest implementacją protokołu ICMP
  • evtraceroute jest implementacją traceroute, używającą protokołów ICMP i UDP bez Paris
  • evtdig jest implementacją klienta DNS
  • evhttpget jest klientem HTTP
  • sslgetcert jest narzędziem, które pobiera certyfikat SSL z serwera, i nie ustanawia połączenia SSL

RIPE Atlas kompiluje i uruchamia się na Debianie 7.0 Wheezy oraz CentOS 6.3. Powinno też zadziałać na każdej nowoczesnej dystrybucji Linuksa.

ŹRÓDŁOlabs.ripe.net
Poprzedni artykułOLPC OS 13.1.0 z klawiaturą ekranową, obsługą ekranu dotykowego i OLPC XO-4 Touch
Następny artykułSystemd 203 z nowymi przełącznikami komend oraz tworzeniem pliku resolv.conf
Michał Olber
Interesuję się głównie sprzętem i działaniem jego pod systemami GNU/Linux. Testuję różne dystrybucje i robię recenzje. Interesuję się działaniem sprzętu pod Linuksem, dzięki czemu wiem, jaki zestaw komputerowy wybierać :)

9 KOMENTARZE

    • Raczej to potem może posłużyć za botnet. Pytanie, czy da się zdalnie wgrać oprogramowanie na takie urządzenia. Jeżeli tak, to jest to naprawdę ogromne zagrożenie :]

    • Czy istnieje możliwość aktualizacji systemu (Linuxa) wbudowanego w tę sondę?
      Mam tę sondę i dość często włączam ją:)

ZOSTAW ODPOWIEDŹ

Proszę wpisać swój komentarz!
Proszę podać swoje imię tutaj