Virbactd.ru

Авто шины и диски
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Freebsd сервер синхронизации времени

Freebsd сервер синхронизации времени

Это такой unix-way, когда ntpd подменяется двумя "ортогональными" инструментами ntpdate и cron? :))

ntpdate объявлен deprecated и остаётся в системе ради совместимости.

NTPDATE(8)
Note: The functionality of this program is now available in the ntpd(8)
program. See the -q command line option in the ntpd(8) page. After a
suitable period of mourning, the ntpdate utility is to be retired from
this distribution.

Используйте только ntpd.

, Сергей ( ?? ), 11:26, 03/02/2009 [ответить] [﹢﹢﹢] [ · · · ] + / –
Я бы в rc.conf добавил бы
ntpd_sync_on_start="YES",
данная опция позволяет синхронизироваться, если расхождение времени между эталоном и вашим серваком очень большое. кстати, запуск ntpdate как раз и убирает большое расхождение перед запуском самого ntpd
, Andrey ( ?? ), 12:36, 03/02/2009 [ответить] [﹢﹢﹢] [ · · · ] + / –
Зачем для синхронизации одного сервака запускать сервис?
Разве не достаточно ntpdate pool.ntp.org в крон?
, Sadok ( ?? ), 12:39, 03/02/2009 [^] [^^] [^^^] [ответить] + / –
>Зачем для синхронизации одного сервака запускать сервис?
>Разве не достаточно ntpdate pool.ntp.org в крон?

-b Force the time to be stepped using the settimeofday(2) system
call, rather than slewed (default) using the adjtime(2) system
call. This option should be used when called from a startup file
at boot time.

, charon ( ok ), 17:17, 03/02/2009 [ответить] [﹢﹢﹢] [ · · · ] + / –
рекомендую выбрать себе ntp-сервера из списка на странице http://www.pool.ntp.org/zone/europe (там выбрать свою страну и взять 3 любых сервера из списка).
, Аноним ( 14 ), 23:49, 04/02/2009 [ответить] [﹢﹢﹢] [ · · · ] + / –
Обясните мне уважаемые форумчане, почему данный совет специфичен для FreeBSD ?
Я очень уверен, что автор не много не прав,
Так же я считаю, что слово сервер ни коим образом не может употреблся со словами freebsd.
, QuAzI ( ?? ), 13:03, 05/02/2009 [^] [^^] [^^^] [ответить] + / –
>Так же я считаю, что слово сервер ни коим образом не может
>употреблся со словами freebsd.

Точно так же можно утверждать что слово "десктоп" никоим образом не может употребляться со словом linux. Это ваши религиозные проблемы. Хотя да, автор не прав, просто ему уже не интересно лезть в другие unix-like и проверять, есть ли это там. У него и сабж прекрасно работает =)

Freebsd сервер синхронизации времени

FreeBSD поставляется с сервером NTP ntpd(8), который можно использовать для опроса других серверов NTP для установки часов на вашей машине или предоставления услуг точного времени. Написанное в статье в равной степени справедливо и для многих других *nix систем (Linux). Как настроить синхронизацию времени в Windows, читайте здесь .

Для синхронизации времени FreeBSD с другой системой служит программа ntpdate, обычно вызываемая планировщиком cron в заданные интервалы времени. Если вам нужно только синхронизировать ваши часы при загрузке машины, вы можете воспользоваться утилитой ntpdate(8). Кроме того, синхронизацию времени может делать демон ntpd. Программа ntpd(8) изменяет время постепенно, тогда как ntpdate(8) устанавливает время вне зависимости от того, насколько велика разница между текущим временем машины и точным временем. Дока man ntpdate говорит, что весь функционал ntpdate теперь реализован в демоне ntpd, и со временем ntpdate прекратит существование (перестанет поставляться в дистрибутиве), поэтому лучше сразу использовать ntpd. Демон ntpd может эмулировать поведение ntpdate, если указать опции -q и -g, при этом ntpd просто синхронизирует время и завершает работу.

