Skip to content

Задание №4: Служба сетевого времени Chrony на ISP ​

В данном задании на пограничном маршрутизаторе провайдера (ISP) развёртывается локальный сервер точного сетевого времени на базе сервиса chrony.

Маршрутизатор синхронизируется с вышестоящими серверами в Интернете (pool.ntp.org) и выступает в качестве доверенного источника времени 5-го стратума (local stratum 5) для всех внутренних узлов обоих филиалов: HQ-SRV, HQ-CLI, BR-RTR и BR-SRV.

Распределение ролей

  • NTP-сервер (Stratum 5): маршрутизатор ISP (IP-адрес в сторону HQ: 172.16.1.1).
  • NTP-клиенты:
    • HQ-SRV (192.168.1.10)
    • BR-RTR (172.16.2.2)
    • BR-SRV (192.168.3.10)
    • HQ-CLI (192.168.2.x)

1. Теоретическая справка: протокол NTP и сервис Chrony ​

Что такое уровни синхронизации (Stratum)? ​

Иерархия протокола NTP измеряется уровнями удалённости от эталонного источника — стратумами (Stratum):

  • Stratum 0 — физические эталонные часы (атомные стандарты времени, спутники GPS/ГЛОНАСС).
  • Stratum 1 — серверы, физически подключённые к устройствам Stratum 0.
  • Stratum 2 — серверы, синхронизирующиеся по сети с серверами Stratum 1.
  • ...
  • Stratum 5 — по заданию маршрутизатор ISP выступает сервером 5-го стратума. Это гарантирует, что даже при временном обрыве связи с внешним Интернетом он продолжит выдавать стабильное согласованное время клиентам с заявленным качеством источника (local stratum 5).

Механизм control chrony server в ALT Linux ​

В дистрибутивах ALT Linux действует подсистема безопасности control, которая ограничивает сетевую функциональность демонов. По умолчанию служба chronyd работает в клиентском режиме и не отвечает на сетевые запросы. Команда control chrony server открывает сетевой сокет NTP (UDP-порт 123) и разрешает демону обслуживать клиентов сети.


2. Настройка NTP-сервера на маршрутизаторе ISP ​

Все действия выполняются под пользователем root на машине ISP:

Шаг 1. Переключение режима и правка конфигурации chrony ​

bash
# 1. Разрешаем демону chrony работать в режиме сервера
control chrony server

# 2. Настраиваем вышестоящий пул серверов с параметрами prefer и minstratum
sed -i 's/pool pool.ntp.org iburst/pool pool.ntp.org iburst prefer minstratum 4/' /etc/chrony.conf

# Проверяем результат замены строки pool
grep pool /etc/chrony.conf

# 3. Раскомментируем и выставляем принудительный локальный стратум 5
sed -i 's/\#local stratum 10/local stratum 5/' /etc/chrony.conf

# Проверяем строку local stratum
grep "local stratum" /etc/chrony.conf

# 4. Перезапускаем сервис chronyd для применения настроек
systemctl restart chronyd

Разбор параметров конфигурации /etc/chrony.conf:

  • iburst (Initial Burst) — при запуске отправляет серию из 4–8 запросов вместо одного, что позволяет синхронизировать время за считанные секунды.
  • prefer — помечает данный источник как приоритетный при выборе среди нескольких серверов.
  • minstratum 4 — указывает минимальный стратум источников из пула, которые будут учитываться.
  • local stratum 5 — директива объявляет сервер доверенным источником 5-го стратума для клиентов сети, даже если связь с интернетом будет временно потеряна.

3. Настройка клиентов (HQ-SRV, BR-RTR, BR-SRV) ​

На узлах HQ-SRV, BR-RTR и BR-SRV перенаправляем синхронизацию с внешнего интернета на внутренний интерфейс маршрутизатора ISP (172.16.1.1):

bash
# Заменяем внешний пул на адрес сервера ISP и перезапускаем службу
sed -i 's/pool pool.ntp.org iburst/server 172.16.1.1 iburst/' /etc/chrony.conf && systemctl restart chronyd

Ждём 10 секунд для завершения первого цикла обмена пакетами и проверяем источники:

bash
chronyc sources

4. Настройка клиента рабочей станции (HQ-CLI) ​

На клиентской машине HQ-CLI (в консоли под root):

bash
# Дописываем адрес сервера синхронизации и перезапускаем chronyd
echo "server 172.16.1.1 iburst" >> /etc/chrony.conf && systemctl restart chronyd

Ждём 10 секунд и проверяем результат:

bash
chronyc sources

5. Верификация и разбор вывода chronyc sources ​

При успешной синхронизации вывод команды chronyc sources на клиентах выглядит следующим образом:

text
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 172.16.1.1                    5   6    17     1  +1438ns[  +43us] +/-   38ms

Подробный разбор каждого столбца: ​

  • M (Mode / Режим источника):
    • ^ — означает обычный сервер (Server).
    • = — пиринговый узел (Peer).
    • # — локальные часы (Local reference).
  • S (State / Состояние источника):
    • * — текущий лучший синхронизированный источник (System peer). Именно эта звёздочка подтверждает, что синхронизация времени активна и корректна!
    • + — комбинируемый кандидат хорошего качества.
    • - — отклонённый источник.
    • ? — нет связи (сервер недоступен).
  • Stratum: отображает число 5, что в точности соответствует заданию.
  • Poll: интервал опроса в виде степени двойки (2^6 = 64 секунды).
  • Reach: восьмеричная битовая маска успешных ответов (например, 17 или 377 — пакеты стабильно доходят и возвращаются).
  • LastRx: сколько секунд назад был получен последний ответ от сервера (например, 1 сек назад).
  • Last sample: смещение локального времени относительно сервера (в наносекундах / микросекундах) и погрешность задержки сети.

Дополнительная команда проверки

Для просмотра детального статуса синхронизации выполните:

bash
chronyc tracking

В выводе обратите внимание на строки Reference ID : AC100101 (172.16.1.1) и Stratum : 6 (клиент всегда имеет стратум на единицу больше, чем опрашиваемый сервер).

Итог выполнения Задания №4

Маршрутизатор ISP переведён в режим сервера времени 5-го стратума, а узлы HQ-SRV, BR-RTR, BR-SRV и HQ-CLI стабильно синхронизируют системное время с центральным источником.

Работает на VitePress • Быстрый и удобный движок для документации