NTP

NTP  - протокол,  который используется для синхронизации внутренних часов персонального компьютера с помощью сетей с переменным качеством (или шириной канала). Очень широко применяется данный протокол для реализации специальных серверов точного времени. Чтобы была достигнута максимальная точность в работе, необходима постоянная работа программного обеспечения NTP в режиме системной службы. В системе Linux – это сервис Ntpd.

В NTP применяется многоуровневая система источников времени. Каждый уровень называют слоем и присваивают порядковый номер, начиная с 0 (ноля) в самой главной части. Порядковый номер слоя показывает расстояние от эталонных часов и нужен, чтобы не было циклических зависимостей в данной системе. Следует понимать, что порядковый номер слоя не показывает уровень качества и надежности. И сервер слоя 3 может выдавать сигнал более высокого качества, чем сервер слоя 2. В основном слои служат для большего охвата покрытия и лучшего распределения нагрузки.

Слой 0

К нему относятся высокоточные приборы, такие как атомные (молекулярные) часы, GPS-часы, радиочасы. Эти устройства подключены к серверу, например через интерфейс RS-232 и передают сигналы для синхронизации.

Слой 1

Это тот самый компьютер, к которому напрямую подключены эталонные часы. В этой системе он является сетевым сервером времени и отвечает на NTP запросы с компьютеров (серверов) слоя 2.

Слой 2

Это компьютеры, которые получают от сервера  слоя 1 – параметры точного времени, используя при этом протокол NTP. Если в сети находится несколько серверов слоя 1, то при использовании специального NTP алгоритма, они отсеивают сервера с очевидно неверным временем и останавливаются на лучшем образце данных. Также с помощью этого протокола компьютера слоя 2 могут обмениваться данными с другими компьютерами, которые находятся с ними в одном слое, чтобы получать стабильные и непротиворечивые данные. В свою очередь компьютеры слоя 2 выступают в качестве серверов для компьютеров слоя 3 и отвечают на их NTP запросы.  

Слой 3

В данном слое все опять повторяется. Компьютеры слоя 3 работают точно также как компьютеры слоя 2, только в данном случае серверами точного времени (или NTP серверами) для них будут компьютеры слоя 2. У них они будут запрашивать данные. Компьютеры слоя 3 выступают в качестве серверов точного времени для компьютеров слоя 4, то есть слоя расположенного ниже.

NTP поддерживает до 256 слоев, в зависимости от версии.

Обычно в сети видны сервера только 3 уровня и ниже. А часто только 4 уровня. И чтобы синхронизироваться с сервером уровнем повыше, необходимо запросить данную возможность по электронной почте у администратора сервера. Чем больше серверов в сети, тем лучше распределяется нагрузка на сервера, хотя точность может падать.

NTP использует для своей работы протокол UDP и порт 123.

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

Режимы работы.

1.Клиент/сервер

Клиент посылает запрос, сервер отвечает. Данный режим очень распространен в сети Интернет.

2.Симметричный активный/пассивный режим

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

3.Режим Broadcast

Этот режим используется, когда мало серверов и много клиентов. Сервер работая в этом режиме, периодически рассылает всем компьютерам клиентам пакеты с использованием широковещательный адрес сети. Каждый клиент, получая данный пакет (клиент настроен на синхронизацию таким способом) производит синхронизацию с сервером. Время в данном случае доставляется в рамках одной подсети. Для безопасной работы используется аутентификация компьютеров.

4.Режим Multicast

В данном режиме все также как и в режиме broadcast. Однако есть отличие – для доставки пакетов используются только multicast-адреса сетей класса D адресного пространства IP-адресов. То есть и для клиентов и для серверов задается определенный адрес - multicast-группы,  этот адрес и используется для синхронизации времени. Компьютеры и сервера в данном случае, могут находиться в разных подсетях, но соединяющие их маршрутизаторы должны поддерживать протокол IGMP и иметь специальные настройки, для группового трафика.

5.Режим Manycast

Это самый новый режим протокола NTP 4. В нем реализован поиск компьютером-клиентом manycast-серверов среди своих сетевых соседей и получение от каждого manycast-сервера образца времени (производиться с использованием криптографии). Затем производится выбор на основании полученных данных лучшего manycast-сервера, с которым и будет производиться синхронизация. Если выбранный сервер выйдет из строя, компьютер–клиент автоматически обновит свой список и выберет снова лучший manycast-сервер. Для передачи образцов времени клиенты и сервера используют адреса multicast-групп (сети класса D).