Taxitaxitaxi.ru

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

Ntp сервер в локальной сети

Ntp сервер в локальной сети

Что, если требуется организовать собственный ntp сервер в локальной сети Windows? Например, в изолированной сети системы видеонаблюдения или системы автоматики.

Вроде бы наиболее простое решение – настроить службу времени Windows (W32TIME) в качестве сервера времени на каком-нибудь постоянно включенном компьютере (сервере). Делается это элегантной правкой параметров в реестре и вроде бы работает. Однако выясняется, что W32TIME работает далеко не для всех клиентов.

Причина в том, что служба времени Windows поддерживает не NTP протокол, а SNTP (Simple NTP), в результате синхронизация часов может вообще не работать в такой конфигурации, например, для IP видеокамер в системах видеонаблюдения, контроллеров в системах автоматики и других подобных устройств.

В таком случае следует использовать альтернативное ПО, например, Meinberg NTP – это NTP service с GUI инсталлятором для Windows.

The current stable NTP version can be used with Windows XP and newer, on 32 bit and 64 bit Windows versions. Beside the standard IPv4 network protocol it also supports IPv6.

Для синхронизации системных часов, серверов, рабочих станций, камер видео наблюдения, и других устройств в локальной сети.
Будем использовать локальный сервер точного времени с настроенным протоколом NTP (Network Time Protocol).

Устанавливаем NTP

Все настройки производятся в одном единственном файле ntp.conf.
Добавляем данные в него.

разрешим доступ к серверу времени только из нашей локальной сети

Посмотрим конфигурационный файл ntp.conf

если указанной ниже строки нет то добавляем ее или изменяем.

restrict default — задает значение по умолчанию для всех рестриктов.
kod — узлам, которые часто отправляют запросы сначала отправить поцелуй смерти (kiss of death), затем отключить от сервера.
notrap — не принимать управляющие команды.
nomodify — запрещает команды, которые могут вносить изменения состояния.
nopeer — не синхронизироваться с хостом.
noquery — не принимать запросы.
restrict 192.168.0.0 mask 255.255.255.0 — разрешить синхронизацию для узлов в сети 192.168.0.0/24.
IP адреса 127.0.0.1 и ::1 позволяют обмен данные серверу с самим собой.

перезапускаем наш сервер NTP

Для настройки автоматического запуска демона при загрузке системы, используйте специальную команду.

Тестирование

Проверить состояние получения эталонного времени можно командой:

Ее вывод будет представлен в виде таблицы:

В таблице указываются следующие параметры:

Проверить, пригоден ли сервер из списка для синхронизации, можно при помощи утилиты ntpdate:
Устанавливаем ее

В данном случае вывода видно, что сервер пригоден для синхронизации, его уровень — 2, смещение — 0.000000 мс, задержка — 0.02563 мс.

Настройка клиента в Linux

Для этих можно использовать 2 способа настройки — с помощью ntp или утилиты ntpdate.

В настройка /etc/ntp.conf в качестве сервера оставляем только наш локальный сервер, например:

Остальные pool и server удаляем или комментируем.

ntpdate

Утилита командной строки выполняет синхронизацию только при запуске. Для автоматизации процесса, добавляем задание в cron:

* в данном примере задание будет выполняться каждые 30 минут. /usr/sbin/ntpdate — полный путь расположения утилиты, в разных системах может быть разным — проверить стоит командой which ntpdate.

Настройка клиента в Windows

В командной строке выполняем:

Возможные ошибки

1. the NTP socket is in use, exiting

Данная ошибка возникает при попытке синхронизировать время с помощью ntpdate, когда в системе работает демон ntp.

Причина: NTP сокет в системе уже занят ntpd.

Решение: либо не использовать ntpdate, так как ntp умеет сверять время, либо отключить сервис ntpd командой service ntp stop.

2. Connection refused

Возникает при попытке выполнить команду ntpq -p.

Причина: нет разрешения на обращение к серверу.

