LINUX.ORG.RU
ФорумAdmin

Катастрофа в российской зоне проекта NTPPool.org

 


0

5

В процессе изучения проблемы я обнаружил, что что-то случилось в начале-середине октября и из зоны RU за 2 недели вылетело 120 серверов из 140 имеющихся.

На данный момент ситуация катастрофическая, поскольку в зоне RU осталось 4 (четыре) сервера, один из которых мой.

Помогите сохранить точное время в Рунете. Если не мы, то кот?

UPD: на пост откликнулись представители timeweb.cloud и выделили под NTP 30 (!!!) виртуальных машин!

Оригинал: https://habr.com/ru/articles/860828/

Обсуждение на пуле: https://community.ntppool.org/t/collapse-of-russia-country-zone/3607

Что-то тут и не обсудили.

Решил проверить что да как. Включил в пул свою свободную VPS. Как только рейтинг поднялся и она попала в пул:

# time tcpdump -n -c 10000 ip and udp and dst port 123 | cut -d" " -f3 | cut -d. -f1-4 | sort | uniq -c | sort -rn | head
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
10000 packets captured
11214 packets received by filter
0 packets dropped by kernel
     87 195.16.36.245
     50 178.249.59.166
     34 81.200.148.195
     30 188.94.48.42
     26 178.249.59.167
     24 37.204.142.248
     11 31.44.178.251
     11 212.232.62.228
     11 212.232.62.216
     11 212.232.62.212

real    0m8.206s
user    0m0.068s
sys     0m0.019s
★★★★★
$ whois 195.16.36.245
% Abuse contact for '195.16.36.128 - 195.16.36.255' is 'abuse-b2b@beeline.ru'
descr:          111250 Russia SOVINTEL/EDN
descr:          p2p and clients static IP pool

И смысла банить нет…

AlexVR ★★★★★
() автор топика

Примечательно, что в это время колоночки от Яндекса массово флудили, пытаясь синхротить время с ru.pool.ntp.org

Это при том, что есть чёткие требования к таким товарищам:

AlexVR ★★★★★
() автор топика

Я в этом мало разбираюсь, но выглядит как детектив. Резко пропадают сервера, оставшиеся задыхаются от нагрузки и как доминошки отваливаются. Кучи операционок не могут выставить системное время. А говорить начинают тогда когда буквально 4 подкроватных тачки остаётся работать.

LINUX-ORG-RU ★★★★★
()

Поднял число контролируемых клиентов, через час:

# chronyc -n clients | head -2
Hostname                      NTP   Drop Int IntL Last     Cmd   Drop Int  Last
===============================================================================
# chronyc -n clients | sort --key=3n | nl | tail
475402	178.249.59.167                816    380   9  -3   519       0      0   -     -
475403	91.218.92.4                  1050    406   2  -1   300       0      0   -     -
475404	212.115.59.14                1286    460   5  -2    97       0      0   -     -
475405	37.208.73.254                1124    537   6  -2   796       0      0   -     -
475406	194.247.185.25               1086    560   6  -2   528       0      0   -     -
475407	95.84.208.109                1529    663  -3  -2   20m       0      0   -     -
475408	213.33.168.138               1175    843   9  -2    57       0      0   -     -
475409	37.204.142.248               4227   1815  -1  -2     0       0      0   -     -
475410	195.16.36.245                8729   5486  -3  -4     0       0      0   -     -
475411	217.175.46.18              152272  48935  -4  -5   815       0      0   -     -
# chronyc -n clients | sort --key=3n | nl | tail -1000 | head
470948	176.59.15.145                  21      1   8  -5   201       0      0   -     -
470949	176.59.15.230                  16      1   8  -5   278       0      0   -     -
470950	176.59.15.47                   12      1   8   -   295       0      0   -     -
470951	176.59.160.125                 15      1  -5   1   63m       0      0   -     -
470952	176.59.16.18                   17      1   7  -5   283       0      0   -     -
470953	176.59.162.110                 11      1   9  -5   22m       0      0   -     -
470954	176.59.162.141                 17      1   8   3   35m       0      0   -     -
470955	176.59.162.232                 11      1   9  -5   35m       0      0   -     -
470956	176.59.162.252                 12      1   2  11   22m       0      0   -     -
470957	176.59.164.60                  15      1  -1  -5   63m       0      0   -     -
# cat /etc/chrony/conf.d/as_server.conf 
allow all 
ratelimit interval -1 burst 8 leak 2
combinelimit 5
clientloglimit 134217728

Т.е. за час набралось 400 тыр. клиентов.

Особо долбанутых из них не так и много.

AlexVR ★★★★★
() автор топика

На заметку. OpenWrt.

На OpenWrt можно поставить NTP-сервер и прописать его в DHCP:

root@OpenWrt:~# uci add_list dhcp.lan.dhcp_option="42,192.168.1.1"
root@OpenWrt:~# uci add_list dhcp.lan.dhcp_option="4,192.168.1.1"
AlexVR ★★★★★
() автор топика

Не надо звбывать, что есть vniiftri.ru и не стесняться добавлять их сервера тоже, хотябы 1-2.

Все NTP сервера работают от сигналов рабочих шкал Государственного первичного эталона времени, частоты и национальной шкалы времени РФ и вторичных эталонов в Иркутске, Хабаровске и Новосибирске.

AS ★★★★★
()
Ответ на: комментарий от AS

Не надо звбывать, что есть

Плохой совет. Они для тех, кто подымает стратум 2.

Для дома/работы достаточно поднять стратум 3.

pool 0.ru.pool.ntp.org
pool 1.ru.pool.ntp.org
pool 2.ru.pool.ntp.org
# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^+ 89.223.121.214                2  10   377   662  -1444us[-1245us] +/-   12ms
^- 213.234.203.30                2  11   377    85  -1958us[-1959us] +/-   76ms
^+ ntp1.mail.ru                  2  11   377    46  -3996us[-3997us] +/-   55ms
^- 195.218.227.230               3  11   377    81  -2775us[-2776us] +/-   57ms
^+ 5.178.87.94                   2  10   377   930  +3981us[+4285us] +/-   12ms
^+ 5.188.119.216                 2  10   377   735  +5252us[+5501us] +/-   11ms
^+ v2679487.hosted-by-vdsin>     2   7   377    82  -1617us[-1618us] +/-   13ms
^+ time100.stupi.se              1  10   377    59    +25ms[  +25ms] +/-   41ms
^+ 185.247.185.18                2  10   377   929   -931us[ -626us] +/-   11ms
^+ stratum2-1.ntp.mow01.ru.>     2  10   277   935  -2131us[-1826us] +/-   11ms
^+ 93.183.81.140                 2  10   377   926   +672us[ +976us] +/-   19ms
^+ ntp.swl.su                    2   8   377   276   -402us[ -242us] +/-   15ms
^+ 89.223.121.197                2   8   377   194   -699us[ -629us] +/-   11ms
^+ 89.111.140.79                 2   9   377   222  -1969us[-1899us] +/-   13ms
^+ 80.76.60.21                   2  10   377   913  -2165us[-1860us] +/- 9794us
^+ ntp2.mail.ru                  2  10   377   789  -2973us[-2703us] +/-   55ms
^* 1324914-cy06275.tw1.ru        2   6   377    46  -2390us[-2391us] +/-   14ms

Обрати внимание на число плюсиков.

Для обычного ПК

server 0.ru.pool.ntp.org
server 1.ru.pool.ntp.org
server 2.ru.pool.ntp.org
server 3.ru.pool.ntp.org
AlexVR ★★★★★
() автор топика
Последнее исправление: AlexVR (всего исправлений: 1)
Ответ на: комментарий от th3m3

А кто виноват в итоге? Яндекс?

