Глава 23 Синхронизация времени через сеть, настройка временной зоны
Глава 23 Синхронизация времени через сеть, настройка временной зоны
Для комфортной работы с компьютером иногда может не хватать такой малости, как нормально настроенное системное время. Плохо, когда приходится ежедневно его подправлять или вручную производить переход на летнее/зимнее время.
Особенно это неприятно, когда компьютеров несколько десятков, и время у всех должно быть синхронизировано. Для синхронизации системного времени создателями Интернета был предусмотрен специальный сервис – сетевой протокол времени (Network time protocol, NTP).
Сетевой протокол времени
Сетевой протокол времени предназначен для синхронизации клиента или сервера точного времени с другим сервером точного времени или эталонным источником времени (радио, атомные часы и тому подобные устройства). Для локальной сети NTP способен обеспечить точность до миллисекунды, а для распределенной сети (в частности Интернета) достижима точность синхронизации порядка нескольких десятков миллисекунд. Последний стандарт этого протокола предусматривает криптографическую защиту передаваемых данных, одновременное подключение к нескольким серверам точного времени для достижения более точной синхронизации времени и повышения отказоустойчивости системы и многое другое.
Структура сети серверов точного времени многоуровневая. Главные серверы точного времени, напрямую подключенные к источнику эталонного времени, образуют первый уровень, серверы точного времени, присоединенные непосредственно к главным серверам, образуют второй уровень, и т. д.
В качестве сетевого протокола используется протокол UDP, порт 123. Для увеличения надежности и точности получаемых данных применяется фильтрация, селекция и комбинация пакетов на принципах максимальной вероятности, а также несколько резервных серверов и путей передачи.
Для передачи и хранения времени используется беззнаковое 64-битовое число с фиксированной точкой, которое хранит число секунд в формате UTC. Старшие 32 бита – число секунд, младшие 32 бита – дробная часть секунд. Достижимая точность – 232 пикосекунды. О означает неопределенное время.
Классы обслуживания
Служба точного времени имеет несколько классов обслуживания клиентов:
• multicast – предназначен для использования в быстрой локальной сети со множеством клиентов, где отсутствует необходимость в высокой точности. Принцип действия – один или более NTP-серверов рассылают широковещательное сообщение, клиенты определяют время, предполагая, что задержка составляет несколько миллисекунд. Сервер не принимает ответных NTP-сообщений;
• procedure-call – предназначен для получения высокоточного времени. NTP-клиент посылает запрос на сервер точного времени, который обрабатывает запрос и немедленно посылает ответ. Сервер не синхронизируется с клиентом;
• symmetric – предназначен для использования серверами точного времени. Представляет собой динамически реконфигурируемую иерархию серверов точного времени. Каждый сервер точного времени синхронизирует своих соседей и синхронизируется своими соседями в соответствии с правилами выбора соседей. Активный режим используется серверами точного времени низшего уровня с заранее определенными адресами соседей, пассивный режим используется серверами точного времени, близкими к первому уровню, и взаимодействующими с соседями с заранее неизвестными адресами.
Обеспечение достоверности данных
Алгоритм функционирования сервера точного времени подразумевает несколько способов для обеспечения достоверности данных.
• Если в течение восьми последовательных интервалов опроса от соседнего сервера точного времени не было сообщений, то этот сервер считается недостижимым.
• Осуществляется проверка времени:
– если время передачи совпадает с временем предыдущего сообщения – дублированный пакет;
– если время отправки сообщения не совпадает с временем, содержащимся в пакете, сервер считает, что он получил фальшивый пакет.
• Имеется алгоритм защиты от очень старых сообщений.
• Аутентификатор состоит из ключа и шифрованной контрольной суммы, которая создается с использованием алгоритма шифрования DES.
Формат NTP-пакета
Пакет NTP включает следующие поля:
• LI (leap indicator) – в конце суток должна быть вставлена секунда для синхронизации атомных и астрономических часов;
• VN – номер версии протокола;
• mode – режим работы сервера точного времени;
• stratum – уровень сервера;
• precision – точность часов сервера;
• poll interval – интервал запросов. Используется наименьший интервал из своего сервера и сервера, отвечающего на запросы;
• synchronization distance – полный цикл обмена сообщениями до первичного источника;
• synchronization dispersion – дисперсия задержек синхронизации;
• reference clock identifier – тип источника времени;
• reference timestamp – время последнего изменения источника времени;
• originate timestamp – время соседа, когда было отправлено последнее NTP-сообщение;
• receive timestamp – местное время получения последнего NTP-сообщения;
• transmit timestamp – местное время отправки текущего сообщения;
• authenticator (96 bit) – ключ и шифрованная контрольная сумма сообщения.
Рекомендуемая конфигурация
Рекомендуемая конфигурация подразумевает наличие трех местных серверов точного времени, соединенных между собой, каждый из которых подключен к двум различным внешним серверам. Клиенты службы точного времени подключаются к каждому местному серверу точного времени.
Стандарты
Используемые для протокола NTP стандарты приведены в табл. 23.1.
Таблица 23.1. Стандарты протокола NTP
Сервер xntpd
Для UNIX-платформы, в том числе и Linux, существует сервер точного времени, носящий название xntpd. Этот сервер полностью реализует стандарт RFC 1305 и имеет расширенные возможности, которые планируется включить в следующую версию стандарта. Входит в стандартную поставку большинства дистрибутивов Linux. Установка тривиальна. Файл конфигурации – /etc/ntp.conf.
Конфигурация сервера
Поскольку варианты конфигурирования сервера зависят от класса обслуживания, сервер имеет достаточно много настроек, которые в основном содержатся в конфигурационном файле /etc/ntp.conf.
Класс symmetric
Этот класс предназначен для конфигурирования сервера точного времени в режиме symmetric.
peer address [key key ] [version version ] [prefer] [minpoll minpoll ] [maxpoll maxpoll ]
Здесь:
• address – адрес симметричного сервера;
• key – 32-битный ключ для поля аутентификации (по умолчанию отсутствует);
• prefer – предпочитать данный сервер при прочих равных условиях;
• minpoll – минимальный интервал запросов (секунды, 2 в степени minpoll в диапазоне от 4 (16 с) до 14 (16 384 с), по умолчанию 6 (64 с));
• maxpoll – максимальный интервал запросов (секунды, 2 в степени maxpoll, по умолчанию 10—1024 с).
Класс procedure-callЭтот класс предназначен для конфигурирования сервера точного времени в режиме procedure-call.
• server address [key key ] [version version ] [prefer] [mode mode ]
• address – адрес сервера;
• key – 32-битный ключ для поля аутентификации (по умолчанию отсутствует);
• mode – режим.
Класс multicastПредназначен для настройки multicast-режима. Обычно используется в локальных сетях.
• broadcast address [key key ] [version version ] [ttl ttl]
– address – адрес симметричного сервера;
– key – 32-битный ключ для поля аутентификации (по умолчанию отсутствует);
– version – версия протокола;
– ttl – время жизни пакета.
• broadcast client [ address] address – адрес клиента, получающего информацию.
• broadcastdeiay секунд – позволяет самостоятельно указать задержку в распространении пакета.
Общие параметрыЗдесь описываются общие параметры настройки сервера xntpd/:
• driftfile driftfile – определяет файл, в котором хранится и извлекается при запуске сдвиг частоты местных часов;
• enable/disable auth/moni tor/pll/pps/stats — включить/выключить режим работы:
– auth — с неупомянутыми соседями общаться только в режиме аутентификации;
– monitor — разрешить мониторинг запросов;
– pll — разрешать настраивать частоту местных часов по NTP;
– stats — разрешить сбор статистики;
• statistics loopstats — при каждой модификации локальных часов записывает строчку в файл loopstats;
Формат файла loopstats:
– номер модифицированного дня по юлианскому календарю;
– секунды с полуночи (UTC);
– смещение в секундах;
– смещение частоты в миллионных долях;
– временная константа алгоритма дисциплинирования часов;
• statistics peerstats – каждое общение с соседом записывается в журнал, хранящийся в файле peerstats;
Формат файла peerstats:
– номер модифицированного дня по юлианскому календарю;
– секунды с полуночи (UTC);
– IP-адрес соседа;
– статус соседа, шестнадцатеричное число;
– смещение, с;
– задержка, с;
– дисперсия, с;
• statistics ciockstats – каждое сообщение от драйвера локальных часов записывается в журнал, хранящийся в файле ciockstats;
• statsdir имя-каталога-со-статистикой – задает имя каталога, в котором будут находиться файлы со статистикой сервера;
• filegen [file filename] [type typename] [flag flagval] [link | nolink] [enable | disable] – определяет алгоритм генерации имен файлов.
Имена файлов состоят из следующих элеметов:
– префикс – постоянная часть имени файла, задается либо при компиляции, либо специальными командами конфигурации;
– имя файла – добавляется к префиксу без косой черты, две точки запрещены, может быть изменена ключом file;
– суффикс – генерируется в зависимости от typename:
· none – обычный файл;
· pid – при каждом запуске xntpd создается новый файл (к префиксу и имени файла добавляются точка и номер процесса);
· day – каждый день создается новый файл (к префиксу и имени файла добавляются. yyyymmdd);
· week – каждую неделю создается новый файл (к префиксу и имени файла добавляются. yyyywww);
· month – каждый месяц создается новый файл (к префиксу и имени файла добавляются. yyyymm);
· year – каждый год создается новый файл (к префиксу и имени файла добавляются уууу);
· age – новый файл создается каждые 24 часа (к префиксу и имени файла добавляются а и 8-значное количество секунд на момент создания файла от момента запуска xntpd);
· link/noiink – по умолчанию создается жесткая ссылка от файла без суффикса к текущему элементу набора (это позволяет обратиться к текущему файлу из набора используя постоянное имя);
· enable/disable – разрешают/запрещают запись в соответствующий набор файлов;
• restrict numeric-address [mask numeric-mask ] [flag] … – задает ограничение доступа: пакеты сортируются по адресам и маскам, берется исходный адрес и последовательно сравнивается, от последнего удачного сравнения берется флаг доступа:
– нет флагов – дать доступ;
– ignore – игнорировать все пакеты;
– no query – игнорировать пакеты NTP 6 и 7 (запрос и модификация состояния);
– nomodify – игнорировать пакеты NTP 6 и 7 (модификация состояния);
– not rap – отказать в обеспечении mode 6 trap сервиса (удаленная журнализация событий);
– lowpriotrap – обслуживать ловушки, но прекращать обслуживание, если более приоритетный клиент потребует этого;
– no serve – обслуживать только запросы mode 6 и 7;
– nopeer – обслуживать хост, но не синхронизироваться с ним;
– not rust – не рассматривать как источник синхронизации;
– limited – обслуживать только ограниченное количество клиентов из данной сети;
– ntpport /non-ntpport – модификатор алгоритма сравнения адресов (сравнение успешно если исходный порт равен/неравен 123), алгоритм сортировки ставит эту строку в конец списка.
• clientiimit limit – для флага limited определяет максимальное количество обслуживаемых клиентов (по умолчанию 3);
• clientperiod секунд – сколько секунд считать клиента активным и учитывать при определении количества обслуживаемых клиентов;
• trap host-address [port port-number] [interface interface-address] – задать хост и порт, которые будут вести журнал;
• setvar variable – установка дополнительных переменных;
• logfile имя-файла – использовать файл имя-файла для ведения журнала вместо syslog;
• logconfig keyword – управление количеством сообщений, сбрасываемых в журнал. Ключевое слово может быть предварено символами равно (установка маски), минус (удаление класса сообщений), плюс (добавление); ключевое слово образуется слиянием класса сообщений (clock, peer, sys, sync) и класса событий (info, event, statistics, status); В качестве суффикса или префикса может использоваться слово all.
Обеспечение безопасности сервера
Если сервер точного времени не предназначен для широкой общественности, а используется только внутренней локальной сетью, желательно закрыть 123 порт для доступа извне, чтобы избежать возможной атаки типа denial of service (отказ в обслуживании), поскольку это грозит неправильным функционированием сервера. Также, если возможно, необходимо использовать шифрование.
Вот список правил для организации брандмауэра, закрывающего доступ к вашему серверу снаружи (см. гл. 29):ipchains -A input -р udp -j ACCEPT -s 10.0.0.0/8 -d 0.0.0.0/0 123
ipchains -A input -p udp -j ACCEPT -s some.trusted.host -d 0.0.0.0/0 123
ipchains -A input -p udp -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0 123
Программы и утилиты, относящиеся к службе точного времени
ntpdate
Эта утилита позволяет установить время на компьютере, используя список NTP-серверов.
Используемые ключи:
• -B – только плавный сдвиг, даже если смещение больше 128 мс;
• -b – всегда использовать settimeofday;
• -d – отладка;
• -р число – число запросов к каждому серверу (от 1 до 8, по умолчанию 4);
• -q – только запрос времени;
• -s – использовать syslog вместо stdout;
• -t timeout – время ожидания ответа (по умолчанию 1 с);
• -u – использовать непривилегированный порт.
ntpq
Утилита для получения состояния NTP-сервера и его изменения (использует NTP mode 6).
ntptrace
Утилита для поиска серверов первого уровня. Используемые ключи:
• -r число – количество запросов (по умолчанию 5);
• -t секунд – время ожидания ответа (по умолчанию 2).
xntpd
Собственно демон точного времени. Используемые параметры при запуске:xntpd [-aAbdm] [-с config-file ] [-f drift-file ] [-k key-file ]
[-l log-file ] [-p pid-file ] [-r broadcast-delay ] [-s stats-dir ]
[-t key ] [-v variable ] [-V variable ]Здесь:
• -a – разрешить аутентификацию;
• -A – запретить аутентификацию;
• -b – широковещательные сообщения;
• -c config-file – конфигурационный файл (по умолчанию /etc/ntp.conf);
• -d – отладка;
• -f drift-file — файл, хранящий смещение часов (по умолчанию /etc/ntp.drift);
• -k key-file — файл ключей (по умолчанию /etc/ntp.keys);
• -l log-file — файл протокола (по умолчанию syslog).
xntpdc
Утилита для запроса состояния NTP-сервера и его изменения. Применяется только для xntpd-серверов. Использует NTP mode 7.
Публичные NTP-серверы
Список публичных серверов точного времени можно найти в Интернете. В любом случае вам придется этот список публичных серверов протестировать, чтобы определить задержки и качество соединения. Попробуйте сначала получить список серверов точного времени вашего провайдера (провайдеров). В списке литературы приведена ссылка на список серверов точного уровня первого и второго уровней, можно попробовать синхронизироваться от них.
Клиентские программы для синхронизации времени
Сам по себе сервер точного времени не нужен, если у пользователей нет возможности синхронизировать время. В настоящее время практически для всех операционных систем есть программы для получения времени с серверов NTP.
UNIX/Linux
Для этих операционных систем можно на компьютере установить сервер xntpd и настроить его для получения точного времени. У этого решения есть как достоинства, так и недостатки. Положительным моментом является то, что мы можем максимально точно синхронизировать время и построить отказоустойчивую конфигурацию. Отрицательный момент – достаточно сложное конфигурирование сервера и относительно большой объем занимаемой оперативной памяти компьютера.
Более простой вариант – воспользоваться утилитой ntpdate. Маленькая, простая в конфигурировании, позволяющая получить достаточно точное время – расхождение порядка 100 миллисекунд. Для синхронизации времени следует выполнить следующую команду:ntpdate -B ntp ntp2 ntp3
где ntp, ntp2, ntp3 – адреса серверов точного времени. Рекомендуется добавить эту строчку в таблицу заданий crontab (если у вас, конечно, постоянное подключение к Интернету).
Apple
Для компьютеров фирмы Apple есть клиент NTP, называющийся macntp.
Windows
Для операционной системы Windows существует несколько клиентов службы точного времени. В частности программа AboutTime, которую можно получить по адресу ftp.psn.ru/pub/abouttime_nomsie.zip. Или программа AnalogX Atomic TimeSync, получить которую можно по адресу www.analogx.com/contents/download/network/ats.htm
Настройка временной зоны
Обычно при установке операционной системы вы корректно выбираете свой часовой пояс. В качестве ориентира часового пояса в малых странах указывается столица государства, к примеру для Беларуси – Минск, для Украины – Киев. Для больших стран ориентируются на крупнейший город нужной часовой зоны.
Однако иногда можно ошибиться и выбрать зону неправильно или автоматически нажать ввод и получить временную зону, которую предлагает программа инсталляции дистрибутива по умолчанию. В результате – неправильное время.
Для корректной установки временной зоны необходимы всего два файла: /etc/localtime и /etc/sysconfig/clock. Первый файл отвечает за временную зону, а второй – за способ хранения и представления времени в системе. Рассмотрим поподробнее эти файлы.
/etc/localtime
Файл /etc/localtime представляет собой описание временной зоны, в которой определяется смещение часового пояса относительно Гринвича, даты перехода на летнее/зимнее время и некоторую дополнительную информацию. Формат файла – бинарный. Обычно разработчики дистрибутива поставляют файлы для всех временных зон в различных представлениях и форматах, из которых можно выбрать подходящую временную зону. В дистрибутиве Red Hat Linux 7.2 скомпилированные файлы временных зон находятся в каталоге /usr/share/zoneinfo/. Найдя подходящий для вашей временной зоны файл, скопируйте его в каталог /etc и переименуйте в localtime. В том невероятном случае, если вам не подходит файл временной зоны – сделайте его самостоятельно. Для этого необходимо создать текстовый файл, содержащий описание вашей временной зоны и скомпилировать его утилитой zic. Ниже приведен пример текстового файла, описывающего временную зону с переключением на летнее/зимнее время для Украины:Rule dst 1982 maximum – Apr lastSun 2:00 1 «EET DST»
Rule dst 1982 maximum – Oct lastSun 2:00 0 "EET DST"
Zone EET 2:00 dst %sПодробное описание утилиты zic смотрите в соответствующей справочной странице man.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
ГЛАВА 8 Синхронизация потоков
ГЛАВА 8 Синхронизация потоков Потоки могут упрощать проектирование и реализацию программ и повышать их производительность, но их использование требует принятия мер по защите разделяемых ресурсов от попыток их изменения одновременно несколькими потоками, а также
Подключение сетевых дисков и синхронизация времени при регистрации пользователей
Подключение сетевых дисков и синхронизация времени при регистрации пользователей Часто сценарии входа используются для подключения дисков и портов принтера к сетевым ресурсам, а также для синхронизации системного времени пользовательских компьютеров с системным
Глава 4 TeamSpeak — командный разговор через компьютерную сеть
Глава 4 TeamSpeak — командный разговор через компьютерную сеть Чем TeamSpeak отличается от TeamTalk Программа TeamSpeak очень уж похожа на TeamTalk: те же каналы, та же возможность работать как в Интернете, так и в локальной сети, выбор разнообразных кодеков по сжатию звука, клиент-серверный
Настройка системной даты и времени
Настройка системной даты и времени Информация о текущей системной дате и времени по умолчанию отображается в правом нижнем углу интерфейса, в области уведомлений панели задач. Вы можете самостоятельно настроить режим ее отображения, и о том, как это делать, мы расскажем
Настройка ограничения времени работы за компьютером
Настройка ограничения времени работы за компьютером Чтобы ограничить время нахождения ребенка за компьютером, щелкните на ссылке Ограничение по времени (см. рис. 5.7). В результате на экране отобразится окно, изображенное на рис. 5.8. Рис. 5.8. Настройка ограничения доступа
Настройка времени
Настройка времени С помощью этой кнопки можно настроить время, которое на экране будет показываться каждый слайд. То есть такая вот репетиция презентации.При нажатии кнопки Настройка времени начнется полноэкранный показ презентации. В левом верхнем углу вы увидите вот
Настройка через месяц
Настройка через месяц Выпустите обновление через 30 дней после выпускаБыстрое обновление показывает движение. Показывает, что вы прислушиваетесь к советам пользователей. Показывает, что у вас еще есть «порох в пороховницах». Оно дает вторую волну разговорам. Оно
Настройка параметров зоны
Настройка параметров зоны В области Name and Positioning (Наименование и расположение) окна Zone DefaultSettings (Установка параметров зоны по умолчанию) расположены следующие элементы.• Поле Zone Name (Наименование зоны), в которое вводится имя зоны.• Поле No (Номер), в котором указывается
Футурология в Сколково: какой станет Сеть через 10 лет Ирина Матюшонок
Футурология в Сколково: какой станет Сеть через 10 лет Ирина Матюшонок Опубликовано 04 октября 2011 года На научной конференции фонда «Сколково» руководитель компании SoftJoys и член правления MIT Enterprise Forum of Russia Александр Андреев говорил о пользе
ГЛАВА 4. Сеть через прицел DPI — анатомия китайского Интернета
ГЛАВА 4. Сеть через прицел DPI — анатомия китайского Интернета Герой интервью пожелал остаться анонимным. Это бывший россиянин, который уже 6 лет проживает в континентальном Китае, работая в местной телекоммуникационной компании старшим
Глава 13 Синхронизация данных
Глава 13 Синхронизация данных • VuBrief• SmartSync ProАктивные пользователи – а к таковым относится большинство владельцев ноутбуков – вынуждены работать более чем с одним компьютером. Нередко даже в одной семье есть несколько компьютеров. Перед многими пользователями также
Выход в Интернет через локальную сеть
Выход в Интернет через локальную сеть Одной из основных целей подключения ноутбука к локальной сети может быть выход через нее в Интернет. Причем это можно делать и дома через стационарный настольный компьютер, и на пресс-конференции, если на ней предоставляется
Подключение и выход в Интернет через беспроводную сеть
Подключение и выход в Интернет через беспроводную сеть Чтобы воспользоваться беспроводным Интернетом, вам необходимо попасть в зону действия hotspot. Сегодня многие точки доступа являются бесплатными, поэтому никаких особых параметров для выхода в Интернет вам не
Настройка даты и времени
Настройка даты и времени Переходим к настройке даты и времени. Пожалуй, эта операция одна из самых простых среди изменений параметров работы Windows. Произвести ее можно, выбрав значок Дата и время из подраздела Дата, время, язык и региональные настройки на Панели управления.
Настройка даты и времени
Настройка даты и времени Для настройки даты и времени щелкните правой кнопкой мыши на значке часов в области уведомлений и выберите пункт Настройка даты/времени. Чтобы изменить показания часов или текущую дату, вам понадобятся полномочия администратора компьютера.