Назад | Перейти на главную страницу

Как переопределить информацию ntp, отправляемую dhcp в debian?

У меня есть сервер в сети, получающий всю свою сетевую информацию от DHCP. Проблема в том, что ntp-server для отправки не установлено время в формате UTC. Я хочу использовать конфигурацию для ntp нашел в /etc/ntp.conf но DHCP информация имеет приоритет. Как я могу заставить ntpd использовать конфигурацию в /etc/ntp.conf в отличие от отправленного DHCP? Что Debian способ сделать это?

Не отвечу прямо на вопрос, но это может пригодиться.

Поведение DHCP

В Debian (по крайней мере) клиент DHCP отменяет существующую конфигурацию службы ntp.

Управляется скриптом /etc/dhcp/dhclient-exit-hooks.d/ntp:

[contents from: /etc/dhcp/dhclient-exit-hooks.d/ntp]
NTP_CONF=/etc/ntp.conf
NTP_DHCP_CONF=/var/lib/ntp/ntp.conf.dhcp
...
[hundreds of lines of scripts]

Клиент DHCP получает серверы ntp от сервера DHCP, он берет текущую конфигурацию службы ntp из пути NTP_CONF и изменяет ее, чтобы включить серверы ntp, полученные через dhcp, он генерирует новый файл конфигурации ntp в путь NTP_DHCP_CONF и, наконец, заставляет службу ntp чтобы использовать этот новый файл конфигурации.

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

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

Вы можете использовать «ntpq -pn» для отладки того, какие серверы ntp фактически используются демоном.

Сочетание опций DHCP ntp и конфигурации системы

Если в вашей сети есть ntp-сервер, который объявляется DHCP, и вы хотите его игнорировать:

Вам нужно будет перенастроить dhcp-клиент в /etc/dhclient.conf пропустить ntp-servers вариант dhcp. Обратитесь к ответу @Oliver.

Затем вы можете настроить конфигурацию системы в /etc/ntp.conf

Если в какой-то момент DHCP-сервер БЫЛ, но уже не объявлен DHCP:

Системная конфигурация ntp все еще может быть переопределена клиентом dhcp, заставляя устаревшие серверы ntp, объявленные давно. Это переопределение DHCP может сохраняться в течение нескольких дней ntp service restart и reboot.

Чтобы положить этому конец, вам нужно будет удалить /var/lib/ntp/ntp.conf.dhcp и перезапустите службу ntp на всех ваших серверах.

Последнее слово

Все это недокументированное, неожиданное и трудно поддающееся отладке поведение. Это вызвало у меня головную боль сегодня, поэтому я фиксирую это здесь.

Я предлагаю вам отредактировать / создать /etc/dhclient.conf и раскомментировать строку «запрос» примерно так:

request subnet-mask, broadcast-address, routers, domain-name, domain-name-servers, host-name;

Особенно, если присутствует "ntp-server", удалите его. В некоторых дистрибутивах (также известных как Fedora) они отправляются по умолчанию, поэтому вы должны указать эту строку явно, чтобы значение по умолчанию было отменено.

Проверьте man dhclient.conf для расширенной информации.

Вы также можете просто удалить этот файл: /etc/dhcp/dhclient-exit-hooks.d/ntpвместо редактирования ваших DHCP-запросов. Этот файл создает ntp.conf.dhcp.

В случае ntp.conf.dhcp был создан при предыдущей загрузке, обязательно удалите его.