Демон ntpd специально предназначен для установки и поддержания системного времени в синхронизме со стандартными серверами времени в Интернете. По умолчанию используется протокол NTP (порт 123 UDP) версии 4, но также поддерживается совместимость с версиями 3 (RFC-1305), а также 1 и 2 (RFC-1059 и RFC-1119). Демон ntpd периодически (с настроенным интервалом) обменивается сообщениями с одним или несколькими серверами NTP, доступными в Интернете (или в локальной сети). Если разница времени между локальным хостом и сервером NTP превышает 1000 секунд, то требуется вмешательсто оператора для ручной установки времени. При этом в лог пишется panic-сообщение, и демон прекращает работу. Опция -g отменяет такое поведение (время синхронизируется при любой разнице времени), однако если синхронизация была неуспешной (разница во времени превышает 1000 секунд), ntpd все равно прекращает работу. Для работы ntpd может использовать специальный файл для хранения параметров ухода часов, по умолчанию это /etc/ntp.drift. Конфигурация для ntpd по умолчанию хранится в файле /etc/ntp.conf.

Вариантов настройки синхронизации много, но я выбрал для себя простейший режим — запуск ntpd по крону с указанием опций -q и -g. Процесс по шагам.
1. Создаем файл /etc/ntp.conf.
# touch /etc/ntp.conf

2. Находим и проверяем сервера времени. Я нашел сервера server ntp0.zenon.net, ns.arc.nasa.gov, tick.usno.navy.mil, time.nist.gov.
# nmap -sU -p123 ntp0.zenon.net
# nmap -sU -p123 -P0 ns.arc.nasa.gov
# nmap -sU -p123 tick.usno.navy.mil
# nmap -sU -p123 time.nist.gov
Среди серверов лучше определить один, до которого кратчайший маршрут (с помощью утилиты traceroute), чтобы его потом указать в /etc/ntp.conf с опцией prefer. У меня такой сервер оказался ntp0.zenon.net.

3. Добавляем сервера в /etc/ntp.conf
server ntp0.zenon.net prefer
server ns.arc.nasa.gov
server tick.usno.navy.mil
server time.nist.gov

4. Теперь можно синхронизировать время простой командой ntpd -q -g. Здесь опция -q указывает ntpd закончить работу после синхронизации времени, а опция -g отключает проверку sanity-интервала в 1000 секунд. Этими опциями эмулируется поведение устаревающей программы ntpdate.

5. На Red Hat Linux команда ntpd -q -g заработала даже без создания и правки файла /etc/ntp.conf, поскольку после установки этот файл появился автоматически. На FreeBSD оказалось все не так гладко — время засинхронизировалось, но со смещением -3 часа. Как я понял, это из-за того, что неправильно настроен часовой пояс. После настройки часового пояса все заработало нормально.

6. Добавляем назначенное задание. Например, для FreeBSD нужно в файл /etc/crontab добавить строчку:
0 1 * * * root ntpd -q -g
Это будет запускать ntpd -q -g каждый день в 01.00

Media UniX

freebsd команды, настройка, установка сервера и не только

Делаем свой сервер времени на FreeBSD

Иметь точное время на сервере надо всегда, а если сервер ещё обслуживает другие пк в сети, то в пору задуматься о своём сервере времени — NTP. Ставить и настраивать будем на FreeBSD. Приступим.
Устанавливаем из портов:
cd /usr/ports/net/ntp/
make install clean
rehash

Создаём и редактируем файл конфигурации демона:
touch /etc/ntp.conf
ee /etc/ntp.conf

Содержимое этого файла должно быть примерно следующим:

#сервера с которыми будем сверяться:
# prefer — приоритетный сервер
server 193.125.143.173 iburst burst prefer
server 213.79.103.146 iburst burst
server 195.200.216.138 iburst burst
server 85.21.78.6 iburst burst
#файл смещения и логов
driftfile /var/db/ntpd.drift
logfile /var/log/ntpd.log
#те, кому можно будет с нами взаимодействовать
restrict default ignore
#разрешим следующим серверам времени:
restrict 193.125.143.173
restrict 213.79.103.146
restrict 195.200.216.138
restrict 85.21.78.6
#и localhost’у
restrict 127.0.0.1
#разрешим пользоваться нашей службой компьютерам в сети
restrict 10.36.1.0 mask 255.255.255.0 nomodify notrap

Теперь создадим те самые файлы для логов и смещения:
touch /var/log/ntpd.log
touch /var/db/ntpd.drift

В /etc/rc.conf пропишем:
ntpd_enable=»YES»
ntpd_program=»/usr/local/bin/ntpd»

Запускаем демона:
/etc/rc.d/ntpd start

После запуска сервера нужно подождать немного, минут 15.
Проверим, работает ли наш сервер времени:
ntpdate -q localhost

