как настроить клиент linux для использования информации ntp, предоставляемой через dhcp?

18

Есть так много учебников, объясняющих, как настроить dhcpdсервер, в отношении предоставления предложений ntp клиентам dhcp, что я всегда думал, что ntpконфигурация была выполнена автоматически. Недавно я начал видеть смещение часов в моей локальной сети, поэтому я предполагаю, что это было неверное предположение. Поэтому я решил посмотреть, как можно минимизировать конфигурацию клиента ntp, при условии, что он приложил усилия, чтобы настроить ntp-serverпредложения до конца dhcpd.

Я не смог найти ничего, кроме этого специального справочного руководства по Ubuntu https://help.ubuntu.com/community/UbuntuTime . Даже здесь (см. Пункт «Устранение неполадок -> Какой файл конфигурации он использует?») Информация недостаточна, но в ней говорится, что если /etc/ntp.conf.dhcpфайл найден, он будет использоваться вместо него. Во-первых, фактическое местоположение, которое имел в виду писатель, /var/lib/ntp/ntp.conf.dhcpсоответствует наблюдаемому /etc/init.d/ntp, но независимо от этого наличие этого файла не гарантирует, что ntp будет запрашивать серверы dhclient. В результате я должен явно добавить serverпредложение ntp.conf.dhcpдля моего локального ntp-сервера. Но в таком случае, зачем мне даже устанавливать настройки ntp на dhcpdсервере?

Похоже, что это идет вразрез с интуицией, то есть один раз настройте параметры ntp (т.е. на сервере) и разрешите dhcpdсерверу делегировать информацию клиентам. Как можно минимизировать (если не избежать вообще) настройку клиента для ntp. Кроме того, как я могу получить ntpинформацию через dhclient.

Есть ли решение Cli, которое подходит для всех дистрибутивов Linux?

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

Спасибо

РЕДАКТИРОВАТЬ: подробный вывод клиента Ubuntu при запуске вручную dhclient:

sudo dhclient -1 -d -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/20:cf:30:0e:6c:12
Sending on   LPF/eth0/20:cf:30:0e:6c:12
Sending on   Socket/fallback
DHCPREQUEST of 192.168.112.150 on eth0 to 255.255.255.255 port 67 (xid=0x2e844b8f)
DHCPACK of 192.168.112.150 from 192.168.112.112
reload: Unknown instance: 
invoke-rc.d: initscript smbd, action "reload" failed.
RTNETLINK answers: File exists
 * Stopping NTP server ntpd
   ...done.
 * Starting NTP server ntpd
   ...done.
bound to 192.168.112.150 -- renewal in 41963 seconds.

Служба ntpd перезапускается, но все же работает ntpq -cpe -casпосле этого. Я все еще не вижу свой локальный сервер ntp в списке серверов ntp.

Конечно, мой dhcpdсервер имеетoption ntp-servers

subnet 192.168.112.0 netmask 255.255.255.0 {
        max-lease-time 604800;
        default-lease-time 86400;
        authoritative;
        ignore client-updates;

        option ntp-servers 192.168.112.112; #self

        ... (many other options)
}
насс
источник
1
На моем DHCPD-сервере я передаю клиентам NTP-сервер для использованияoption ntp-servers x.x.x.x
Rui F Ribeiro
@RuiFRibeiro Привет, да, эта опция действительно является частью моего dhcpdсервера.
nass
2
serverfault.com/questions/329596/… может дать вам некоторые подсказки. Вы, вероятно, хотите посмотреть /etc/dhcp/dhclient-exit-hooks.d/ntp, чтобы найти фактическое имя используемого файла. Убедитесь, что ваш файл dhclient.conf настроен так, чтобы запрашивать ntp-серверы.
Икар
Вы используете Ubuntu как клиент? Какая версия?
Ройма
Клиент @roaima может быть Ubuntu, но поможет более общее решение. Если это облегчает ситуацию, скажем, в этом случае клиентом является Ubuntu 14.04 LTS.
нассы

Ответы:

10

Если используемый вами dhcp-сервер настроен на предоставление этой ntp-serversопции, вы можете настроить ваш dhclient для запроса ntp-серверов, добавив ntp-serversв строку запроса по умолчанию команду in dhclient.conf, как показано в конце этого примера из Ubuntu Linux (по состоянию на 19.04, но присутствует с 12.04)

request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search, host-name,
        dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers;

/etc/ntp.confи информация из DHCP будет использоваться для создания /etc/ntp.conf.dhcp.

Ваш ntpd должен указать /etc/ntp.conf.dhcp, если он существует. На той версии Ubuntu, которую я использую, это делается с помощью /etc/dhcp/dhclient-exit-hooks.d/ntp. <- это файл, который указывает NTPd использовать, /etc/ntp.conf.dhcpесли он существует, и просто использовать, /etc/ntp.confесли он не существует.

Тим Кеннеди
источник
2
В Ubuntu 18.04 этот файл находится в /run/ntp.conf.dhcp, вы можете посмотреть его местоположение в любом случае в/etc/dhcp/dhclient-exit-hooks.d/ntp
DustWolf
Похоже, что последняя версия Ubuntu 16.04 xenial больше не поддерживает опции ntp; раньше работало нормально. Делая это: /usr/sbin/dhcpd -tдает это: /etc/dhcp/dhcpd.conf line 20: unknown option dhcp.ntp-server option ntp-server 10.... это работало хорошо еще летом.
Линас
0

chronydиспользуется в эти дни, да, он все еще использует протокол NTP. Вы могли бы проверить пару источников:

https://docs.oracle.com/cd/E52668_01/E54669/html/section_zy2_rrf_pp.html

https://wiki.archlinux.org/index.php/Chrony

http://chrony.tuxfamily.org/faq.html#_i_have_several_computers_on_a_lan_should_be_all_clients_of_an_external_server

https://docs.fedoraproject.org/en-US/Fedora/18/html/System_Administrators_Guide/chap-Configuring_NTP_Using_the_chrony_Suite.html

Я рекомендую последние 2.

Абдулла
источник
1
Привет, Абдулла, Chrony - полезная альтернатива, о которой нужно знать, но твой ответ не показывает, как ее можно использовать, чтобы заставить клиентов DHCP использовать информацию NTP, предоставляемую сервером DHCP.
Энтони Дж. - Правосудие для Моники
@AnthonyGeoghegan Здравствуйте, если вы добавите его в качестве комментария, я бы удалил свой ответ,
Абдулла
Не просто размещайте некоторые ссылки (они имеют тенденцию гнить), но включайте необходимую информацию в свой ответ.
Восстановить Монику - М. Шредер