Налаштування синхронізації часу NTP за допомогою групових політик. Налаштування синхронізації часу за NTP за допомогою групових політик Ntp сервіс

NTP – це протокол синхронізації часу через мережу. По суті, клієнти запитують поточний час на сервері і використовують його для встановлення свого власного годинника.

За цим простим описом ховається багато складнощів - існують рівні NTP серверів, де перший рівень підключений до атомного годинника, а другий і третій рівні серверів розподіляють на себе навантаження за актуальними запитами з інтернету. Крім того, клієнтська програма складніша, ніж ви можете подумати - вона компенсує затримки з'єднання і регулює час таким чином, щоб не зашкодити іншим процесам, запущеним на сервері. Але на щастя вся ця складність прихована від вас!

Ubuntu використовує ntpdate та ntpd.

ntpdate

Ubuntu стандартно встановлюється з ntpdate і запускатиме його при кожному завантаженні один раз для встановлення часу по NTP серверу Ubuntu.

Ntpdate -s ntp.ubuntu.com

ntpd

Сервіс NTP ntpd обчислює догляд вашого системного годинника і постійно підправляє його, завдяки чому не відбувається сильних змін, що може призводити до непослідовності в журналах. Ціною цього невелике витрачання потужності процесора та оперативної пам'яті, але для сучасного сервера це неістотно.

Встановлення

Для встановлення ntpd із терміналу введіть:

Sudo apt-get install ntp

Налаштування

Відредагуйте /etc/ntp.conf для додавання/видалення серверів. За промовчанням ці сервери такі:

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board # on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for # more information. server 0.ubuntu.pool.ntp.org server 1.ubuntu.pool.ntp.org server 2.ubuntu.pool.ntp.org server 3.ubuntu.pool.ntp.org

Після зміни конфігураційного файлу вам потрібно перезапустити ntpd:

Sudo service ntp restart

Перегляд статусу

Використовуйте ntpq для перегляду додаткової інформації:

# sudo ntpq -p remote refid st t when poll reach delay offset jitter =================================== =========================================== +stratum2-2.NTP. 129.70.130.70 2 u 5 64 377 68.461 -44.274 110.334 +ntp2.m-online.n 212.18.1.106 2 u 5 64 377 54.629 -2.6 . 1 u 10 64377 83.607 -30.159 68.343 +stratum2-3.NTP. 129.70.130.70 2 u 5 64 357 68.795 -68.168 104.612 +europium.canoni 193.79.237.14 2 u 63 64 337 81.534 -67.9

Network Time Protocol — мережевий протокол для синхронізації внутрішнього годинника комп'ютера з використанням мереж зі змінною латентністю, заснованих на комутації пакетів.

Хоча традиційно NTP використовує для своєї роботи протокол UDP, він також здатний працювати поверх TCP. Система NTP є надзвичайно стійкою до змін латентності середовища передачі.

Час, представляється в системі NTP 64-бітним числом, що складається з 32-бітного лічильника секунд і 32-бітного лічильника часток секунди, дозволяючи передавати час в діапазоні 232 секунд, з теоретичною точністю 2 -32 секунди. Оскільки шкала часу NTP повторюється кожні 2 32 секунди (136 років), одержувач повинен хоча б приблизно знати поточний час (з точністю 68 років). Також слід враховувати, що час відраховується з півночі 1 січня 1900 року, а не з 1970-го, тому з часу NTP потрібно віднімати майже 70 років (з урахуванням високосних років), щоб коректно поєднати час із Windows або Unix-системами.

Як це працює

NTP-сервери працюють у ієрархічній мережі, кожен рівень ієрархії називається ярусом (stratum). Ярус 0 представлений еталонним годинником. За стандарт береться сигнал GPS (Global Positioning System) або служби ACTS (Automated Computer Time Service). На нульовому рівні NTP-сервери не працюють.

NTP-сервери ярусу 1 отримують дані про час від еталонного годинника. NTP-сервери ярусу 2 синхронізуються із серверами ярусу 1. Усього може бути до 15 ярусів.

NTP-сервери та NTP-клієнти отримують дані про час від серверів ярусу 1, хоча на практиці NTP-клієнтам краще не робити цього, оскільки тисячі індивідуальних клієнтських запитів виявляться надто великим навантаженням для серверів ярусу 1. Краще налаштувати локальний NTP-сервер, який ваші клієнти будуть використовуватись для отримання інформації про час.

