NTP не использует серверы из /etc/ntp.conf.

Вопрос или проблема

На GCP VM я пытаюсь настроить собственные NTP серверы, но кажется, что служба NTP не читает файл /etc/ntp.conf. Я добавил 4 сервера из ntppool.org, но ntpq -pn постоянно возвращает один и тот же результат (metadata.google).

введите описание изображения здесь

systemctl status ntp
введите описание изображения здесь

введите описание изображения здесь

Есть идеи?

проблема решена
по умолчанию клиент NTP был chrony, и файл, который мне нужно было редактировать, это /etc/chrony/chrony.conf

Я недавно столкнулся с этой же проблемой и нашел решения в How to override the ntp information sent by dhcp in debian?

В выводе статуса вашей службы мы видим, что NTP использует /run/ntp.conf.dhcp в качестве файла конфигурации. Такое поведение определяется в /usr/lib/ntp/ntp-systemd-wrapper, и конфигурация, измененная DHCP, выбирается, если она присутствует.

Ответ или решение

Вопрос о том, почему служба NTP на виртуальной машине в Google Cloud Platform не использует настройки из файла /etc/ntp.conf, но вместо этого обращается к серверам metadata.google, вскрывает несколько возможных причин, связанных с конфигурацией и особенностями настройки синхронизации времени в этой среде. Рассмотрим подробный анализ проблемы с учетом различных аспектов.

Теоретическая часть

Система синхронизации времени в Unix-подобных системах обычно реализуется с помощью протокола NTP (Network Time Protocol) или его более современных альтернатив, таких как Chrony. В системе обычно предусмотрены конфигурационные файлы, в которых указывается, с какими серверами должна производиться синхронизация времени. Обычно для NTP это файл /etc/ntp.conf, а для Chrony — /etc/chrony/chrony.conf.

Однако, в облачных средах, таких как GCP, есть свои особенности. Часто провайдеры автоматически настраивают сервер времени для своих VM через механизмы метаданных или DHCP, что может переопределять стандартные конфигурации. Это кратко объясняет, почему изменения в /etc/ntp.conf не приводят к ожидаемым результатам.

Примеры проблемы

В описанном случае, после редактирования файла /etc/ntp.conf и добавления в него серверов из пула ntppool.org, команда ntpq -pn продолжает возвращать результат, связанный с сервером времени Google. Это указывает на то, что текущая конфигурация NTP не обновляется в соответствии с изменениями в файле конфигурации.

Кроме того, вывод из команды systemctl status ntp и другие диагностические данные показывают, что используется конфигурационный файл /run/ntp.conf.dhcp, который создается автоматически при получении сетевых настроек через DHCP. Это поведение прописано в скриптах, таких как /usr/lib/ntp/ntp-systemd-wrapper, где проверяется наличие временного конфигурационного файла от DHCP.

Также важно отметить, что нередко в системах по умолчанию используется Chrony вместо традиционного NTP. Это приводит к тому, что изменения в /etc/ntp.conf не оказывают влияния, так как используется другой демон синхронизации времени, например, Chrony.

Применение решения

  1. Проверка текущего клиента для синхронизации времени: В первую очередь важно определить, какая именно служба отвечает за синхронизацию времени. Выполнив команду ps -e | grep -i "chrony\|ntp", можно определить, какой именно процесс активен. Если работает Chrony, то файлы конфигурации NTP будут проигнорированы.

  2. Редактирование правильного конфигурационного файла: Если используется Chrony, необходимо вносить изменения в /etc/chrony/chrony.conf, чтобы указать предпочтительные серверы времени.

  3. Отключение DHCP переопределений: Если требуется использование именно NTP и при этом наблюдается переопределение конфигурации через сеть, нужно рассмотреть отключение опции получения NTP-серверов через DHCP. Это возможно через настройки DHCP-клиента.

  4. Альтернативное решение через метаданные GCP: Для интеграции с облачными сервисами иногда более приемлемым является использование встроенных возможностей платформы. В Google Cloud возможна настройка метаданных VM для указания собственных NTP серверов.

  5. Перезапуск службы для применения изменений: После внесения изменений в конфигурационные файлы, необходимо перезапустить соответствующую службу командой systemctl restart chronyd или systemctl restart ntpd, в зависимости от используемого клиента.

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

Оцените материал
Добавить комментарий

Капча загружается...