Не может выполнить ntpdate на EC2

У меня были некоторые серьезные проблемы с точностью времени на моих машинах Ubuntu EC2 с дрейфами больше чем 60 секунд.

Возможное решение работает ntpdate или ntp, но я не могу заставить их работать над EC2:

$ sudo ntpdate ntp.nasa.gov time-b.nist.gov
23 Jun 07:17:23 ntpdate[3878]: no server suitable for synchronization found

Что имеет, я попробовал:

  • Порты на определенной машине, которую я тестирую, являются открытыми для TCP и UDP, входящими и исходящими (см. ниже).
  • Я протестировал это поведение больше чем в одной машине.
  • Я попробовал различные серверы времени.
  • Я попробовал обоих ntpdate и ntp.

Какая-либо идея, как синхронизировать время на моих машинах?

Группы безопасности

enter image description here enter image description here

Подробные журналы

$ sudo ntpdate -vd ntp.nasa.gov time-b.nist.gov
23 Jun 07:24:08 ntpdate[3890]: ntpdate 4.2.6p5@1.2349-o Wed Oct  9 19:08:07 UTC 2013 (1)
Looking for host ntp.nasa.gov and service ntp
host found : ntp-nasa.arc.nasa.gov
Looking for host time-b.nist.gov and service ntp
host found : time-b.nist.gov
transmit(198.123.30.132)
transmit(129.6.15.29)
transmit(198.123.30.132)
transmit(129.6.15.29)
transmit(198.123.30.132)
transmit(129.6.15.29)
transmit(198.123.30.132)
transmit(129.6.15.29)
transmit(198.123.30.132)
transmit(129.6.15.29)
198.123.30.132: Server dropped: no data
129.6.15.29: Server dropped: no data
server 198.123.30.132, port 123
stratum 0, precision 0, leap 00, trust 000
refid [198.123.30.132], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Mon, Jan  1 1900  0:00:00.000
originate timestamp: 00000000.00000000  Mon, Jan  1 1900  0:00:00.000
transmit timestamp:  d752549e.e0fc7517  Mon, Jun 23 2014  7:24:14.878
filter delay:  0.00000  0.00000  0.00000  0.00000
         0.00000  0.00000  0.00000  0.00000
filter offset: 0.000000 0.000000 0.000000 0.000000
         0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

server 129.6.15.29, port 123
stratum 0, precision 0, leap 00, trust 000
refid [129.6.15.29], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Mon, Jan  1 1900  0:00:00.000
originate timestamp: 00000000.00000000  Mon, Jan  1 1900  0:00:00.000
transmit timestamp:  d752549f.142f86b3  Mon, Jun 23 2014  7:24:15.078
filter delay:  0.00000  0.00000  0.00000  0.00000
         0.00000  0.00000  0.00000  0.00000
filter offset: 0.000000 0.000000 0.000000 0.000000
         0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

23 Jun 07:24:17 ntpdate[3890]: no server suitable for synchronization found
2
задан 13 April 2017 в 15:14

3 ответа

Ваши группы безопасности похожи на версию VPC, если это так, я должен был открыть UDP123/UDP* на моем Сетевом ACLs для нее для работы. VPCs имеют два слоя пакетной фильтрации, Сеть ACL, сопровождаемый Группами безопасности. SGs С СОХРАНЕНИЕМ ИНФОРМАЦИИ (не требуйте входящих правил при соединении сначала), но NACLs являются НЕ СОХРАНЯЮЩИМИ СОСТОЯНИЕ (потребуйте правил получить пакеты). После того как я добавил соответствующую строку конфигурации, NTP работал отлично.

Я только добавил строку к своим внешним NACL, которые выполняют мои сервисные экземпляры, таким образом, они могут получить доступ к внешнему NTP, они затем выполняют прокси NTP для остальной части моей сети.

Удачи!

5
ответ дан 2 December 2019 в 01:38

В EC2 -u флаг требуется:

$ sudo ntpdate -u ntp.nasa.gov time-b.nist.gov
24 Jun 11:16:33 ntpdate[27714]: adjust time server 129.6.15.29 offset 0.047272 sec

Из руководства:

   -u     Direct ntpdate to use an unprivileged port for outgoing packets.  This is most useful when behind a firewall that blocks incoming traffic to
          privileged ports, and you want to synchronise with hosts beyond the firewall. Note that the -d option always uses unprivileged ports.
1
ответ дан 2 December 2019 в 01:38

Amazon предоставляет Услугу Синхронизации Времени Amazon, которая устраняет дрейф времени, который Вы испытываете. Полные шаги для принятия каждого экземпляра EC2:

  1. Удалите использование NTP sudo apt-get remove ntp
  2. Установите использование Chrony sudo apt install chrony
  3. использовать sudo vim /etc/chrony/chrony.conf отредактировать файл для включения server 169.254.169.123 prefer iburst
  4. Перезапустите использование Chrony sudo /etc/init.d/chrony restart
  5. Проверьте, что Chrony использует корректное использование IP chronyc sources -v и проверяя, что вывод включает '^* 169.254.169.123'
  6. Определите лучший город для использования путем просмотра каталогов в ls /usr/share/zoneinfo/
  7. Обновите часовой пояс от UTC с помощью пути от предыдущего шага, такой как sudo timedatectl set-timezone /usr/share/zoneinfo/America/Chicago
1
ответ дан 2 December 2019 в 01:38

Другие вопросы по тегам:

Похожие вопросы: