Настройка ntpd

Введение.

На днях разбирался с настройкой ntpd, как оказалось возможности этого демона немного выходят за рамки “раздачи времени по сети”.

Сперва у меня было желание полностью разобраться во всех возможных хитросплетениях конфигурации, но после вдумчивого чтения официальной документации на www.ntp.org , я пришел к выводу, что мне нихрена там не понятно. Создатель этого демона человек несомненно очень умный, но понять им написанное крайне не просто.

Итак. Как выяснилось, демон может работать в трех режимах:

1. Клиент\Серверный
2. Симметрично активный\пассивный
3. Широковещательный

Теперь о каждом режиме подробно.

1. Клиент\серверый режим, это как раз то, с чем все привыкли иметь дело. Т.е. “клиент” отправляет запрос “серверу”, получает от него ответ, и обновляет свое время.

2. Симметрично активный\пассивный режим предназначен в основном для корневых серверов сети (глобольной сети серверов времени). Суть режима с том, что несколько серверов с низким показателем stratum настраиваются таким образом, что бы опрашивать друг друга и корректировать время. При этом, если активный сервер А1 отправляет активное сообщение серверу А2. И А2 симметррчно настроен на А1, то А1 получает активный ответ. Если же А2 не настроен на опрос А1, то А2 отправляет пассивный ответ. Причем, что бы эту схему не похачили, предусмотрена авторизация и шифрование с помощью ключей.

3. Широковещательных режимов на самом деле 3. Broadcast, multicast и manycast. Задачи у них несколько разные, но смысл примерно такой: синхронизировать время у очень большого количества клиентов не загружая сеть. Но надо учитывать, что может попасться какой-нибудь умник, кто захочет установить у всех этих клиентов вечное 1 апреля, и что бы этого не произошло требуется аутентификация сервера клиентами.

Конкретика.

В моем случае требовалась настройка клиент\серверной конфигурации, поэтому про нее подробнее.

В этом режиме сервер может выполнять две функции:

1. Получать время с удаленного сервера и корректировать системные часы.
2. Раздавать время клиентам.

Обе функции можно совмещать. Т.е. сервер может синхронизироваться с вышестоящим и раздавать время своим клиентам.

Получение времени

Получение времени настраивается строкой

server address [key key|autokey] [burst] [iburst] [version version] [prefer] [minpoll minpoll] [maxpoll maxpoll]

Теперь подробнее о каждой опции:

“server address” – используется для указания на уделенный сервер или эталонные часы.

key key” – используется для шифрования исходящих и входящих пакетов. Параметр key – это целое число от 1 до 65535 указывающее на ключ заданный с помощью соответствующего раздела конфига. Естесственно, что на сервере должны быть соответствующие настройки.

autokey” – применяется для шифрования исходящих и входящих пакетов .

burst” и “iburst” – указывают отправить 8 пакетов не дожидаясь ответа сервера. Применяется для экономии времени например, когда rtt до сервера 600мс %). Отличаются тем, что burst сперва отправляет 1 пакет, и дождавшись ответа сервера отправляет следом паровозик из 8 пакетов, а iburst не разбирается, доступен ли сервер и шлет все сразу. (Осторожнее на медленных и дорогих линиях).

version” – использовать версию протокола для исходящих пакетов. По умолчанию 4.

prefer” – отметить сервер как предпочитаемый. Т.е. если в конфиге указано несколько серверов, то сперва пробовать связаться с этим.

minpoll” и “maxpoll” – минимальное и максимальное время опроса сервера. Указывается в степенях двойки, т.е. если установить minpoll 4, то минимальное время опроса будет 16 секунд. Алгоритмы выбора минимального и максимального времени подробно расписаны в документации.

Раздача времени

ntpd раздает время по умолчанию на всех интерфейсах. Ограничить количество пакетов получаемых от одного клиента можно командой:

discard [average avg] [minimum min] [monitor prob]

А с помощью команды

restrict address [mask mask] [flag ]

можно настроить список адресов, с указанием что, и кому можно делать. При этом можно использовать следующие флаги:

ignore” – запретить любые сообщения с указанного адреса

limited” – запретить сообщения с адреса, если они не вписываются в ограничения заданные директивой discard

nomodify” – запретить удаленную настройку демона с помощью ntpq и ntpdc

noquery” – запретить любые обращения с помоью ntpq и ntpdc

noserve” – запретить любые обращения кроме как с помощью программ ntpq и ntpdc

notrust” – запретить незащищенные обращения

version” – разрешить обращения только по указанной версии протокола

Вместо эпилога

Разных интересных настроек в ntpd предусмотрено великое множество, например есть возможность настраивать широковещательную рассылку времени по типу кабельных сетей. Есть возможность настроить stand-alone ntpd сервер (в документации называется orphan mode), и еще масса всего. Описывать это не стал, т.к. сам этим не пользуюсь.

Кстати проверить работу своего или любого другого сервера можно с помощью команды ntptrace.

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

Войти с помощью: