| ||||||||||||||||
| ||||||||||||||||
| ||||||||||||||||
Свой Биг Бен Синхронизация своей Linux или FreeBSD машины с мировым временем по протоколу NTP. Однажды я устал устанавливать часы моей рабочей машины в соответствие с точным временем передаваемым по радио. Тем более что точность получаемого результата всегда могла считаться только удовлетворительной, но никак не отличной — отклонение от точного времени на 1-2 секунды устранить при таком методе практически невозможно. К счастью вопрос точного времени озаботил задолго до меня профессора Делаверского университета (University of Delaware) Дэвида Миллза (David Mills), который подарил миру реализацию сетевого протокола синхронизации времени (Network Time Protocol). На данный момент основной является четвертая версия (NTP v4) этого протокола. Использование NTP позволяет обеспечить синхронизацию ваших часов с эталонными с точностью в несколько миллисекунд (существуют и наносекундные реализации, однако их использование обычно сопряжено с модификацией ядра операционной системы). Рассмотрим использование NTP в системе FreeBSD (Linux).
Сначала необходимо скачать последнюю версию исходных текстов пакета NTP с официального сайта
Тем кто по тем или иным причинам желает обойтись без процедуры компиляции рекомендую скачать пакет в виде rpm (RedHat- подобные Linux), deb (Debian Linux) или pkg (FreeBSD) файла с ftp-сервера компании производителя вашей операционной системы. Настоятельно рекомендую всегда пользоваться самой последней версией пакета в целях снижения риска хакерской атаки (впрочем это выполнение этого правила желательно для любого программного обеспечения). Существует два основных пути синхронизации времени: эпизодический (используется утилита ntpdate) и постоянный (используется демон ntpd). Следует заметить, что для успеха процедуры синхронизации времени требуются права суперпользователя root. Так же необходимо учесть использование протоколом NTP для синхронизации времени 123-го порта, который необходимо открыть для входящего и исходящего трафика (справедливости ради необходимо отметить, что использование утилиты ntpdate с ключом -u освобождает от этой необходимости). Первый способ является единственно возможным при отсутствии постоянного подключения к Интернету, а так же не требует какого-либо конфигурирования. Однако недостатком этого метода является невысокая точность получаемого результата из-за нерегулярного запуска процедуры синхронизации.
Итак рассмотрим простой способ синхронизации времени в момент установления PPP-соединения с
провайдером. Для этого в файл /etc/ppp/ip-up (в FreeBSD) или /etc/ppp/ip-up.local (в
современных версиях Linux) необходимо добавить единственную строку:
Публичных серверов точного времени в Интернете очень много. Большое количество адресов
заслуживающих доверия, вместе с правилами их использования, опубликовано по адресам
При выборе сервера для синхронизации, следует учесть время затрачиваемое на прохождение пакетов от сервера до вашей машины воспользовавшись утилитой ping. В общем случае чем меньше это время, тем выше будет точность синхронизации часов. Оказывается автоматически получить точное время на часах вашего компьютера — достаточно просто. Однако если вы счастливый обладатель постоянного подключения к Интернету и у вас найдется 2-3 мегабайта свободной памяти, то можно воспользоваться вторым способом синхронизации времени при помощи демона ntpd, получив при этом гарантированную точность хода часов своего компьютера с максимальным отклонением от эталона в пределах десятка миллисекунд.
Для реализации этого способа синхронизации времени необходимо создать конфигурационный файл
/etc/ntp.conf. Запуск демона ntpd повлечет синхронизацию часов вашего компьютера с указанными серверами в автоматическом режиме с интервалом из указанного промежутка. Теперь за точность ваших часов можно ручаться.
Если к ваш компьютер подключен к локальной сети, то вполне разумным будет сделать из него сервер
точного времени вашей локальной сети. Для этого в предыдущий пример необходимо добавить следующее
разрешение:
Для синхронизации времени на UNIX-машинах локальной сети целесообразно использовать утилиту
ntpdate, запуская ее при помощи демона cron несколько раз в сутки. Для Windows-машин целесообразно
использовать командный файл следующего содержания: Где my.ntp.server — DNS-имя вашего локального NTP сервера (вместо имени вполне подойдет и IP-адрес).
Что еще почитать:
|
|
| ||||||||||||||||
|