Решение: проверьте, удастся ли выполнить запрос командой ntpq -pn 127.0.0.1 или ntpq -pn ::1. Также убедитесь, что настройка restrict позволяет серверу подключаться к самому себе по нужному протоколу.

3. no server suitable for synchronization found

Ошибка синхронизировать время с другим сервером синхронизации.

Причина: сервер синхронизации не доступен по одной из причин: 1) не работает или выключен, 2) установлен restrict, 3) на сервере не запущен ntpd, 4) нет сетевой доступности из-за проблем на сети или брандмауэра.

Убедиться, что сервер доступен по сети.
Проверить настройки ntp.conf — наличие соответствующего restrict.
Проверить состояние сервиса командой service ntp status.
Проверить настройки брандмауэра — убедиться в наличие правила, которое разрешает UDP порт 123.

Читайте другие интересные статьи

Понравилась статья, расскажи о ней друзьям, нажми кнопку!

Для любой локальной сети, а особенно доменной, для избежания проблем взаимодействия между сетевыми программами рекомендуется синхронизация компьютеров с сервером точного времени.
Наиболее популярной программой сервера точного времени является демон ntpd из пакета ntp. Ntp обычно устанавливать не требуется, программа уже входит в минимальный набор программ устанавливаемый вместе с системой.

Читайте так же:
Хускварна 350 карбюратор регулировка

Конфигурация сервера достаточно проста – создаем файл /etc/ntpd.conf с таким содержимым

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

Вот и вся настройка, от root или sudo запускаем сервер, если он не был запущен

если был запущен, как это обычно бывает в debian и ubuntu – перезапускаем ntpd

Убедимся что в логе /var/log/ntp.log нет ошибок и демон корректно запустился. Теперь надо подождать минут 15-20, пока пройдет полная синхронизация времени между вашим сервером и серверами интернет.
Проверяем сервера синхронизации. "+" показывает тот сервер с которым в последний раз была синхронизация

Запрос на синхронизацию с самим собой

Самой лучшей проверки работы сервера времени будет успешная синхронизация времени клиентского компьютера. Для клиентов ОС unix выполняем команду от root или sudo

Сервер работает и отдает правильное время – задача выполнена. Добавим загрузку демона в стартовые скрипты ОС и при необходимости открываем порт 123 udp.
Для FreeBSD

В большинстве linux дистрибутивов что-то дополнительно для прописывания в запуск не требуется, это делается автоматически при установке пакета ntp.
Для FreeBSD добавим в /etc/rc.conf

Для сети с доменом из win машин в GPO AD указываем включение сервиса времени на всех ПК, и указать сервер с кем синхронизироваться.

Сервер времени для синхронизации локальной сети

Данный документ описывает основные настройки, которые следует сделать для рабочих станций сети ИКИР, чтобы время на них было максимально точным.

Максимально точное единое время для рабочих станций в сети ИКИР является важной задачей не только для офисных работ, но в первую очередь для автоматизированных систем сбора данных. Технологии синхронизации для Linux и Windows описаны в Бюллетене от 02.09.2002. Этот документ кратко повторяет оттуда основные данные и уточняет необходимые настройки непосредственно для нашей сети.

Основные идеи синхронизации

  • Для синхронизации времени компьютеров через сеть Интернет и через локальную сеть созданы программы, которые реализуют NTP (Network Time Protocol).
  • В нашей локальной сети есть сервера, которые используются другими компьютерами для синхронизации времени.
  • Настройка времени делается по данным с этих серверов скачком при первом запуске программы управления синхронизацией на рабочей станции.
  • После начальной синхронизации никаких подстроек времени скачком не делается. В дальнейшем программа синхронизации регулярно опрашивает сервера и подстраивает системный таймер так, чтобы идти в ногу со временем серверов.
  • Сами сервера времени получают время из Интернет и/или с GPS, используя тот же NTP-протокол, что и рабочие станции, стараются максимально точно быть синхронизированными с единым мировым временем.
  • Сервера времени ИКИР имеют названия ntp0.pt.ikir.ru и ntp1.pt.ikir.ru.

