RIPE Atlas +20


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

image

Вместо предисловия


Региональным интернет регистратором (RIR), поле ответственности которого распространяется на Европу, Центральную Азию и Ближний Восток является RIPE NCC (Reseaux IP Europeens 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 тысяч результатов в секунду.

На графиках ниже показан рост числа датчиков и якорей.

image

image

А на следующих рисунках представлена карта Мира с указанием местоположения датчиков и якорей, соответственно.



image

Несмотря на региональный статус 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 – прошу внести ясность в этот вопрос.

Датчик


image

Датчик RIPE Atlas представляет собой небольшое устройство (TP-Link 3020), которое запитывается от USB и подключается к порту Ethernet маршрутизатора с помощью сетевого кабеля. В зависимости от модели датчик может иметь чипсет Atheros AR9331, 400 МГц, 4 МБ flash и 32 Мб ОЗУ или чипсет MediaNek MT7628NN, 575 МГц, 8 МБ flash и 64 Мб ОЗУ.

Якорь


image

Якорь – это усовершенствованный датчик, обладающий гораздо большей производительностью и измерительной способностью. Представляет собой устройство в стандартном 19-дюймовом исполнении на аппаратной платформе APU2C2 или APU2E2 с 4-х ядерным процессором 1 ГГц, 2 Гб ОЗУ, 3 портами Gigabit Ethernet и 250 Гб SSD-накопителем. Стоимость якоря составляет порядка 400 $.

Установка и управление датчиком


Как уже говорил, датчики распространяются бесплатно с целью их установки в свою инфраструктуру. При запросе датчика указывается страна, город и номер автономной системы, где он будет располагаться. В ответ на мой запрос RIPE NCC прислал такое сообщение.

К сожалению, ваша заявка не соответствует нашим критериям для получения аппаратного датчика в настоящее время. Хотя наша цель состоит в том, чтобы как можно шире распространять датчики RIPE Atlas, похоже, что уже имеется достаточно устройств, подключенных либо в пределах указанной вами ASN, либо в сети, в которую вы подали заявку, либо в стране, в которой вы подали заявку.

Не беда. В таком случае можно установить программный датчик, например, на виртуальную машину, домашний сервер или маршрутизатор – ограничений на местоположение и автономную систему нет. Поддерживаются CentOS, Debian, Raspbian и Turris OS. Для развертывания нужно скачать и установить соответствующее программное обеспечение, например из репозитория на GitHub.

Установка программного датчика достаточно проста. Например, для установки в 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+V\n-----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 не одинок в своем роде, существуют аналоги, например этот.




К сожалению, не доступен сервер mySQL