Сервер синхронизации времени NTPDСегодня поговорим о точном времени. Написать об этом статью меня подтолкнул друг, который просил поднять сервис точного времени для синхронизации своих компьютеров, имеющих выход в TAS-IX. Собственно, опишу кратко сам принцип синхронизации. Практически на всех компьютерах производители устанавливают TOY-микросхемы (time-of-year), которые позволяют хранить системное время, а также инициализировать его при загрузке. Суть демона ntpd состоит в том, чтобы плавно подгонять системное время под точные сигналы с серверов синхронизации. Сама модель включает в себя слоистую структуру. Первый слой, или stratum 0 - это сервера, имеющий источник точного времени, такого как атомные часы, или источник точного времени, такого как CDMA, GPS, etc. Сами сервера Stratum 0 непосредственно к сети не подключены. К ним подключены сервера уровня Stratum 1, с которых собственно и производится синхронизация по сети посредством специально разработанного протокола NTP (Network Time Protocol). Для получения точного времени в FreeBSD имеется как утилита ntpdate, так и собственно сервер синхронизации ntpd. Различие в том, что ntpdate производит резкую синхронизацию, что может быть критично для некоторых сервисов, если разница во времени будет существенная, например Dovecot при разнице в 2 секунды завершил работу с сообщением об резком изменении системного времени. Так что синхронизировать время с помощью ntpdate имеет смысл только на момент начальной загрузки до старта системных сервисов. Подробно ознакомиться с описанием утилиты и списком опций вы можете набрав man ntpdate. Собственно, использовать ее очень просто, достаточно в консоли набрать и утилита проведет синхронизацию вашего системного времени с NTP-сервером unix.uz.Нам же, на сервере, имеющем большой аптайм и редкие перезагрузки, имеет смысл настроить ntpd. Главный конфигурационный файл называется ntp.conf и находится в директории /etc. Я приведу краткий листинг своего конфига с пояснениями.
Сохраняем, и запускаем ntpd
Смотрим вывод лога на наличие ошибок:
Смотрим на каком сокете слушает демон:
Следует отметить, , что после перезапуска демона синхронизация не начнется сразу же. Придется подождать некоторое время, потому что ntpd несколько медлителен и не торопится обновлять время, мне пришлось ждать около двух часов. Для того, чтобы проследить как идут дела с установкой соединения с другими серверами, есть утилита ntpq:
Знаки перед именами серверов означают: пробел - слишком большой уровень, цикл или явная ошибка; x - фальшивый источник по алгоритму пересечения; . - исключён из списка кандидатов из-за большого расстояния; - - удалено из списка кандидатов алгоритмом кластеризации; + - входит в конечный список кандидатов; # - выбран для синхронизации, но есть 6 лучших кандидатов; * - выбран для синхронизации; o - выбран для синхронизации, но используется PPS. Наиболее интересное нам поле: "offset". Это разница между показателями локальных часов компьютера и эталонных NTP серверов. Чем меньше этот показатель, тем точнее идут наши часы. Служба ntpd "умная" и сама отсеивает источники времени слишком выбивающиеся за рамки разумного; через некоторое время после запуска ntpd выберет наиболее достоверные источники данных и будет синхронизироваться с ними. Представленный нами список эталонных NTP серверов регулярно пересматривается службой. Примерно такой вывод команды говорит о том, что сейчас для синхронизации мне доступны указанные серверы. Теперь, в качестве проверки, можно синхронизировать время на самом сервере с помощью ntpdate:
И напоследок, нужно добавить демон в автозагрузку:
В том случае, если у вас работает файерволл (а он у вас должен работать), нужно проследить, чтобы порт 123/UDP был открыт. В IPFW это делается добавлением команды:
где ex_if - ваш внешний интерфейс. Вот собственно и все. Если вы решите также поднять свой сервер синхронизации времени, добавьте его в пул http://www.pool.ntp.org, в данный момент там всего 3 активных сервера. Все ваши замечания и вопросы по данной статье Вы можете опубликовать на форуме. |
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.