Должны увидеть, что то вроде:
server 127.0.0.1, stratum 4, offset -0.000011, delay 0.02568
2 Nov 21:10:06 ntpdate[2130]: adjust time server 127.0.0.1 offset -0.000011 sec

если видите:
server ip_адрес, stratum 0, offset 0.000000, delay 0.00000
1 Nov 23:19:03 ntpdate[40529]: no server suitable for synchronization found
значит не работает.

Узнать эти же параметры, но на другом сервере в интернете можно командой:
ntpdate -q 0.ru.pool.ntp.org

Так же проверить синхронизацию можно выполнив:
ntpq -p

Должны увидеть нечто похожее на:

команды, freebsd, настройка, установка, сервер, server, ubuntu

Здесь
символы перед remote серверами
* — значит, что с него мы синхронизировались последний раз
+ — подходящий для обновления сервер
— — не подходящий для обновления сервер
x — сервер не доступен
столбец delay — задержка в миллисекундах
столбец when показывает, когда последний раз обновлялись мы с этого сервера.

Найти ближний к вам сервер, с которым вам лучше синхронизироваться можно здесь. Там вы найдёте нужные вам сервера в зависимости от расположения вашего сервера, будь то Европа, Азия, Северная Америка и другие точки на планете. Но обратите внимание на то, что в конфигурационном файле я указывал их IP адреса, т.к. при обращении по имени, синхронизация не работает. Объяснить я это могу тем, что одно доменное имя сервера имеет несколько IP адресов. Я пропинговал несколько раз один из серверов, посмотрел до какого ИП адреса сигнал доходит быстрее и вписывал эти адреса.
Узнать нынешнее время на вашем сервере можно, выполнив:
touch /tmp/time && ls -lT /tmp/time | awk ‘‘ && rm /tmp/time

Для настройки FrssBSD в качестве клиента синхронизации в /etc/rc.conf надо вписать:
ntpdate_enable=»YES»
ntpdate_program=»/usr/sbin/ntpdate»
ntpdate_flags=»-u имя_серве_ntp»

Для настройки Windows XP в качестве клиента синхронизации, жмём по часикам в трее, на вкладке «internet time» вписываете ваш сервер в отведённое поле, нажимаете «update now»

команды, freebsd, настройка, установка, сервер, server, ubuntu

И кстати, не забудьте открыть на фаерволе порт udp 123, иначе все телодвижения были бесполезны.

FreeBSD: Сервер точного времени на базе ntpd

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

Постановка задачи

В процессе создания любой корпоративной сети возникает вопрос организации синхронизации времени. Синхронизация времени базируется на протоколах NTP (Network Time Protocol) и SNTP (Simple Network Time Protocol). В большинстве случаев на одном из серверов корпоративной сети разворачивается главный сервер точного времени (далее — главный NTP-сервер), который синхронизируется с публичными серверами точного времени Интернета (далее — публичными NTP-серверами), и является источником точного времени для всех остальных компьютеров корпоративной сети. По умолчанию в состав операционной системы FreeBSD входит NTP-сервер ntpd(8). Данная статья посвящена его использованию в роли главного NTP-сервера корпоративной сети, организации синхронизации времени на компьютерах с FreeBSD (с учетом небольших расхождений в именах и форматах файлов конфигурации приведенная информация подойдет практически для любой операционной системы семейства Linux/Unix), а также устранению проблем, связанных с синхронизацией времени.

Исходные данные

Для решения рассматриваемой задачи не требуется установка какого-либо программного обеспечения, однако, во избежание недоразумений следует отметить, что все описанные действия выполнялись на серверах с FreeBSD 7.x RELEASE. Если Вы используете более раннюю версию операционной системы, может возникнуть необходимость обновления ее исходных текстов и пересборки мира.

Выбор публичных NTP-серверов

Для справки следует отметить, что одним из важнейших параметров NTP-сервера является stratum (в русской интерпретации — страта ) — величина, которая отражает уровень системных часов и может принимать значения: 0 — не специфицировано / недоступно, 1 — первичный ( primary ) эталон (например, атомные часы), 2-15 — вторичный ( secondary ) эталон, 16-255 — зарезервировано на будущее. Серверы, которые синхронизируются с серверами, имеющими stratum 1, получают stratum 2, серверы, которые синхронизируются с серверами, имеющими stratum 2, получают stratum 3 и т.д. В процессе выбора публичных NTP-серверов, с которыми будет синхронизироваться главный NTP-сервер, следует руководствоваться требованиями документа Rules of Engagement, которые не рекомендуют использовать публичные NTP-серверы, имеющие stratum 1, без веских оснований и призывают использовать не менее трех-пяти (из соображений надежности) публичных NTP-серверов, имеющих stratum 2. Список публичных NTP-серверов, имеющих stratum 2, содержится в документе Stratum Two Time Servers, из которого следует выбрать необходимое количество OpenAccess (публичных) NTP-серверов, расположенных в Вашей стране. Для проверки доступности и значения stratum выбранных серверов необходимо выполнить соответствующее число команд ntpdate -q <IP-адрес/FQDN NTP-сервера> . Эти команды служат для запроса времени и значений параметров stratum , offset , delay (последние два рассмотрены ниже) с удаленных NTP-серверов и не меняют состояние системных часов. Выводимые сообщения выглядят примерно так:

Если для всех NTP-серверов выводятся нулевые значения параметров и сообщения: «нет сервера, подходящего для синхронизации»:

Вам следует следует разрешить в брандмауэре входящий UDP-трафик со 123 порта серверов, расположенных в Интернет, и исходящий UDP-трафик на 123 порт серверов, расположенных в Интернет. Например, в случае ipfw(8) нужно добавить такие правила:

В момент написания статьи в Stratum Two Time Servers имелась информация о восьми публичных NTP-серверах, расположенных в России, при этом «мертвым» оказался только ntp.xland.ru , а остальные семь успешно используются в роли источников точного времени.

Настройка главного NTP-сервера

По умолчанию конфигурация ntpd хранится в файле /etc/ntp.conf . В моем случае этот файл имеет следующее содержимое:

В данном файле заданы следующие значения параметров: server . — список публичных NTP-серверов, с которыми синхронизируется наш сервер, restrict. — ограничения доступа к серверу (строка 8 — ограничение по умолчанию — доступ запрещен, строки 9-15 — ограничения доступа со стороны публичных NTP-серверов — запрещено изменять состояние сервера, запрашивать время и отправлять сообщения об исключениях, строки 16-18 — ограничения доступа со стороны клиентов — запрещено изменять состояние сервера и отправлять сообщения об исключениях), logfile — имя лог-файла. Описание всех опций, которые можно задать в файле конфигурации ntpd, содержится в ntp.conf(5). Для того, чтобы ntpd запускался при запуске операционной системы и делал начальную корректировку времени (это не опечатка, теперь ntpd умеет делать грубую начальную корректировку времени без помощи ntpdate) необходимо добавить в файл /etc/rc.conf строки:

По умолчанию лог ntpd имеет имя ntp.log и находится в папке /var/log . Для того, чтобы newsyslog(8) выполнял его ротацию, необходимо добавить в файл /etc/newsyslog.conf строку:

Данная строка обеспечивает усечение лога ntp при достижении размера 100 килобайт и сохранение трех предыдущих копий лога, сжатых архиватором bzip2(1) (Вы можете изменить эти параметры на свое усмотрение). На этом настройка внутреннего NTP-сервера завершается. Можно запустить сервер командой /etc/rc.d/ntpd start , а затем запросить его состояние командой /etc/rc.d/ntpd status . Если она выдаст сообщение ntpd is running as pid. , все нормально, если же — ntpd is not running , Вам следует найти и устранить ошибки в файлах конфигурации. После этого нужно подождать не менее получаса и выполнить команду ntpdate -q localhost . Если Вы внимательно следовали инструкциям, она выдаст сообщение о том, что NTP-сервер имеет stratum 3 и может использоваться для синхронизации времени:

Другим признаком корректной работы NTP-сервера можно считать появление в логе ntpd примерно таких сообщений:

Диагностика главного NTP-сервера

Для диагностики состояния главного NTP-сервера удобнее всего использовать утилиту ntpq(8), предназначенную для запроса различной информации у NTP-сервера. ntpq может работать как в интерактивном, так и в пакетном режиме, рассмотрение всех ее возможностей выходит далеко за рамки этой статьи. В контексте решаемой задачи более чем достаточно команды запроса состояния пиров — ntpq -p . (другие формы этой команды — ntpq -c peers , peers в интерактивном режиме). Информацию, выводимую командой ntpq -p , лучше пояснить на примере:

Строки данной таблицы соответствует публичным NTP-серверам, которые определены в файле /etc/ntp.conf , cтолбцы содержат следующие значения: маркер: ‘*’ — сервер, с которым в настоящий момент выполняется синхронизация, ‘#’ — сервер отобран для синхронизации, но дистанция до него превышает максимально возможную, ‘ο’ — сервер отобран для синхронизации и использует сигнал PPS, ‘+’ — сервер добавлен в список серверов, отобранных для синхронизации, ‘x’ — сервер использует некорректный алгоритм, ‘.’ — сервер выбран из конца списка серверов, отобранных для синхронизации, ‘-‘ — сервер отвергнут группирующим алгоритмом, пробел — сервер имеет слишком высокий stratum и/или не может быть проверен; remote — FQDN или IP-адрес сервера; refid — IP-адрес сервера с которым в настоящий момент выполняется синхронизация сервера из столбца remote ; st — stratum сервера; t — режим работы сервера: ‘u’ — unicast , ‘m’ — multicast , ‘b’ — broadcast , ‘-‘ — manycast ; when — время, прошедшее с момента последнего ответа сервера в секундах или ‘-‘ , если сервер еще ни разу не ответил (скорее всего, «умер», и сведения о нем пора удалить из файла конфигурации); poll — интервал опроса сервера в секундах (после запуска имеет небольшое значение, чтобы синхронизация происходила быстрее, с течением времени значение увеличивается); reach — состояние восьми последних попыток запроса времени у сервера в восьмеричном представлении (в случае успешной попытки устанавливается соответствующий бит); delay — задержка ответа сервера в секундах; offset — самое важное значение — различие локального времени и времени на сервере (с течением времени значение уменьшается, т.к. время становится более точным); jitter — дисперсия, дрожание фазы (более низкие значения обеспечивают более точную синхронизацию).

Синхронизация времени на остальных компьютерах с FreeBSD

Во избежание путаницы отмечу, что под «остальными компьютерами» в данном случае понимаются все компьютеры корпоративной сети с FreeBSD за исключением главного NTP-сервера. Средства FreeBSD позволяют реализовать два варианта синхронизации времени. Первый рассмотрен выше, и после замены публичных NTP-серверов на главный NTP-сервер подойдет для любого компьютера корпоративной сети с FreeBSD. Изменения касаются единственного файла конфигурации /etc/ntp.conf , который необходимо привести к следующему виду:

Второй вариант заключается в выполнении команды ntpdate -b <IP-адрес/FQDN внутреннего NTP-сервера> при запуске операционной системы и последующем выполнении команды ntpdate -s <IP-адрес/FQDN внутреннего NTP-сервера> каждый час. Ключ -b заставляет ntpdate принудительно использовать системный вызов settimeofday(2), предназначенный для грубой корректировки системного времени (по умолчанию, если локальное время время отличается от времени, полученного с NTP-сервера, менее чем на 0,5 секунд, ntpdate использует системный вызов adjtime(2), предназначенный для плавной корректировки системного времени), ключ -s включает перенаправление вывода в syslog(3). Таким образом эмулируется поведение NTP-сервера. Грубая корректировка времени при запуске операционной системы является очень важной операцией. Она позволяет избежать значительный скачок системного времени (и возможные проблемы в работе систем биллинга, статистики, СУБД и т.п.), который может произойти в том случае, если первая операция синхронизации времени будет выполнена позже, чем запустится операционная система, и локальное время будет отличаться от времени на NTP-сервере более чем на 0,5 секунд. Для того, чтобы команда грубой корректировки времени автоматически выполнялась при запуске операционной системы, следует добавить в файл /etc/rc.conf строки:

Для того, чтобы команда точной корректировки времени каждый час выполнялась с помощью cron(8), необходимо войти в систему под root’том , выполнить команду crontab -e , позволяющую внести изменения в crontab текущего пользователя (т.е. root’a ), и добавить строку:

На этом настройка второго варианта завершается. Я рассказал о нем лишь потому, что он существует и может использоваться, однако, у меня ни разу не возникало оснований для отказа от первого варианта.

Заключение

Я надеюсь, что не забыл ничего важного, и приведенной информации будет достаточно для корректной настройки и последующей отладки NTP-серверов на компьютерах Вашей корпоративной сети с FreeBSD и другими операционными системами семейства Linux/Unix.

голоса
Рейтинг статьи
Читайте так же:
Как отрегулировать клапана на ямз 238 в два оборота
Ссылка на основную публикацию
Adblock
detector