NTP сервер в pfSense - синхронизация времени в сети

Точная синхронизация времени является критическим требованием для корректной работы сетевой инфраструктуры. Расхождение системных часов влияет на достоверность временных меток в журналах, валидность SSL/TLS-сертификатов, работу протоколов аутентификации (Kerberos, RADIUS), корректность CARP-кластеров и надёжность файловых систем с репликацией. pfSense включает встроенный NTP-сервер на основе демона ntpd, который синхронизирует собственные часы с внешними эталонными источниками и предоставляет сервис точного времени для всех устройств в локальной сети.

Значение точного времени

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

ОбластьПоследствия рассинхронизации
ЖурналированиеНекорректные временные метки делают невозможным корреляцию событий между устройствами
SSL/TLSСертификаты отклоняются как просроченные или ещё не действительные
KerberosАутентификация завершается ошибкой при расхождении более 5 минут
CARPНекорректная работа кластера отказоустойчивости
TOTPОдноразовые пароли не совпадают с серверными
Резервное копированиеИнкрементальные бэкапы включают лишние файлы из-за неверных временных меток

Перед предоставлением NTP-сервиса клиентам необходимо убедиться, что pfSense сам поддерживает точное время. По умолчанию pfSense синхронизируется с серверами из пула pool.ntp.org при загрузке системы.

Начальная синхронизация (Clock Bootstrap)

При запуске pfSense выполняет начальную синхронизацию часов. Если расхождение с эталонными серверами превышает 1000 секунд, ntpd отказывается выполнять корректировку и завершает работу. В таких случаях pfSense использует утилиту ntpdate для принудительной установки времени перед запуском ntpd.

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

Настройка NTP-сервера

Конфигурация NTP-сервера выполняется через Services > NTP.

Upstream серверы времени

Раздел NTP Servers определяет внешние источники времени, с которыми pfSense синхронизируется.

ПолеОписание
Time ServerАдрес или имя NTP-сервера
PreferОтметить сервер как предпочтительный
No SelectИсключить из синхронизации, сохранив сбор статистики

Рекомендуется настроить от трёх до пяти серверов. Три сервера позволяют ntpd определять, какой из источников предоставляет неверное время (алгоритм выбора большинства). Менее трёх серверов лишают ntpd возможности обнаружить отклонение.

Рекомендуемые серверы

СерверОписание
0.pfsense.pool.ntp.orgПул по умолчанию для pfSense
1.pfsense.pool.ntp.orgПул по умолчанию для pfSense
2.pfsense.pool.ntp.orgПул по умолчанию для pfSense
0.ru.pool.ntp.orgРегиональный пул для России
ntp1.stratum2.ruРоссийский Stratum 2 сервер
time.cloudflare.comCloudflare NTP (Stratum 3)
time.google.comGoogle NTP (Stratum 1)

При наличии внутреннего NTP-сервера Stratum 1 (например, с GPS-приёмником) его следует указать как предпочтительный источник с установленным флажком Prefer.

Привязка к интерфейсам

По умолчанию NTP-сервер принимает запросы на всех интерфейсах pfSense. Для ограничения доступа следует выбрать конкретные интерфейсы.

СценарийРекомендуемые интерфейсы
Стандартная сетьLAN
Сеть с VLANLAN, VLAN10, VLAN20
Только для pfSenseLocalhost (NTP не обслуживает клиентов)

Внимание:

Выбор интерфейсов влияет не только на приём входящих запросов, но и на отправку исходящих запросов к upstream серверам. При выборе только LAN-интерфейса pfSense может потерять возможность обращаться к внешним NTP-серверам через WAN.

Orphan Mode

Orphan Mode обеспечивает предоставление времени клиентам даже при недоступности всех upstream серверов. При активации pfSense объявляет себя источником времени с заданным уровнем stratum, используя внутренние часы.

ПараметрОписаниеЗначение по умолчанию
Orphan ModeВключение режимаОтключён
StratumУровень, объявляемый клиентам12

Значение stratum 12 указывает клиентам, что источник является ненадёжным и следует использовать его только при отсутствии альтернатив. Не следует устанавливать значение ниже 5, чтобы избежать приоритетного выбора локальных часов над серверами интернета.

Orphan Mode полезен в изолированных сетях без доступа к интернету, а также для предотвращения полной потери синхронизации при кратковременных перебоях связи.

Ограничения доступа (Access Restrictions)

NTP-сервер pfSense поддерживает списки контроля доступа для управления тем, какие клиенты могут использовать сервис.

Ограничения по умолчанию

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

ОграничениеОписание
Kiss-o’-DeathОтправка KoD-пакетов клиентам, превышающим допустимую частоту запросов
ModificationsЗапрет модификации конфигурации через ntpq и ntpdc
QueriesЗапрет запросов статуса через ntpq и ntpdc
ServeОграничение типов обслуживаемых пакетов
PeerЗапрет создания новых пиринговых ассоциаций
TrapЗапрет удалённого журналирования событий

Пользовательские ограничения

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

GPS и PPS источники времени

Для сред, требующих высокой точности синхронизации, pfSense поддерживает аппаратные источники времени - GPS-приёмники и PPS-сигналы.

Serial GPS

pfSense позволяет использовать GPS-приёмник, подключённый через последовательный порт, в качестве эталонного источника времени (reference clock).

ПараметрОписание
GPS TypeМодель GPS-приёмника из списка или Custom
Serial PortПорт подключения (cuau0 для аппаратного, cuaU0 для USB)
Baud RateСкорость последовательного порта (обычно 4800 bps)
NMEA SentencesТипы NMEA-сообщений для интерпретации
Fudge Time 1Коррекция смещения PPS-сигнала (секунды)
Fudge Time 2Коррекция смещения данных GPS (секунды)
StratumУровень, объявляемый для GPS (по умолчанию 0)

GPS-приёмник с PPS-выходом обеспечивает точность синхронизации в пределах микросекунд, что превосходит любые сетевые NTP-серверы.

Внимание:

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

PPS (Pulse Per Second)

PPS-сигнал представляет собой электрический импульс с частотой 1 Гц, генерируемый GPS-приёмником или иным устройством. Этот сигнал позволяет достичь субмикросекундной точности синхронизации.

Параметры PPS в pfSense:

ПараметрОписание
PPS Signal ProcessingВключение обработки PPS
Falling EdgeИспользование заднего фронта импульса
Kernel PPS Clock DisciplineПередача PPS-сигнала непосредственно ядру ОС

Kernel PPS Clock Discipline обеспечивает максимальную точность, однако требует аппаратной поддержки последовательного порта и корректной настройки драйвера.

Распространение NTP клиентам через DHCP

Для автоматической настройки NTP на клиентских устройствах рекомендуется передавать адрес NTP-сервера через DHCP.

Настройка DHCP-опции

В разделе Services > DHCP Server для соответствующего интерфейса необходимо указать адрес pfSense в поле NTP Server. При получении DHCP-аренды клиентские устройства автоматически настроят синхронизацию времени с pfSense.

ПараметрЗначение
NTP Server 1IP-адрес LAN-интерфейса pfSense
NTP Server 2Резервный NTP-сервер (опционально)

Большинство операционных систем (Windows, macOS, Linux) автоматически применяют NTP-серверы, полученные через DHCP. Для устройств со статической конфигурацией NTP-сервер необходимо указывать вручную.

Мониторинг NTP

Status > NTP

Страница Status > NTP отображает текущее состояние синхронизации.

СтолбецОписание
StatusТекущий статус каждого upstream сервера
ServerАдрес NTP-сервера
Ref IDИдентификатор эталонного источника сервера
StratumУровень удалённости от эталонного источника
OffsetРасхождение с локальными часами (миллисекунды)
JitterВариация задержки между опросами

Символы в столбце Status:

СимволЗначение
*Текущий основной источник синхронизации
+Кандидат на роль основного источника
-Сервер исключён алгоритмом выбора
xСервер признан неисправным (falseticker)

Журналирование

NTP поддерживает несколько уровней журналирования, настраиваемых в Services > NTP.

ОпцияОписание
Peer MessagesЖурналирование событий пиринговых ассоциаций
System MessagesСистемные события NTP
Statistics LoggingСохранение статистики в /var/log/ntp
Reference Clock StatisticsСтатистика аппаратных источников
Clock Discipline StatisticsСтатистика коррекции часов

Журналы NTP доступны через Status > System Logs на вкладке NTP. RRD-графики производительности NTP доступны через Status > Monitoring.

Диагностика проблем

Время не синхронизируется

  1. Проверить доступность upstream NTP-серверов: Diagnostics > Ping с адресами NTP-серверов
  2. Убедиться, что правила файрвола разрешают исходящий UDP-трафик на порт 123 с WAN-интерфейса
  3. Проверить статус NTP на странице Status > NTP - должен быть хотя бы один сервер с символом *
  4. Просмотреть журнал: Status > System Logs > NTP
  5. При значительном расхождении перезапустить NTP-сервис через Status > Services

Значительный дрейф времени

  • Проверить, не работает ли pfSense на виртуальной машине с некорректной настройкой эмуляции часов
  • Убедиться, что гипервизор не конфликтует с ntpd (VMware Tools, Hyper-V Integration Services иногда корректируют время параллельно с ntpd)
  • Увеличить количество upstream серверов до 4-5 для улучшения точности
  • Проверить значение Jitter на странице Status > NTP - значения выше 100 мс указывают на нестабильное сетевое соединение

Клиенты не получают время от pfSense

  1. Убедиться, что NTP-сервер привязан к интерфейсу, на котором находятся клиенты
  2. Проверить правила файрвола на LAN-интерфейсе - должен быть разрешён UDP-трафик на порт 123
  3. Проверить настройки DHCP - адрес pfSense должен быть указан в поле NTP Server
  4. На клиентском устройстве выполнить тестовый запрос: ntpdate -q <ip-pfSense> (Linux/macOS) или w32tm /stripchart /computer:<ip-pfSense> (Windows)

NTP блокируется файрволом

NTP использует UDP порт 123 как для входящих, так и для исходящих соединений. Необходимо убедиться в наличии следующих правил:

НаправлениеИсточникНазначениеПортПротокол
Исходящее (WAN)pfSenseЛюбой123UDP
Входящее (LAN)LAN subnetpfSense LAN IP123UDP

Сравнение ntpd и chrony

pfSense использует классический демон ntpd. В Linux-дистрибутивах всё чаще применяется альтернативная реализация chrony. Основные различия:

Характеристикаntpd (pfSense)chrony
Начальная синхронизацияМедленная (минуты)Быстрая (секунды)
Работа на ВМТребует настройкиАдаптируется автоматически
Изолированная сетьOrphan ModeLocal stratum
GPS/PPSВстроенная поддержкаВстроенная поддержка
Протокол NTSНе поддерживаетсяПоддерживается

pfSense не поддерживает замену ntpd на chrony. При необходимости использования chrony его следует развернуть на отдельном сервере и настроить pfSense для синхронизации с ним.

Связанные разделы

Last updated on