Ієрархічна структура протоколу NTP є стійкою до відмови і надмірною. Розглянемо приклад його роботи. Два NTP-сервери ярусу 2 синхронізуються з шістьма різними серверами ярусу 1, кожен - по незалежному каналу. Внутрішні вузли синхронізуються із внутрішніми NTP-серверами. Два NTP-сервери ярусу 2 координують час один з одним. У разі відмови лінії зв'язку з сервером ярусу 1 або одним із серверів рівня 2 надлишковий сервер рівня 2 бере на себе процес синхронізації.

Аналогічно вузли та пристрої ярусу 3 можуть використовувати будь-який із серверів ярусу 2. Що ще важливіше, так це те, що наявність надмірної мережі серверів NTP гарантує постійну доступність серверів часу. Синхронізуючись із кількома серверами точного часу, NTP використовує дані всіх джерел, щоб вирахувати найточніший час.

Варто зазначити, що протокол NTP не встановлює час у чистому вигляді. Він коригує локальний годинник з використанням тимчасового зміщення, різниці між часом на NTP-сервері та локальному годиннику. Сервери та клієнти NTP налаштовують свій годинник, синхронізуючись з поточним часом поступово або одноразово.

Служба часу Windows, незважаючи на простоту, є однією з основ, необхідних для нормального функціонування домену Active Directory. У правильно настроєному середовищі AD служба часу працює так: комп'ютери користувачів отримують точний час від найближчого контролера домену, на якому вони реєструвалися. Всі контролери домену в свою чергу отримують точний час від DC Емулятор PDC», а контролер PDC синхронізує свій час із деяким . В якості зовнішнього джерела часу може виступати один або кілька серверів NTP, наприклад time.windows.com або сервер NTP вашого Інтернет-провайдера. Також слід зазначити, що за замовчуванням клієнти в домені синхронізують час за допомогою служби часу Windows (Windows Time), а не протоколу NTP.

Якщо ви зіткнулися з ситуацією, коли час на клієнтах і контролерах домену відрізняється, можливо, у вашому домені є проблеми із синхронізацією часу і ця стаття буде вам корисна.

В першу чергу виберіть відповідний сервер NTP, який ви могли б використовувати. Список загальнодоступних NTP серверів доступний на сайті http://ntp.org. У нашому прикладі ми будемо використовувати сервер NTP з пулу ru.pool.ntp.org:

  • 0.ru.pool.ntp.org
  • 1.ru.pool.ntp.org
  • 2.ru.pool.ntp.org
  • 3.ru.pool.ntp.org

Налаштування синхронізації часу в домені за допомогою групових політик складається з двох кроків:

1) Створення GPO для контролера домену з участю PDC
2) Створення GPO для клієнтів (опціонально)

Налаштування політики синхронізації NTP на контролері домену PDC

Цей крок передбачає налаштування контролера домену з участю емулятора PDC на синхронізацію часу із зовнішнім сервером NTP. Т.к. теоретично роль емулятора PDC може переміщатися між контролерами домену, нам потрібно зробити політику, яка б застосовувалася тільки до поточного власника ролі PDC. Для цього в консолі управління Group Policy Management Console(GPMC.msc), створимо новий. Для цього у розділі WMI Filtersстворимо фільтр та ім'ям PDC Emulatorі WMI запитом: Select * from Win32_ComputerSystem where DomainRole = 5

Потім створіть нову GPO та призначте її на контейнер Domain Controllers.

Перейдіть до режиму редагування політики та розгорніть наступний розділ політик: Computer Configuration->Administrative Templates->System->Windows Time Service->Time Providers

Нас цікавлять три політики:

  • Configure Windows NTP Client: Enabled (налаштування політики описано нижче)
  • Enable Windows NTP Client: Enabled
  • Enable Windows NTP Server: Enabled


У налаштуваннях політики Configure Windows NTP Clientвкажіть такі параметри:

  • NtpServer: 0.ru.pool.ntp.org,0x1 1.ru.pool.ntp.org,0x1 2.ru.pool.ntp.org,0x1 3.ru.pool.ntp.org,0x1
  • Type: NTP
  • CrossSiteSyncFlags: 2
  • ResolvePeerBackoffMinutes: 15
  • Resolve Peer BAckoffMaxTimes: 7
  • SpecilalPoolInterval: 3600
  • EventLogFlags: 0

Порада. Не забудьте настроїти міжмережевий екран таким чином, щоб сервер PDC міг отримати доступ до зовнішніх NTP серверів за протоколом NTP (UDP порт 123).

Примітка. Зверніть увагу на синтаксис у полі NtpServerФормат вказівки кількох NTP серверів такий: ntsrv1.org,0x1 ntpsrv2.org,0x1(Розділювач пробіл). На скріншоті вказані хибні дані!

Застосуйте раніше створений фільтр PDC Emulatorдо цієї політики.

Порада. Знайти ім'я сервера за участю PDC можна за допомогою команди: netdom query fsmo

Залишилось оновити політики на контролері PDC:
gpupdate /force

Запустіть вручну синхронізацію часу:
w32tm / resync

Перевірте поточні налаштування NTP:
w32tm/query/status

Порада. Якщо час не синхронізувався, перезапустіть службу часу Windows і скиньте поточні установки.
net stop w32time
w32tm.exe /unregister
w32tm.exe /register
net start w32time

Налаштування синхронізації часу на клієнтах домену

У середовищі Active Directory за замовчуванням клієнти домену синхронізують свій час із контролерами домену (опція Nt5DS– синхронізувати час згідно з ієрархією домену). Як правило, ця схема працює і не потребує переналаштування. Однак за наявності проблем із синхронізацією часу на клієнтах домену можна спробувати примусово призначити сервер часу для клієнтів за допомогою GPO.

Для цього створіть нову GPO та призначте її на контейнери (OU) із комп'ютерами. У редакторі GPO перейдіть до розділу Computer Configuration -> Administrative Templates -> System -> Windows Time Service -> Time Providersта увімкніть політику Configure Windows NTP Client.

Як сервер NTP вкажіть ім'я або ip адресу PDC, наприклад msk-dc1.сайт, 0x9, а як тип синхронізації - NT5DS

Оновіть налаштування групових політик на клієнтах та перевірте, чи клієнти успішно синхронізували свій час з PDC.

Порада. Зазначена схема застосовується лише до невеликих доменів. Для великих розподілених доменів з великою кількістю DC та сайтів доведеться створити окрему політику для кожного сайту, щоб клієнти синхронізували свій час із DC у сайті.

Вступ.

Система Linux, як і більшість інших сучасних операційних систем, фактично має дві години. Перший годинник - апаратний, іноді звані Real Time Clock, скорочено (RTC), або годинник BIOS, зазвичай вони пов'язані з кварцовим кристалом, що коливається, що має точність ходу до декількох секунд на день. Точність залежить від різних коливань, наприклад, навколишньої температури. Другий годинник - внутрішній програмний годинник, який йде безперервно, у тому числі і при перервах у роботі системи. Вони схильні до відхилень, пов'язаних з великим системним навантаженням і затримкою переривань. Однак система зазвичай зчитує показання апаратного годинника при завантаженні і потім використовує системний годинник. Команда date, встановлює не апаратний, а системний годинник.

Якщо використовується NTP, можна встановити апаратний годинник під час першої інсталяції системи і більше ніколи не турбуватися про нього.

Мікросхема годинника реального часу (ЧРВ), що використовується на материнських платах, не особливо точна і зазвичай відстає, або забігає вперед на певний час щодня.

Можна синхронізувати апаратний годинник із системним за допомогою команди hwclock з опцією -w або —systohc і синхронізувати системний годинник з апаратним за допомогою команди hwclock із опцією -s або –hctosys.

Налаштування.

Для початку у файлі /etc/ntp.conf додаємо рядок:

Час синхронізуватиметься із вказаного сервера. Якщо перший недоступний, беруться такі за списком. Першим прописав локальний сервер NTP.

Наступний момент, встановлює локальний або всесвітній час буде використовуватися.

#cat /etc//etc/sysconfig/clock

У нас не те:

Правимо ZONE – на "Europe/Moscow"

Отримуємо:

UTC=trueсистемний годинник не використовують універсальне уявлення часу

ARC=trueВикористовується нормальна епоха UNIX.