Как минимум их уличили в свинском поведении.

  1. Прописали ru.pool.ntp.org в качестве часиков для своих колонок. А должны были, либо завести свой пул аля ntp.yandex.ru, либо использовать 0.yandex.pool.ntp.org (с.м. https://www.ntppool.org/ru/vendors.html )

You must absolutely not use the default pool.ntp.org zone names as the default configuration in your application or appliance.

  1. Синхронили свои колонки раз в пять секунд. Это в локалке то не имеет смысла. https://www.ntppool.org/ru/use.html

Будьте дружелюбны. Многие сервера предоставляются добровольцами, и почти все NTP-сервера на самом деле являются файловыми, почтовыми или web-серверами, на которых просто запущен ntpd. Поэтому не используйте более трех серверов в своей конфигурации, и не выкидывайте грязных трюков с параметрами burst и minpoll — все, чего вы добьетесь, это гибель нашего проекта, раньше или позже.

AlexVR ★★★★★
() автор топика
Ответ на: комментарий от AlexVR

Если использовать ntp для времени, то даже в случае откровенно бракованных локальных часиков не вижу смысла синхрить чаще раза в десять минут.

Мог бы подумать, что в этом какой-то сакральный смысл есть и я чего-то недопонимаю, но ответственный человек очевидно разбирается хуже меня.

Bfgeshka ★★★★★
()
Ответ на: комментарий от AlexVR

Плохой совет. Они для тех, кто подымает стратум 2.

Для дома/работы достаточно поднять стратум 3.

Да, что-то я со своей колокольни. Для дома/работы должен быть сервер провайдера по идее. Вот только все ли делают... А потом все ли клиенты интересуются и используют.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от XMPP

И? У рндекса должен быть внутренний ntp сервер (который бы они синхронизировали извне мб через несколько серверов масимум и гораздо реже) в любом случае, вместо этого они сношаются с внешним публичным

Bfgeshka ★★★★★
()
Ответ на: комментарий от AlexVR

Для дома/работы достаточно поднять стратум 3.

До недавнего времени в debian.pool.ntp.org было зачем-то до фига узлов st1 с синхронизацией от первичных источников типа GPS или PPT. Зачем — загадка. А сейчас в основном российские сервера st2:

 0.debian.pool.ntp.org              .POOL.          16 p    -   64    0   0.0000   0.0000   0.0001
 1.debian.pool.ntp.org              .POOL.          16 p    -   64    0   0.0000   0.0000   0.0001
 2.debian.pool.ntp.org              .POOL.          16 p    -   64    0   0.0000   0.0000   0.0001
 3.debian.pool.ntp.org              .POOL.          16 p    -   64    0   0.0000   0.0000   0.0001
*v2678489.hosted-by-vdsina.ru       130.173.91.58    2 u   32 1024  377  20.5686  -4.1054   1.8979
-5.178.87.93                        127.127.1.1      2 u  209 1024  377  32.4572 -27.1860   2.4014
-time.cloudflare.com                10.87.8.6        3 u  35m 1024  376  19.8146  -3.4486   1.0280
+213.mcs.mail.ru                    216.239.35.4     2 u    5 1024  377  19.7825  -1.5357   1.2161
-unspecified.mtw.ru                 194.190.168.1    2 u  940 1024  377  20.6769 -31.7112   1.8163
+time.cloudflare.com                10.136.8.111     3 u   70 1024  377  19.7808  -4.0017   0.5093
+time.cloudflare.com                10.87.8.6        3 u  707 1024  377  19.7017  -3.7254   0.6165

Они по GeoIP, что ли, отдают сервера? Хз где найти инфу о пуле…

anonymous
()
Ответ на: комментарий от th3m3

В Яндексе ответили:

мы написали простой NTP‑клиент для синхронизации часов.

Писец. Вот очень очень надо было свой. При этом «этот свой» не цепляет выданный по DHCP NTP-сервер.

AlexVR ★★★★★
() автор топика

Отчёт Яндекса по сабжу читали?

https://habr.com/ru/companies/yandex/articles/861538/

Они признались что именно их говнокод в дебил-колонках «Алиса» ответственен за эту проблему.

Для Ъ:

Недавно на Хабре вышла статья об аномальной нагрузке на публичные NTP‑серверы в рунете. К сожалению, к этой ситуации привела ошибка в прошивке Яндекс Станций.

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

В выходные 23–24 ноября ситуация с NTP‑серверами обостряется: доступными остаются лишь четыре сервера. К этому моменту мы уже начали раскатывать релиз с исправлением на 10% устройств. Но фактически обновления происходят по ночам. Мы поняли, что нельзя ждать ближайшей ночи, при этом форсировать этот процесс опасно, поэтому решили пойти на альтернативные, срочные меры.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

Какого фига надо было писать «свой» NTP-клиент. Что за фразы «обновляли раз 5 секунд», «решили обновлять раз в 5 часов» и т.п. Что за детский лепет. Есть chrony и т.п. в которых заложены механизмы синхронизации. Задал «minpoll»/«maxpoll» и нормальный NTP-клиент будет подбирать интервал, в зависимости от убегания.

С такими фразами возникает вопрос, а они понимают что у «часиков» есть возможность подстройки частоты?

Следующая их фраза об необходимости частой синхронизации для двух Алис в доме. Что *ля за тупняк? Причём тут синхронизация с внешними серверами и синхронизация пары рядом стоящих устройств? Что за бред сивой кобылы? Если надо синхронизировать два устройства между собой, то и надо синхронизировать два устройства между собой. У chrony и т.п. есть понятие peer.

Не говоря про PTP или Wi-Fi TimeSync, которые явно не про дешман от Яндекса.

AlexVR ★★★★★
() автор топика

С другой стороны, считай что в двое поднялось число узлов в ru-зоне.

https://www.ntppool.org/zone/ru

IPv4: There are 283 active servers in this zone.

249 (+34) active 1 day ago
5 (+278) active 7 days ago
9 (+274) active 14 days ago
124 (+159) active 60 days ago
131 (+152) active 180 days ago
146 (+137) active 1 year ago
127 (+156) active 3 years ago
91 (+192) active 6 years ago

IPv6: There are 56 active servers in this zone.

54 (+2) active 1 day ago
33 (+23) active 7 days ago
33 (+23) active 14 days ago
40 (+16) active 60 days ago
43 (+13) active 180 days ago
42 (+14) active 1 year ago
38 (+18) active 3 years ago
19 (+37) active 6 years ago

З.Ы.:

https://www.ntppool.org/ru/

Из-за большого количества клиентов мы испытываем острую необходимость в новых серверах. Если у вас есть сервер с внешним статическим IP-адресом и устойчивым интернет-соединением, пожалуйста, подумайте о том, чтобы включить его в пул.

AlexVR ★★★★★
() автор топика
Ответ на: комментарий от AlexVR

Такой вот «лидер отрасли», чо. Зато красными флагами при найме увешались, как ёлка. Ну, таких вот и понанимали, которые хорошо умеют только собеседования проходить.

anonymous
()

Небольшая статистика по моему серверу.

  • Выставлен лимит 100 Мб/с в пуле.
  • Реальный поток около 500 запросов в сек.
  • Настроен учёт клиентов в таблице на один лям.
  • Неадекватов почти не осталось.
        Hostname                      NTP   Drop Int IntL Last     Cmd   Drop Int  Last
        ===============================================================================
# chronyc -n clients | tail -n +3 | sort --key=3n | nl | tail 
1048567	95.104.184.150                 24      1   7  -5   85m       0      0   -     -
1048568	213.109.66.105                255      2   7   4    60       0      0   -     -
1048569	31.135.43.189                  20      2  -5  -5   99m       0      0   -     -
1048570	94.233.240.226                 42      2   8  -5   75m       0      0   -     -
1048571	176.111.79.89                 621      3   8  -5   24m       0      0   -     -
1048572	188.170.74.193                407      3  11   2   366       0      0   -     -
1048573	37.19.2.162                   481      5   9  -5   20m       0      0   -     -
1048574	89.208.236.16                 580      5  -3  -4   37m       0      0   -     -
1048575	85.140.1.111                  175     11  11   9   34m       0      0   -     -
1048576	109.198.109.175             13905   9070   8   9   65m       0      0   -     -
# chronyc -n clients | tail -n +3 | sort --key=2n | nl | tail 
1048567	188.0.141.25                 7191      0   1   -   138       0      0   -     -
1048568	185.234.229.127              7515      0   4   -    12       0      0   -     -
1048569	92.124.80.13                 7884      0   6   -    47       0      0   -     -
1048570	213.208.168.194              8131      0   3   -    13       0      0   -     -
1048571	31.42.47.210                 8250      0   9   -   486       0      0   -     -
1048572	176.215.249.18               8825      0  10   -    34       0      0   -     -
1048573	185.162.94.213               9218      0   6   -   348       0      0   -     -
1048574	109.198.109.175             13905   9070   8   9   65m       0      0   -     -
1048575	188.170.251.201             41341      0   6   -   23m       0      0   -     -
1048576	212.119.193.2               50434      0  -1   -   525       0      0   -     -
AlexVR ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Их куски пластика еще пингами нонстоп спамят. Это у них так интернет проверяется бгг.

Если заблочить им icmp то эти дебильные куски пластика делают пуксреньк и не работают.

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

Ни капсула майла, ни сбердевайсы такого треша не позволяют себе. Только криворукие оленьпиадники из куяндекса.

Вообще авторам этого кала надо уринкой все личико облить.

guyvernk
()
Последнее исправление: guyvernk (всего исправлений: 4)

IPv4

There are 303 active servers in this zone.

292 (+11) active 1 day ago
8 (+295) active 7 days ago
10 (+293) active 14 days ago
126 (+177) active 60 days ago
132 (+171) active 180 days ago
146 (+157) active 1 year ago
125 (+178) active 3 years ago
95 (+208) active 6 years ago

Ехоу нас 300+

AlexVR ★★★★★
() автор топика
Ответ на: комментарий от grem

в моей квартире в каждой комнате должно поселится N устройств с микрофоном в каждой комнате, которым я управлять не могу физически ( дают какую-то виртуальную кнопку с подсветкой, которая непонятно что означает). WTF?

ivanich10
()
Ответ на: комментарий от ivanich10

Ты всë правильного понял. В каждой к комнате по устройству. И за каждое платишь. Типо не налог. Но больше чем налог, и частному лицу, хоть и через уважаемую компанию.

Так надо.

AlexVR ★★★★★
() автор топика

Не нравится мне стандартные сервисы времени из-за требования рут полномочий для установки системного времени.

Сделал свой сервис который под пользователем берет время с IP пакетов и записывает разницу в файл. А под рутом с этого файла устанавливаю время. Даная схема работает хорошо, в логах матюков на время не встречал. Даёт точность ~0.01с при синхронизации пару раз в день (надо Интернет).

Мне кажется что при современных RTC и хорошей батарейки на мамке вполне должно хватать прописать в cron hwclock -s и дергать раз в час (ничего не надо). Любую другую синхронизацию отключить. Если надо раз в год руками устанавливать точное время hwclock --set --date=... по курантам. Отклонение какое за год набежит примерно? Не тестировал данный вариант.

Синхронизация с радиоканалов (надо радио модуль):

  • GPS/GLONASS https://wirenboard.com/wiki/NTP_GPS все ноуты и смарты могут брать точнейшие время с спутников геолокации. Это самый лучший с доступных вариантов!!!
  • CDMA/GSM сотовая связь.
  • Радиосигнал, например цифрового TV.
anonymous
()
Ответ на: комментарий от AS

Для дома/работы должен быть сервер провайдера по идее.

Идея так себе, фиг знает как там у прова, сегодня робит, завтра не робит...

А потом все ли клиенты интересуются и используют.

Никогда не интересовался и не использовал. Работаю по старинке.

anc ★★★★★
()
Ответ на: комментарий от XMPP

Смысл точного времени нужен для TOTP,

Смысл точного времени в том, что бы было точное время. А для чего можно перечислять долго, хоть для себя любимого, что бы посмотрел на часики и увидел сикока сейчас времени.

anc ★★★★★
()
Ответ на: комментарий от AlexVR

мы написали простой NTP‑клиент для синхронизации часов.

Писец. Вот очень очень надо было свой. При этом «этот свой» не цепляет выданный по DHCP NTP-сервер.

Да вангую ничего не писали, запилили в крон какий-нидь ntpdate и на этом успокоились.

anc ★★★★★
()