Программы синхронизации.

Программы управления временем и их конфиги в Linux и Windows очень близки (для Windows, к счастью, нашёлся сторонний разработчик, который полноценно реализовал ntpd).
В Ubuntu должен быть установлен пакет ntp. Он входит в состав дистрибутивов Linux.
Установка делается так:

apt-get install ntp

timedatectl set-ntp no

Чтобы сервис ntp стартовал при перезагрузке:
systemctl enable ntp

Чтобы стартовать сервис:
systemctl restart ntp

В Windows должны быть установлены программы ntp-4.2.4p6@vegas-v2-o-win32-setup.exe и ntp-time-server-monitor-104.exe. Эти программы можно взять с сайта http://www.meinberg.de или с нашего внутреннего http:/appserver/windows/CD1/INSTALL/NTP. При установке автоматически сервис стартует и в дальнейшем будет делать это после перезагрузки.

В конфигурацонном файле ntp.conf (в Linux он находится в каталоге /etc, а в Windows в C:Program FilesNTPetc), должны быть следующие строки:
server ntp0.pt.ikir.ru minpoll 4 maxpoll 10
server ntp1.pt.ikir.ru minpoll 4 maxpoll 10

Наблюдение за синхронизацией.

Что означают колонки в этом выводе?

  • remote — NTP-сервер, с которым наш хост синхронизуется. Ключ -n при запуске ntpq показывает IP-адрес вместо имёни.
  • refid — откуда сервер сам получает время. Это может быть другой хост или запись .GPS., говорящая о том, что на хосте время берётся из GPS-приёмника
  • st — Stratum (уровень). Число от 1 до 16, указывающее на точность сервера.
    Единица означает максимальную точность, 16 — сервер недоступен.
    Уровень вашего компьютера при использовании кем-то другим будет равен уровню наименее точного удаленного сервера плюс 1.
  • when —Секунда после последнего обращения к сервреру.
  • poll —Интервал между опросами в секундах. Значение будет изменяться между минимальной и максимальной частотой опросов.
    Вначале интервал будет минимальным (параметр minpoll при запуске ntpd), чтобы синхронизация происходила побыстрее.
    После того, как часы синхронизируются, интервал начинает увеличиваться, чтобы уменьшить трафик и нагрузку на другие сервера времени.
  • reach — Восьмеричное значение 8-ми бит. Каждый бит — это результат одной попытки соединения с сервером.
    Представлен результат последних 8-ми попыток (по числу битов).
    Бит равен 1, если был получен ответ от удаленного сервера.
  • delay — Количество миллисекунд для получения ответа на запрос времени.
  • offset — Разница между временем локального и удаленного серверов в миллисекундах. В ходе синхронизации это значение должно понижаться, указывая на то, что часы локальной машины идут все точнее.
  • jitter Дисперсия (Jitter) — дисперсия отклонений от значения смещения (поле offset) по нескольким успешным запросам времени. Меньшее значение дисперсии предпочтительнее.
Читайте так же:
Регулировка двигателя снегохода буран

Знаки перед именами(номерами) серверов означают:
наш NTP не предпочитает этот сервер.
+ наш NTP предпочитает этот сервер.
x хост не подходит для синхронизации.
* cамый предпочтительный сервер на данный момент.

Устройства для синхронизации.

На момент написания бюллетеня 2 сервера времени получают время из Internet-а, а 1 сервер имеет stratum 1 — получает время от GPS-приёмника.

Примитивная разовая синхронизация в Windows.

Для того, чтобы рабочая станция под Windows при загрузке системы синхронизовала свои часы с сервером времени без использования протокола ntpd, можно использовать возможности SMB-протокола. Следующая команда в Windows синхронизует время с нашим внутренним сервером времени:

net time \commserv /set /yes

Эту строчку стоит написать в BAT-файле и сам BAT-файл запихнуть в каталог автозагрузки.

Институт космофизических исследований и распространения радиоволн ДВО РАН © 1999-2016 Powered by OpenCMS

Windows cервер для синхронизации времени в локальной сети (NTP)

Серер синхронизации времени в WindowsВозникла необходимость синхронизации времени на компьютерах в локальной сети на стандартном 123 UDP порту?
Или как я настраивал сервер NTP в локальной сети на Windows хосте.

Ситуация следующая: в одноранговой локальной сети есть одна Windows машина которая ходит в нтернет и синхронизирует время, например с time.nist.gov.
Рабочие станции этой сети не ходят в Интернет, или им запрещено синхронизироваться, или вы не хотите дополнительный трафик по UDP 123 порту наружу, или есть проблемы синхронизации времени с популярных интернет ntp cерверов. C помощью этой статьи вы настроите синхронизацию времени в среде Windows и настроите NTP сервер на обычной Windows машине.

Сервер синхронизации времени ntp может работать на Windows 2000, Windows XP Prof, Windows 7, Windows Server 2003/2008 .

Начнем с ОС Windows XP Prof (Windows XP Home — то же самое).

Открываем реестр — Пуск -> выполнить -> regedit
идем в ветку:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig

присваеваем параметру AnnounceFlags значение 5. Тем самым мы обьявим наш будущий NTP сервер, достоверным и компьютеры при синхронизации с ним не будут ругаться.
Далее Пуск -> выполнить -> mmc и добавляем оснастку «Редактор обьекта групповой полтики». Обьектом группвой политики выступит Локальный компьютер.

Идем по разделам Конфигурация компьютера -> Администрантивные шаблоны -> Система -> Служба времени Windows -> Поставщики времени. Там находим «Включить Windows NTP-сервер» и в свойствах выбираем позицию «включить». В заключении проходим в Службы, ищем «Служба времени Windows» и перезапускаем этот сервис. Если он не включен, то включаем его и ставим тип запуска «Авто».

Кроме этого на раздающем сервере необходимо изменить интервал через который он сам будет ходить в инет за временем.
Открываем реестр — Пуск -> выполнить -> regedit
идем в ветку:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProviders
NtpClientSpecialPollInterval

По умолчанию интервал между обновлениями времени в Windows – 1 неделя (604800 сек). При низкой точности системных часов компьютера это слишком большой интервал. При такой настройке за 1 неделю часы Вашего компьютера могут получить погрешность величиной порядка минуты или даже нескольких минут. Рекомендую уменьшить интервал обновления до нескольких часов. Это изменение не увеличит ни трафика, ни нагрузки на NTP-сервер, при этом позволит поддерживать более высокую точность хода часов Вашего компьютера.

При значении флага UseAsFallbackOnly службе времени сообщается, что данный сервер будет использоваться как резервный и перед синхронизацией с ним будут выполнятся обращения к другим серверам списка.
После внесения необходимых настроек в можно перечитать конфигурацию сохраненную в реестре коммандой приведенной ниже, или перезагрузить компьютер.

w32tm /config /update

И при необходимости выполнить немедленную синхронизацию

w32tm /resync

На этом настройка сервера закончена.

На клиентских компьютерах следуем в «Панель управления», выбираем «дата и время» и в закладке «Время интернета» меняем строку сервер на IP (или имя) вашего локального сервера.
Вот и все.

Можно раскидать батник на рабочие станции :
w32tm /config /manualpeerlist:IP_адрес_сервера,0x1 /syncfromflags:MANUAL
net stop w32time
net start w32time
w32tm /resync

И запускаем его на клиентских машинах с правами Администратора.

Читайте так же:
К 750 регулировка холостого хода

Для WINDOWS 2000

Теперь поясню, как установить синхронизацию основного компьютера времени, т. е. корневого PDC-эмулятора леса, с реальным временем. Для этого следует Пуск -> выполнить -> ввести команду:

net time /setsntp:

Параметр /setsntp команды Net Time показывает, что используется Simple Network Time Protocol (SNTP), стандартный протокол Internet. Internet Engineering Task Force (IETF) Request for Comments (RFC-2030), датированный октябрем 1996 г., определяет SNTP. Можно указать любой сервер времени SNTP в Internet для корневого PDC-эмулятора леса и заставить его синхронизировать свое время с временем этого сервера. Многие брандмауэры включают сервер времени, так что для конкретного контроллера — эмулятора PDC — нет нужды обращаться куда-либо из своей внутренней сети для синхронизации с SNTP-сервером. Но если брандмауэр требуется настраивать, то нужно иметь в виду, что SNTP использует 123-й порт UDP.

Остановит сервер времени Windows Time Service:

net stop w32time

Затем можно проверить время источника, для чего следует ввести:

w32tm -once

чтобы установить время от источника времени однократно (по умолчанию W32tm обновляет время периодически). Система выдает страницу запутанной информации; в случае успешного выполнения команды в одной из строк появится Recv`ed from server 48 Bytes. Далее необходимо набрать:

net start w32time

чтобы снова запустить службу времени.

После первоначальной синхронизации с сервером времени компьютер снова сверяет с ним свое время через 45 мин. Если выясняется, что разница между показаниями часов сервера времени и системных часов компьютера не превышает 2 с, интервал ожидания следующей сверки с сервером времени удваивается. Если через полтора часа разница во времени остается в пределах 2 с, компьютер продолжает удваивать интервал синхронизации и проверять точность времени и, наконец, останавливается на интервале приблизительно 8 ч.

Если неизвестно, с каким SNTP-сервером синхронизируется система, в командной строке следует ввести:

net time /querysntp

Пишите если у кого не получилось, я запустил на 20-30 машинах в локалке и забыл о проблемах с разным временем в отчетах, логах, видео архивах и прочее. Главное не забывать когда заводите в сети новую машину проделать с ней эту процедуру.

Система точного времени NTP

NTP Time Servers.jpg

NTP использует алгоритм Марзулло (предложен Кейтом Марзулло (Keith Marzullo) из Университета Калифорнии, Сан-Диего), включая такую особенность, как учёт времени передачи. В версии 4 способен достигать точности 10 мс (1/100 с) при работе через Интернет, и до 0.2 мс (1/5000 с) и лучше внутри локальных сетей.

NTP использует иерархическую систему «часовых уровней»: уровень 1 синхронизован с высокоточными часами, например, с системой GPS, ГЛОНАСС (Единая Государственная шкала времени РФ) или атомным эталоном времени; уровень 2 синхронизируется с одной из машин уровня 1, и так далее.

Время представляется в системе NTP 64-битным числом (8 байт), состоящим из 32-битного счётчика секунд и 32-битного счётчика долей секунды, позволяя передавать время в диапазоне 2 32 секунд, с теоретической точностью 2 -32 секунды. Поскольку шкала времени в NTP повторяется каждые 2 32 секунды (136 лет), получатель должен хотя бы примерно знать текущее время (с точностью 50 лет).

Наиболее широкое применение протокол NTP находит для реализации серверов точного времени. Для достижения максимальной точности предпочтительна постоянная работа программного обеспечения NTP в режиме системной службы (демона).

Более простая реализация этого алгоритма известна как SNTP — простой синхронизирующий сетевой протокол. Используется во встраиваемых системах и устройствах, не требующих высокой точности, а также в пользовательских программах точного времени.

Для использования конечными пользователями рекомендуется использовать сервера Stratum 2, поскольку они имеют связь с несколькими серверами Stratum 1 и будут отдавать точное время в случае отсутствия связи до одного из них. Если же необходимо выбрать сервера для использования на маршрутизаторе, отдающем точное время внутрь локальной сети или же в интернет, рекомендуется использование не менее 3х (но не более 7и) авторитетных Stratum 1 серверов [2] .

Использование конечными пользователями серверов Stratum 1 строго не рекомендуется: By convention, Stratum 1 time servers should only be used by Stratum 2 servers, and by applications requiring extremely precise time measurements, such as scientific applications. [3]

Использование случайных серверов из пула pool.ntp.org не рекомендуется не для персонального использования [4] [5] . Так же не следует настраивать использование LOCAL clock [6] кроме редких случаев, когда нет постояного подключения к сети, а синхронизация времени все же необходима.

Список надежных и публичных серверов Stratum 1

Attention.pngВНИМАНИЕ!
Не настраивайте на данные адреса софт пользовательских машин! Эти сервера предназначены только для нижестоящих серверов Stratum 2.

Россия

  • ВНИИФТРИ [7] , Атомные часы [8][9]
    • 62.117.76.142 (ntp1.vniiftri.ru)
    • 62.117.76.141 (ntp2.vniiftri.ru)
    • 62.117.76.138 (ntp3.vniiftri.ru)
    • 62.117.76.140 (ntp4.vniiftri.ru)
    • 192.43.244.18 (time.nist.gov) National Institute of Standards and Technology [16] , Атомные часы [17]
    • 198.123.30.132 (ntp.nasa.gov) National Aeronautics and Space Administration [18] , GPS-источник

    Япония

    • 133.243.238.163 (ntp.nict.jp) National Institute of Information and Communications Technology [19] , Атомные часы [20]

    Рабочая конфигурация сервера NTP на маршрутизаторе Cisco

    Логинимся на Cisco. Смотрим текущее состояние времени:

    Если время отличается от правильного на значительную величину (более 3-4 минут), то подгоняем его вручную:

    Задаем часовую зону и время перехода на летнее время.

    В нашем случае указываем эти параметры для часовой зоны Москва (UTC +4, без перехода)

    Если циска уже была сконфигурирована на переход на летнее время, отключаем его следующей командой:

    и меняем часовой пояс на +4:

    Указываем адреса ntp-серверов (список Stratum 1), относительно которых наша Cisco будет клиентом:

    В нашем примере используются 5 надежных адресов.

    Далее смотрим конфигурацию маршрутизатора на предмет имени внутреннего сетевого интерфейса:

    Пример выдержки из конфигурационного файла:

    Указываем, на каком интерфейсе будет располагаться наш ntp-сервер:

    Attention.pngВНИМАНИЕ!
    Нельзя указывать в качестве ntp source сабинтерфейсы, работать не будет. В документации Cisco часто можно встретить рекомендации использовать Loopback-интерфейс.

    Записываем конфигурацию в память:

    Наш конфигурационный файл

    Проверка текущего состояния

    Настройка клиентских машин и устройств

    Отмена перехода на летнее/зимнее время на территории РФ

    • Для того, чтобы системы Windows не переходили на летнее/зимнее время необходимо установить заплатку: http://support.microsoft.com/kb/2570791
    • В SuSE Linux, возможно, необходимо будет обновить пакет timezone до версии 2011n или выше.

    Linux

    Как посмотреть стратум удаленного сервера:

    Проверка работоспособности конфигурации NTP:

    Windows 2003

    Вся настрока выполняется из командной строки. Последовательность действий следующая:

    В ответ должны получить следующее:

    Через некоторое время проверяем журнал событий системы. Если все настроено верно, то в журнале будет информационное сообщение от источника W32Time с кодом (ID) 35 и текстом Служба времени выполняет синхронизацию системного времени с источником времени имя_ntp_сервера

    Если возникли какие-то проблемы, то в журнал будет записана ошибка с кодом (ID) 29 от источника W32Time и текстом NTP-клиент поставщика времени настроен на получение времени из одного или нескольких источников, однако ни один из этих источников недоступен. Попытки подключения к источнику не будут выполняться в течение ХХ мин. NTP-клиент не имеет источника правильного времени. В таком случае, убедитесь, что файрвол не блокирует соединения с NTP-сервером по протоколу UDP порт 123. Проверьте, что имя NTP-сервера указано верно. Для этого в командной строке выполните

    В ответ будет выведено имя сервера NTP.

    Для определения величины расхождения локального времени и времени любого компьютера в сети, используйте команду

    На экран будет выводиться информация о дельте локального времени и времени на имя_компьютера до прерывания работы при помощи Ctrl+C.

    Если Ваша сеть с доменами, то клиенты будут автоматически синхронизировать свои часы с контроллером домена. Если Вы не используете в сети доменов, то настраивать клиентов придётся вручную.

    Windows 2008

    Подмена адреса time.windows.com локальным NTP на DNS-сервере

    В крупных, постоянно меняющихся и развивающихся сетях установка адреса локального ntp-сервера на всех машинах, не подключенных к Active Directory, может представлять определенную проблему. В данном случае можно воспользоваться возможностями DNS-сервера BIND и подменить выдаваемый по запросу «time.windows.com» ip-адрес на принадлежащий локальному серверу NTP [21] .

    На DNS сервере (на примере SLES 10) создадим интересующую нас зону следующего содержания:

    /var/lib/named/master/time.windows.com

    где 192.0.2.30 — ip-адрес локального ntp-сервера

    В конфигурационный файл /etc/named.conf добавляем строки:

    где acls — используемые в локальной сети ACL’и

    Если все правильно, то в логе /var/log/messages появится подобная строчка:

    Проверяем результат на клиентской машине, предварительно сбросив кэш dns (How do I Flush DNS?):

    Как установить и настроить NTP на сервере

    Как установить и настроить NTP на сервере

    Работа многих служб ОС зависит от того, насколько точны системные часы. Для чего нужна эта точность? Затем, что неточное время на сервере повлечет за собой много неприятностей.

    В качестве примера приведем следующий: если в локальной сети часы машин, которые совместно используют файлы, не будут синхронизированы, то нельзя будет установить время изменения файлов. Из-за этого возникнет конфликт версий или перезаписи данных. Без установки точного времени на сервере появятся и сложности с задачами Cron – непонятно, когда они запустятся. Невозможно будет проанализировать журналы системных событий, чтобы понять причины неисправностей и сбоев.

    Для того чтобы эти неприятности не возникли, нужно наладить синхронизацию системных часов. Для этого используется протокол NTP (Network Time Protocol).

    Как устроен протокол NTP

    Протокол NTP основан на иерархической структуре сервера точного времени, где выделены разные уровни. К нулевому уровню, на котором NTP-серверы не работают, относятся так называемые эталонные часы.

    С ними синхронизируются NTP серверы уровня 1, являющиеся источниками для серверов уровня 2. Серверы второго уровня синхронизируются с серверами первого уровня, но еще могут синхронизироваться между собой. Точно так же функционируют серверы третьего уровня и ниже. В целом, поддерживается порядка 256 уровней.

    Иерархическая структура NTP является отказоустойчивой и избыточной. Так, резервные серверы берут синхронизацию на себя, когда речь идет об отказах соединения с вышестоящими серверами. Для расчета точного времени NTP берет данные ото всех источников, синхронизируясь с несколькими серверами.

    Как установить и настроить NTP-сервер

    Чтобы синхронизировать время, используют демон ntpd, который может быть как сервером, принимающим время из удаленных хостов, так и клиентом, раздающим время сторонним хостам. Демон ntpd зависит от указанных в файле конфигурации настроек.

    Для установки сервера NTP используется стандартный менеджер пакетов $ sudo apt-get install ntp.

    После установки все необходимые настройки NTP будут находиться в файле /etc/ntp.conf.

    Первая строчка файла конфигурации – driftfile /var/lib/ntp/ntp.drift. В ней указан файл, в котором хранится информация о том, как часто смещается время. В этом же файле содержится и значение, которое было получено из предыдущих изменений времени. Если по каким-то причинам внешние NTP-серверы недоступны, знание берут из этого файла.

    После этого нужно указать файл, сохраняющий логи синхронизации – logfile /var/log/ntp.log.

    В файле конфигурации нужно указать перечень серверов NTP, с которыми нужно синхронизироваться. По умолчанию этот перечень выглядит вот так:

    • server 0.ubuntu.pool.ntp.org
    • server 1.ubuntu.pool.ntp.org
    • server 2.ubuntu.pool.ntp.org
    • server 3.ubuntu.pool.ntp.org

    Эти строки означают группу серверов, которые сообщают серверу верное время. Через опцию iburst можно увеличить точность синхронизации, то есть указать то, что на сервер необходимо отправлять несколько пакетов вместо одного:

    • server 0.ubuntu.pool.ntp.org iburst
    • server 1.ubuntu.pool.ntp.org iburst
    • server 2.ubuntu.pool.ntp.org iburst
    • server 3.ubuntu.pool.ntp.org iburst

    Еще можно донести информацию о нужном сервере через опцию prefer:

    VDS Timeweb арендовать

    Ареал использования серверов NTP

    Такие серверы есть во всем мире, но обычно синхронизация происходит с NTP-серверами именно того ареала, где физически находится ваш сервер. Таким образом, в файле конфигурации /etc/ntp.conf указывается поддомен ареала (региона) для pool.ntp.org:

    • Азия – asia.pool.ntp.org
    • Европа – europe.pool.ntp org
    • Африка – africa.pool.ntp.org
    • Северная Америка – north-america.pool.ntp.org
    • Южная Америка – south-america.pool.ntp.org
    • Океания – oceania.pool.ntp.org
    • Россия – ru.pool.ntp.org

    Резервный сервер точного времени

    NTP-сервер, по какой-либо причине отключенный от интернета, может передавать для синхронизации данные своих системных часов. Для этого в конфигурационный файл нужно добавить следующую строку:

    Особые случаи использования NTP

    Например, NTP могут использовать, чтобы усилить трафик в DDoS-атаках. А чтобы избежать столкновения с различными злоупотреблениями, следует ограничить доступ для внешних клиентов. Говоря об ограничениях, то по умолчанию в /etc/ntp.conf файле выставлены такие:

    • restrict − 4 default kod notrap nomodify nopeer noquery
    • restrict − 6 default kod notrap nomodify nopeer noquery

    Такие опции, как nomodify, notrap, nopeer и noquery, не позволяют внешним клиентам менять конфигурации на сервере. Параметр kod (расшифровывается как kiss of death, «смертельный поцелуй») дает дополнительный уровень защиты: клиент, который часто отправляет запросы, получает сперва kod-пакет, являющийся предупреждением о том, что в обслуживании отказано, а потом отключается от сервера.

    Для синхронизации машин из локальной сети с сервером NTP в файл конфигурации добавляется такая строчка:

    А для локального хоста устанавливается неограниченный доступ к серверу NTP:

    Как проверить синхронизацию

    После сохранения всех изменений в файле конфигурации NTP-сервер нужно перезагрузить:

    А затем выполнить команду:

    NTP INFO

    На выходе получится таблица, в которой указаны следующие параметры:

    • remote – адрес сервера точного времени;
    • refid – вышестоящий сервер;
    • st – уровень (stratum) сервера;
    • t – тип пира (u- unicast, m- multicast);
    • when – время последней синхронизации;
    • poll – время в секундах, за которое демон NTP синхронизируется с пиром;
    • reach – состояние доступности сервера;
    • delay – время задержки ответа от сервера;
    • offset – временная разница между сервером и сервером синхронизации;
    • jitter – смещение времени на удаленном сервере.

    Слева от адреса сервера могут быть указаны еще и такие символы:

    • * – сервер выбран для синхронизации;
    • + – сервер, пригодный для синхронизации;
    • – – с сервером синхронизироваться не стоит;
    • х – сервер недоступен.

    Чтобы проверить, насколько сервер подходит для синхронизации, нужно использовать команду ntpdate -q.

    Как установить локальные дату и время

    Чтобы установить локальные дату и время на сервере, нужно использовать команду ntpdate, при этом отправив необходимый запрос к серверу NTP:

    голоса
    Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector