RIPE Atlas

Witam wszystkich! Chciałbym poświęcić swój debiutancki artykuł na habr bardzo interesującemu tematowi – systemowi kontroli jakości sieci Internet RIPE Atlas. Częściowo pole moich zainteresowań obejmuje badania Internetu lub cyberprzestrzeni (termin ten zyskuje na popularności, szczególnie w kręgach naukowych). W Internecie, w tym na habr, dostępnych jest wiele materiałów na temat RIPE Atlas, ale wydają mi się one zbyt fragmentaryczne. W artykule przeważająco wykorzystywane były informacje z oficjalnej strony. RIPE Atlas i własne przemyślenia.

RIPE Atlas

Zamiast wstępu

Regionalnym rejestratorem internetowym (RIR), którego obszar odpowiedzialności obejmuje Europę, Azję Środkową i Bliski Wschód, jest RIPE NCC (Réseaux IP Européens Network Coordination Centre – Europejski Centrum Koordynacji Sieci IP). RIPE NCC to organizacja non-profit, z siedzibą w Holandii. Wspiera działanie Internetu. Przyznaje adresy IP i numery systemów autonomicznych lokalnym dostawcom Internetu i dużym organizacjom.

Jednym z wiodących projektów RIPE NCC, mających na celu badanie stanu Internetu, jest RIPE Atlas (rozpoczęty pod koniec 2010 roku), który stał się rozwinięciem Usługi Testowania Ruchu (Test Traffic Measurement Service), zakończonej w 2014 roku.

RIPE Atlas to globalna sieć czujników, które prowadzą aktywne pomiary stanu Internetu. Obecnie w sieci RIPE Atlas znajduje się tysiące czujników, a ich liczba stale rośnie. RIPE NCC agreguje zbierane dane i warunkowo udostępnia je w przystępnej formie użytkownikom.

Rozwój sieci oparty jest na zasadzie dobrowolnego instalowania czujników przez użytkowników w ich infrastrukturze, za co przyznawane są "kredyty", które można wykorzystać do przeprowadzania interesujących pomiarów z wykorzystaniem innych czujników.

Zasadniczo RIPE Atlas jest używany do:

  • monitorowania dostępności swojej sieci z różnych punktów w Internecie;
  • badania i rozwiązywania problemów w sieci za pomocą szybkiej i elastycznej weryfikacji połączenia;
  • w systemie monitorowania własnej sieci;
  • monitorowania dostępności infrastruktury DNS;
  • sprawdzania połączenia za pomocą protokołu IPv6.

RIPE Atlas

Jak już wspomniano, RIPE Atlas to system sensorów umieszczonych w internecie, który jest zarządzany centralnie. Oprócz standardowych sensorów (Probes) są też bardziej zaawansowane – kotwice (Anchors).

Na połowę 2020 roku system RIPE Atlas liczy ponad 11 tysięcy aktywnych sensorów i ponad 650 aktywnych kotwic, które łącznie wykonują ponad 25 tysięcy pomiarów i uzyskują ponad 10 tysięcy wyników na sekundę.

Na poniższych wykresach przedstawiony jest wzrost liczby sensorów i kotwic.

RIPE Atlas

RIPE Atlas

Na następnych obrazkach znajduje się mapa świata z zaznaczonymi lokalizacjami sensorów i kotwic.

RIPE Atlas

RIPE Atlas

Pomimo regionalnego statusu RIPE NCC, sieć RIPE Atlas pokrywa praktycznie cały świat, przy czym Rosja znajduje się w czołowej piątce pod względem liczby zainstalowanych sensorów (568), obok Niemiec (1562), USA (1440), Francji (925) i Wielkiej Brytanii (610).

Serwery zarządzające

Podczas analizy działania sensora odkryto, że co cztery minuty sprawdza on łączność z wybranymi obiektami w sieci, w tym z serwerami DNS oraz węzłami o nazwach domenowych w formacie „ctr-sin02.atlas.ripe.net”, które, jak sądzę, są serwerami zarządzającymi siecią RIPE Atlas.

Na oficjalnej stronie nie znalazłem informacji o serwerach zarządzających, ale można przypuszczać, że ich zadaniem jest zarządzanie sensorami oraz agregowanie i przetwarzanie danych. Jeśli moja hipoteza jest poprawna, to istnieje co najmniej 6 serwerów zarządzających, z których 2 są zlokalizowane w USA, 2 w Holandii, 1 w Niemczech i 1 w Singapurze. Na wszystkich serwerach otwarty jest port 443.

Jeśli ktoś ma więcej informacji na temat serwerów zarządzających sieci RIPE Atlas – proszę o wyjaśnienie tej kwestii.

Sensor

RIPE Atlas

Sensor RIPE Atlas to małe urządzenie (TP-Link 3020), które zasilane jest z portu USB i łączy się z portem Ethernet routera za pomocą kabla sieciowego. W zależności od modelu sensor może mieć chipset Atheros AR9331, 400 MHz, 4 MB pamięci flash i 32 MB RAM lub chipset MediaNek MT7628NN, 575 MHz, 8 MB pamięci flash i 64 MB RAM.

Kotwica

RIPE Atlas

Kotwica to zaawansowany czujnik o znacznie wyższej wydajności i zdolności pomiarowej. Jest to urządzenie w standardowej obudowie 19-calowej, oparte na platformie sprzętowej APU2C2 lub APU2E2, z czterordzeniowym procesorem 1 GHz, 2 GB RAM, 3 portami Gigabit Ethernet oraz 250 GB dyskiem SSD. Koszt kotwicy wynosi około 400 $.

Instalacja i zarządzanie czujnikiem

Jak już wspomniano, czujniki są dystrybuowane bezpłatnie w celu ich wdrożenia w infrastrukturę. Przy żądaniu czujnika należy podać kraj, miasto oraz numer systemu autonomicznego, w którym będzie się znajdować. W odpowiedzi na moje zapytanie RIPE NCC przesłało taką wiadomość.

Niestety, twoje zgłoszenie nie spełnia naszych kryteriów do uzyskania sprzętowego czujnika w tej chwili. Chociaż naszym celem jest jak najszersze dystrybuowanie czujników RIPE Atlas, wydaje się, że już istnieje wystarczająca liczba urządzeń podłączonych w obrębie podanego przez ciebie ASN, w sieci, do której zgłosiłeś się, lub w kraju, w którym złożyłeś wniosek.

Nie ma sprawy. W takim przypadku można zainstalować czujnik programowy, na przykład na maszynie wirtualnej, serwerze domowym lub routerze – nie ma ograniczeń co do lokalizacji i systemu autonomicznego. Obsługiwane są systemy CentOS, Debian, Raspbian i Turris OS. Aby przeprowadzić wdrożenie, należy pobrać i zainstalować odpowiednie oprogramowanie, na przykład z repozytorium na GitHubie.

Instalacja czujnika programowego jest dość prosta. Na przykład, aby zainstalować w CentOS 8, należy wykonać następujące polecenia:

curl -O 'https://ftp.ripe.net/ripe/atlas/software-probe/centos8/noarch/ripe-atlas-repo-1-2.el8.noarch.rpm'

yum install ripe-atlas-repo-1-2.el8.noarch.rpm

i zarejestrować czujnik, przy czym należy dostarczyć klucz SSH, który znajduje się w /var/atlas-probe/etc/probe_key.pub, a także podać numer autonomicznego systemu i swoje miasto. W wiadomości przypomniano o konieczności poprawnego podania lokalizacji czujnika.

Zarządzanie czujnikiem ogranicza się do możliwości dzielenia zasobów pomiarowych z innymi użytkownikami, ustawienia powiadomień o przestojach oraz standardowych ustawień sieciowych (adres, brama domyślna itp.).

Pomiar

Wreszcie przeszliśmy do przeprowadzania pomiarów. Konfiguracja zadań pomiarowych odbywa się z panelu użytkownika. Tam też można zapoznać się z wynikami.

Tworzenie zadania pomiarowego składa się z trzech kroków: wybór typu pomiaru, wybór czujnika, wybór okresu pomiaru.

Pomiar może być następujących typów: ping, traceroute, DNS, SSL, HTTP, NTP. Szczegółowe ustawienia konkretnego typu pomiaru, z wyjątkiem specyficznych wymagań wynikających z konkretnego protokołu lub narzędzia, obejmują: adres docelowy, protokół warstwy sieciowej, liczbę pakietów w pomiarze i czas pomiędzy pomiarami, rozmiar pakietu oraz czas pomiędzy pakietami, stopień losowego przesunięcia czasu rozpoczęcia wysyłania pakietów.

Wybór czujników możliwy jest według ich identyfikatora, kraju lokalizacji, regionu, systemu autonomicznego, tagu itd.

Okres przeprowadzania pomiarów określany jest czasem rozpoczęcia i zakończenia.

Wyniki pomiarów są dostępne na stronie w panelu użytkownika, które również można uzyskać w formacie json. Generalnie wyniki pomiarów przedstawiają ilościowe wskaźniki charakteryzujące dostępność pewnego węzła lub usługi.

Dla użytkownika możliwości pomiarów przedstawione są szerokim, ale dość ograniczonym zakresem. Jednak oczywiste jest, że możliwości systemu przewidują generację pakietów w praktycznie dowolnej konfiguracji, co otwiera znacznie szersze możliwości dla pomiaru stanu sieci Internet.

Poniżej znajduje się przykład surowych wyników jednorazowych pomiarów z ustawieniami domyślnymi. W pomiarach typu ping, traceroute i SSL jako cel wybrano adres IP habr.com, DNS — adres IP serwera DNS Google, NTP — adres IP serwera NTP ntp1.stratum2.ru. We wszystkich pomiarach użyto jednego czujnika, zlokalizowanego we Władywostoku.

Ping

[{"fw":4790,"lts":18,"dst_name":"178.248.237.68","af":4,"dst_addr":"178.248.237.68","src_addr":"192.168.0.10","proto":"ICMP","ttl":55,"size":48,"result":[{"rtt":122.062873},{"rtt":121.775641},{"rtt":121.807897}],"dup":0,"rcvd":3,"sent":3,"min":121.775641,"max":122.062873,"avg":121.882137,"msm_id":26273241,"prb_id":4428,"timestamp":1594622562,"msm_name":"Ping","from":"5.100.99.178","type":"ping","group_id":26273241,"step":null,"stored_timestamp":1594622562}]

Traceroute

[{"fw":4790,"lts":19,"endtime":1594622643,"dst_name":"178.248.237.68","dst_addr":"178.248.237.68","src_addr":"192.168.0.10","proto":"ICMP","af":4,"size":48,"paris_id":1,"result":[{"hop":1,"result":[{"from":"192.168.0.1","ttl":64,"size":76,"rtt":7.49},{"from":"192.168.0.1","ttl":64,"size":76,"rtt":1.216},{"from":"192.168.0.1","ttl":64,"size":76,"rtt":1.169}]},{"hop":2,"result":[{"from":"5.100.98.1","ttl":254,"size":28,"rtt":1.719},{"from":"5.100.98.1","ttl":254,"size":28,"rtt":1.507},{"from":"5.100.98.1","ttl":254,"size":28,"rtt":1.48}]},---DATA OMITED---,{"hop":10,"result":[{"from":"178.248.237.68","ttl":55,"size":48,"rtt":121.891},{"from":"178.248.237.68","ttl":55,"size":48,"rtt":121.873},{"from":"178.248.237.68","ttl":55,"size":48,"rtt":121.923}]}],"msm_id":26273246,"prb_id":4428,"timestamp":1594622637,"msm_name":"Traceroute","from":"5.100.99.178","type":"traceroute","group_id":26273246,"stored_timestamp":1594622649}]

DNS

[{"fw":4790,"lts":146,"dst_addr":"8.8.8.8","af":4,"src_addr":"192.168.0.10","proto":"UDP","result":{"rt":174.552,"size":42,"abuf":"5BGAgAABAAEAAAAABGhhYnIDY29tAAABAAHADAABAAEAAAcmAASy+O1E","ID":58385,"ANCOUNT":1,"QDCOUNT":1,"NSCOUNT":0,"ARCOUNT":0},"msm_id":26289620,"prb_id":4428,"timestamp":1594747880,"msm_name":"Tdig","from":"5.100.99.178","type":"dns","group_id":26289620,"stored_timestamp":1594747883}]

SSL

[{"fw":4790,"lts":63,"dst_name":"178.248.237.68","dst_port":"443","method":"TLS","ver":"1.2","dst_addr":"178.248.237.68","af":4,"src_addr":"192.168.0.10","ttc":106.920213,"rt":219.948332,"cert":["-----BEGIN CERTIFICATE-----nMIIGJzCCBQ+gAwIBAg ---DATA OMITED--- yd\/teRCBaho1+Vn-----END CERTIFICATE-----"],"msm_id":26289611,"prb_id":4428,"timestamp":1594747349,"msm_name":"SSLCert","from":"5.100.99.178","type":"sslcert","group_id":26289611,"stored_timestamp":1594747352}]

NTP

[{"fw":4790,"lts":72,"dst_name":"88.147.254.230","dst_addr":"88.147.254.230","src_addr":"192.168.0.10","proto":"UDP","af":4,"li":"no","version":4,"mode":"server","stratum":2,"poll":8,"precision":0.0000076294,"root-delay":0.000518799,"root-dispersion":0.0203094,"ref-id":"5893fee5","ref-ts":3803732581.5476198196,"result":[{"origin-ts":3803733082.3982748985,"receive-ts":3803733082.6698465347,"transmit-ts":3803733082.6698560715,"final-ts":3803733082.5099263191,"rtt":0.111643,"offset":-0.21575},{"origin-ts":3803733082.5133042336,"receive-ts":3803733082.7847337723,"transmit-ts":3803733082.7847442627,"final-ts":3803733082.6246700287,"rtt":0.111355,"offset":-0.215752},{"origin-ts":3803733082.6279149055,"receive-ts":3803733082.899283886,"transmit-ts":3803733082.8992962837,"final-ts":3803733082.7392635345,"rtt":0.111337,"offset":-0.2157}],"msm_id":26289266,"prb_id":4428,"timestamp":1594744282,"msm_name":"Ntp","from":"5.100.99.178","type":"ntp","group_id":26289266,"stored_timestamp":1594744289}]

Podsumowanie

Sieć RIPE Atlas jest wygodnym narzędziem, które umożliwia monitorowanie dostępności obiektów i usług w Internecie w czasie zbliżonym do rzeczywistego.

Dane pozyskiwane dzięki sieci RIPE Atlas mogą być przydatne dla operatorów telekomunikacyjnych, badaczy, społeczności technicznej oraz wszystkich, którzy interesują się prawidłowym funkcjonowaniem Internetu i chcą dowiedzieć się więcej o podstawowych strukturach sieciowych i przepływach danych wspierających globalną działalność Internetu.

P.S. RIPE Atlas nie jest jedynym tego rodzaju narzędziem, istnieją także analogiczne rozwiązania, na przykład ten.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster