Здравейте на всички! Дебютната ми статия в habr е посветена на много интересна тема – системата за контрол на качеството на интернет мрежата RIPE Atlas. Частично темите на интересите ми включват изследвания на интернет и киберпространството (терминът бързо набира популярност, особено в научните среди). В интернет, включително на habr, има много материали за RIPE Atlas, но ми се сториха недостатъчно свързани. Статията използва предимно информация от официалния сайт. и лични размишления.

Вместо предисловие
Регионалният интернет регистратор (RIR), чиято отговорност обхваща Европа, Централна Азия и Близкия изток, е RIPE NCC (Réseaux IP Européens Network Coordination Centre – Мрежов координационен център на Европейските IP мрежи). RIPE NCC е непечеливша организация, разположена в Нидерландия. Подпомага работата на интернет. Предоставя IP адреси и номера на автономни системи на местни интернет провайдъри и големи организации.
Един от водещите проекти на RIPE NCC, насочени към изследване на състоянието на интернет, е RIPE Atlas (стартирал в края на 2010 година), който се явява развитие на Услугата за тестово измерване на трафика (Test Traffic Measurement Service), прекратила работата си през 2014 година.
RIPE Atlas е глобална мрежа от сензори, които извършват активни измервания на състоянието на интернет. В момента в мрежата RIPE Atlas има хиляди сензори и тяхното число постоянно нараства. RIPE NCC агрегира събраните данни и условно безплатно ги предоставя на потребителите в удобен формат.
Развитието на мрежата се основава на принципа на доброволна инсталация на сензори от потребители в тяхната инфраструктура, за което се предоставят „кредити“, които могат да бъдат използвани за провеждане на интересни измервания с помощта на други сензори.
Обикновено RIPE Atlas се използва:
- за проследяване на достъпността на собствената мрежа от различни точки в интернет;
- за изследване и отстраняване на проблеми в мрежата с помощта на бърза и гъвкава проверка на свързаността;
- в системата за мониторинг на собствената мрежа;
- за мониторинг на достъпността на DNS инфраструктурата;
- за проверка на свързаността по протокол IPv6.
RIPE Atlas
Както вече споменах, RIPE Atlas е система от сензори, разположени в интернет мрежата и управлявани от единна административна структура. Освен обикновените сензори (Probes), има и по-напреднали - котви (Anchors).
Към средата на 2020 година системата RIPE Atlas разполага с над 11 хиляди активни сензора и повече от 650 активни котви, които в комбинация извършват над 25 хиляди измервания и получават над 10 хиляди резултата в секунда.
На графиките по-долу е показан растежът на броя на сензорите и котвите.


А на следващите рисунки е показана карта на света с указание на местоположението на сензорите и котвите, съответно.


Въпреки регионалния статус на RIPE NCC, мрежата RIPE Atlas обхваща практически целия свят, като Русия попада в топ-5 по брой инсталирани сензори (568), наред с Германия (1562), САЩ (1440), Франция (925) и Великобритания (610).
Управляващи сървъри
При изучаване на работата на сензора беше установено, че той периодично (на всеки 4 минути) проверява свързаността с някои обекти в мрежата, сред които са коренови DNS-сървъри и възли с домейни от вида «ctr-sin02.atlas.ripe.net», които предполагам, са управляващите сървъри на мрежата RIPE Atlas.
На официалния сайт не намерих информация за управляващите сървъри, но може да се предположи, че техните задачи включват управлението на сензорите, както и агрегирането и обработката на данни. Ако предположението ми е вярно, то съществуват поне 6 управляващи сървъра, от които 2 са разположени в САЩ, 2 в Нидерландия, 1 в Германия и 1 в Сингапур. На всички сървъри е отворен порт 443.
Ако някой разполага с повече информация за управляващите сървъри на мрежата RIPE Atlas - моля, да внесе яснота по този въпрос.
Сензор

Сензорът RIPE Atlas представлява малко устройство (TP-Link 3020), което се захранва от USB и се свързва към Ethernet порта на рутера с мрежов кабел. В зависимост от модела, сензорът може да има чипсет Atheros AR9331, 400 MHz, 4 MB флаш и 32 MB RAM или чипсет MediaNek MT7628NN, 575 MHz, 8 MB флаш и 64 MB RAM.
Котва

Якорят е усъвършенстван сензор с много по-висока производителност и измервателна способност. Представлява устройство в стандартно 19-инчово изпълнение на хардуерната платформа APU2C2 или APU2E2 с 4-ядрен процесор 1 GHz, 2 GB RAM, 3 порта Gigabit Ethernet и 250 GB SSD. .
Инсталиране и управление на сензора
Както споменах, сензорите се разпространяват безплатно с цел инсталирането им в собствената инфраструктура. При искане на сензор се посочва държава, град и номер на автономната система, в която ще се разполага. В отговор на моята заявка RIPE NCC изпрати такова съобщение.
За съжаление, вашето искане не отговаря на критериите ни за получаване на хардуерен сензор в момента. Въпреки че целта ни е да разпространяваме сензори RIPE Atlas възможно най-широко, изглежда, че вече има достатъчно устройства, свързани или в рамките на посочената от вас ASN, или в мрежата, за която сте подали заявка, или в страната, в която сте подали заявка.
Не е страшно. В такъв случай можете да инсталирате софтуерен сензор, например на виртуална машина, домашен сървър или рутер – няма ограничения за местоположението и автономната система. Поддържат се CentOS, Debian, Raspbian и Turris OS. За разгръщане е нужно да изтеглите и инсталирате съответния софтуер, например от .
Инсталирането на софтуерния сензор е доста просто. Например, за инсталиране в CentOS 8 трябва да изпълните командите:
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 и да регистрирате сензора, като предоставите SSH-ключ, който се намира в /var/atlas-probe/etc/probe_key.pub, както и да посочите номера на автономната система и своя град. В писмото припомниха необходимостта от коректно посочване на местоположението на сензора.
Управлението на сензора се ограничава до възможността за споделяне на измервателния ресурс с други потребители, настройване на известия за отпадания, както и стандартни мрежови настройки (адрес, шлюз по подразбиране и т.н.).
Измервания
Накрая стигнахме до провеждането на измервания. Настройката на задачите за измервания се извършва от личния кабинет. Там също можете да се запознаете с резултатите.
Формулирането на зададената задача за измерване се състои от три стъпки: избор на тип измерване, избор на сензор и избор на период на измерване.
Измерванията могат да бъдат от следните типове: ping, traceroute, DNS, SSL, HTTP, NTP. Подробните настройки за конкретен тип измерване, с изключение на специфичните, обусловени от конкретния протокол или утилита, включват: целеви адрес, протокол на ниво мрежа, брой пакети в измерването и времето между измерванията, размер на пакета и времето между пакетите, степен на случайно изместване на времето на стартиране на изпращане на пакетите.
Изборът на сензори е възможен по техния идентификатор или страна на разполагане, регион, автономна система, етикет и т.н.
Периодът на провеждане на измерванията се задава с времето на начало и край.
Резултатите от измерванията са налични на сайта в личния кабинет, които също могат да бъдат получени във формат json. Общо, резултатите от измерванията представляват количествени показатели, характеризиращи достъпността на някакъв възел или услуга.
За потребителя възможностите за измервания са представени чрез широк, но доста ограничен спектър. Въпреки това, е очевидно, че възможностите на системата предвиждат генериране на пакети с почти всяка конфигурация, което отваря доста по-големи възможности за измерване на състоянието на интернет мрежата.
По-долу е представен пример за необработени резултати от единични измервания с настройки по подразбиране. В измерванията тип ping, traceroute и SSL като цел е избран IP адресът habr.com, а DNS — IP адресът на DNS сървъра на Google, NTP — IP адресът на NTP сървъра ntp1.stratum2.ru. Във всичките измервания е използван един сензор, разположен във Владивосток.
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}]Заключение
Мрежата RIPE Atlas е удобно средство, което позволява в близко до реално време да се следи достъпността на обекти и услуги в интернет.
Данните, получени с помощта на мрежата RIPE Atlas, могат да бъдат полезни за операторите на връзки, изследователите, техническата общност и всички, които се интересуват от здравословното функциониране на интернет и искат да научат повече за основните мрежови структури и потоци от данни, които поддържат работата на интернет в глобален мащаб.
P.S. RIPE Atlas не е единствен по рода си, съществуват аналози, например .
Източник: habr.com