Тимчасова зона під Linux встановлюється через символічне посилання з /etc/localtime на файл з директорії /usr/lib/zoneinfo(або /usr/share/zoneinfo), чим вказується в якій часовій зоні ви знаходитесь.

Малюнок. Вміст /usr/share/zoneinfo

Виконуємо команди.

rm -rf /etc/localtime

ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Все працює!

Якщо демон ntpd запущено, то видається наступне повідомлення, при спробі виконати синхронізацію з ntp сервером.

Ця команда показує, до яких серверів здійснюватиметься підключення.

Додаток:

Встановлення апаратного годинника

Для встановлення апаратного годинника, встановіть спочатку системний час, а потім вже апаратне, використовуючи програму «/sbin/clock -w» (або «/sbin/clock -wu» у разі використання всесвітнього часу). Щоб дізнатися апаратний час, запустіть clock без параметрів. Якщо апаратний годинник встановлено в локальний час, а ви хочете побачити всесвітнє наберіть «/sbin/clock –u»

Установка системного годинника

Для встановлення системного годинника в Лінуксі, використовується програма date. Для прикладу встановлення поточного часу (системного!) і дати на 31 липня, 23:16, наберіть «date 07312316» (зверніть увагу, що час дано в 24-годинному записі) Якщо ви хочете змінити рік, то набір «date 073123161998». Для встановлення секунд наберіть "date 07312316.30" або "date 073123161998.30". Щоб дізнатися про системний час запустіть date без аргументів.

Використовувані джерела.

OS: Windows 2000/XP/2003/Vista/2008/7.

Завдання: настроїти Windows системи для отримання показників точного часу з певних серверів NTP.

Наші NTP сервери будуть підтримувати протокол версій 3 (три) та 4 (чотири).
Служба точного часу працює на порту udp:123. Забезпечуємо видимість наших NTP серверів за вказаним портом.
Авторизацію при запиті клієнтом точного часу у NTP сервера проводити не будемо; стосунки в мережі досить довірчі, та й парк активних пристроїв різноманітний - далеко не всі можуть підтримувати щось ще, окрім простого запиту показників часу.


Користувачам операційних систем Windows XP/2003/2008 доведеться виконати ряд маніпуляцій.

Вказати на застосовувані NTP сервери (де ntp.local, ntp1.local тощо - наші NTP сервери):

# w32tm /config /syncfromflags:manual /manualpeerlist:ntp.local,ntp1.local,...,ntpX.local
# w32tm /config /update



Далі, віддати в командному рядку вказівки про вибір пріоритетного NTP сервера, перезапуск служби точного часу та примусової синхронізації часу в NTP сервером:

# net time /setsntp:ntp.local
# net stop w32time && net start w32time
# w32tm / resync


В результаті повинні отримати щось на кшталт цього:

Команда синхронізації надіслана на локальний комп'ютер...
Команда виконана успішно.


Через деякий час можна перевірити журнал подій системи. Якщо все налаштовано та відпрацювало правильно, то в журналі буде інформаційне повідомлення від джерела W32Time з кодом (ID) 35 та текстом "Служба часу виконує синхронізацію системного часу з джерелом часу". Якщо виникли якісь проблеми, то журнал буде записано помилки з кодами. Пошукова система допоможе й у цьому.

Для локалізації проблеми в командному рядку можна виконати запит інформації про сервер, що використовується NTP:

# net time /querysntp


Для визначення величини розбіжності локального часу та часу будь-якого комп'ютера в мережі можна використовувати таку команду:

# w32tm /stripchart /computer:computer.name


Іноді допомагає вульгарна перереєстрація служби часу Windows:

# w32tm /unregister
# w32tm /register


Як варіант, можна настроїти синхронізацію часу за допомогою графічного інтерфейсу.

Можна вказати на сервери NTP за допомогою утиліти regedit.exe:


Необхідно пройти у гілку (якщо її немає - створити) "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers":


Створити або змінити рядкові параметри з іменами "0" і "1", вказавши в них доменні імена або IP адреси наших NTP серверів:


У діалоговому вікні налаштування параметрів дати та часу зняти "галочку" ініціювання сервісу синхронізації часу, тим самим зупиняючи відповідну системну службу:

Завантаження...
Top