NTP Service
NTP (Network Time Protocol) - протокол для синхронизации времени компьютерных систем через сеть.
Обзор
VyOS использует chrony (начиная с версии 1.4) для реализации NTP клиента и сервера.
NTP обеспечивает:
- Синхронизацию системного времени с точностью до миллисекунд
- Автоматическую коррекцию времени
- Обработку leap seconds (високосных секунд)
- Иерархическую систему time servers (stratum)
- Работу как клиента и сервера одновременно
Протокол: UDP порт 123
Текущая версия: NTPv4 (RFC 5905)
Базовая конфигурация
NTP клиент
Синхронизация с публичными NTP серверами:
set service ntp server 0.pool.ntp.org
set service ntp server 1.pool.ntp.org
set service ntp server 2.pool.ntp.org
commitПо умолчанию VyOS использует:
- time1.vyos.net
- time2.vyos.net
- time3.vyos.net
NTP сервер
Разрешение клиентам синхронизироваться с VyOS:
set service ntp listen-address '192.168.1.1'
set service ntp allow-client address '192.168.1.0/24'
commitКонфигурация NTP серверов
Добавление сервера
set service ntp server <hostname|IP>Примеры:
set service ntp server pool.ntp.org
set service ntp server time.google.com
set service ntp server 216.239.35.0Опции сервера
prefer - Предпочтительный сервер
Приоритет сервера при выборе источника времени:
set service ntp server 0.pool.ntp.org prefernoselect - Не использовать для синхронизации
Сервер мониторится, но не используется:
set service ntp server backup.ntp.org noselectpool - Pool режим
Автоматическое разрешение имени и добавление нескольких серверов:
set service ntp server pool.ntp.org poolОдин DNS-запрос может вернуть множество IP-адресов, все будут использованы.
nts - Network Time Security
Шифрованное NTP соединение:
set service ntp server time.cloudflare.com ntsNTS обеспечивает аутентификацию и конфиденциальность NTP трафика.
ptp - PTP Transport
Использование Precision Time Protocol транспорта:
set service ntp server ntp.example.com ptpinterleave - Interleaved Mode
Улучшенная точность синхронизации:
set service ntp server ntp.example.com interleaveNTP Pool
Публичные NTP Pools
NTP Pool Project (pool.ntp.org):
set service ntp server 0.pool.ntp.org
set service ntp server 1.pool.ntp.org
set service ntp server 2.pool.ntp.org
set service ntp server 3.pool.ntp.orgРегиональные pools:
# Россия
set service ntp server 0.ru.pool.ntp.org
set service ntp server 1.ru.pool.ntp.org
# Европа
set service ntp server 0.europe.pool.ntp.org
set service ntp server 1.europe.pool.ntp.org
# Северная Америка
set service ntp server 0.north-america.pool.ntp.orgВендор-специфичные:
# Debian
set service ntp server 0.debian.pool.ntp.org
# Ubuntu
set service ntp server ntp.ubuntu.comКрупные провайдеры
Google Public NTP:
set service ntp server time.google.com
set service ntp server time1.google.com
set service ntp server time2.google.com
set service ntp server time3.google.com
set service ntp server time4.google.comCloudflare NTP (с NTS):
set service ntp server time.cloudflare.com ntsFacebook NTP:
set service ntp server time.facebook.comNTP Server Configuration
Listen Address
Адреса для прослушивания NTP запросов:
set service ntp listen-address '192.168.1.1'
set service ntp listen-address '10.0.0.1'
set service ntp listen-address '2001:db8::1'По умолчанию слушает на всех интерфейсах.
Allow Client
Разрешение клиентам синхронизироваться:
set service ntp allow-client address '192.168.1.0/24'
set service ntp allow-client address '10.0.0.0/8'
set service ntp allow-client address '2001:db8::/32'Без allow-client сервер будет только синхронизироваться сам, но не обслуживать клиентов.
Leap Second
Обработка високосных секунд:
set service ntp leap-second <mode>Режимы:
- ignore - игнорировать leap second
- smear - размазывать коррекцию на несколько часов
- system - использовать системную обработку
- timezone - использовать timezone данные
Рекомендуется:
set service ntp leap-second smearHardware Timestamping
Аппаратные временные метки для повышения точности:
set service ntp timestamp interface eth0Опции фильтра:
set service ntp timestamp interface eth0 receive-filter allРежимы фильтра:
- all - все пакеты
- ntp - только NTP
- ptp - только PTP
- none - нет аппаратных меток
VRF Support
Запуск NTP в определенном VRF:
set service ntp vrf MGMTПримеры конфигурации
Базовый NTP клиент
# Синхронизация с публичными серверами
set service ntp server 0.pool.ntp.org
set service ntp server 1.pool.ntp.org
set service ntp server time.google.com prefer
commitNTP сервер для локальной сети
# Upstream серверы
set service ntp server 0.pool.ntp.org
set service ntp server 1.pool.ntp.org
set service ntp server 2.pool.ntp.org
# Слушать на LAN интерфейсе
set service ntp listen-address '192.168.1.1'
# Разрешить клиентам из LAN
set service ntp allow-client address '192.168.1.0/24'
commitКорпоративная конфигурация
# Корпоративные NTP серверы
set service ntp server ntp1.corp.local prefer
set service ntp server ntp2.corp.local
set service ntp server ntp3.corp.local
# Резервные публичные
set service ntp server time.google.com
set service ntp server time.cloudflare.com nts
# Сервер для подсетей
set service ntp listen-address '192.168.10.1'
set service ntp listen-address '192.168.20.1'
# Разрешить корпоративные сети
set service ntp allow-client address '192.168.0.0/16'
set service ntp allow-client address '10.0.0.0/8'
# Leap second
set service ntp leap-second smear
commitHigh-precision NTP
# Stratum 1 серверы
set service ntp server ntp1.example.com interleave
set service ntp server ntp2.example.com interleave
set service ntp server ntp3.example.com interleave
# Hardware timestamping
set service ntp timestamp interface eth0
set service ntp timestamp interface eth0 receive-filter ntp
commitРегиональная конфигурация (Россия)
# Российские NTP серверы
set service ntp server 0.ru.pool.ntp.org pool
set service ntp server 1.ru.pool.ntp.org pool
set service ntp server ntp.ix.ru
set service ntp server ntp1.vniiftri.ru
set service ntp server ntp2.vniiftri.ru
# Резервные глобальные
set service ntp server time.google.com
# Локальный сервер
set service ntp listen-address '192.168.1.1'
set service ntp allow-client address '192.168.1.0/24'
commitMulti-site с VRF
# Management VRF
set service ntp vrf MGMT
# Upstream в management сети
set service ntp server 10.0.0.10
set service ntp server 10.0.0.11
# Слушать в management
set service ntp listen-address '10.0.1.1'
set service ntp allow-client address '10.0.0.0/8'
commitSecure NTP с NTS
# Только серверы с NTS
set service ntp server time.cloudflare.com nts
set service ntp server ntppool1.time.nl nts
set service ntp server nts.ntp.se nts
# Leap second
set service ntp leap-second smear
commitОперационные команды
Просмотр статуса синхронизации
show ntpВывод показывает:
- Текущее состояние синхронизации
- Список серверов и их статус
- Stratum уровень
- Offset (смещение времени)
- Jitter (дрожание)
Информация о NTP
show ntp infoДетальная информация о NTP демоне.
Источники времени
show ntp sourcesСписок всех upstream NTP серверов.
Статистика
show ntp activityСтатистика активности NTP.
Рестарт сервиса
restart ntpМониторинг и диагностика
Проверка синхронизации
show ntpОбратите внимание на:
- Символ
*перед сервером означает текущий источник синхронизации - Offset должен быть близок к нулю (< 10ms в норме)
- Jitter должен быть низким (< 5ms хорошо)
Логи
show log | grep ntp
monitor log | grep chronydПроверка доступности сервера
С клиента:
ntpdate -q 192.168.1.1или
chronyc -h 192.168.1.1 trackingПроверка firewall
Убедитесь что UDP порт 123 открыт:
show firewall ipv4 input filterУстранение неполадок
Время не синхронизируется
Проверьте статус:
show ntpПроверьте доступность upstream серверов:
ping 0.pool.ntp.orgПроверьте firewall на WAN:
show firewall ipv4 output filterПерезапустите NTP:
restart ntpБольшое смещение времени
Если offset > 1 секунда, может потребоваться ручная установка времени:
set system time-zone UTCИли использовать ntpdate для первоначальной синхронизации.
NTP сервер не отвечает клиентам
Проверьте allow-client:
show service ntpПроверьте firewall:
set firewall ipv4 input filter rule 50 action accept
set firewall ipv4 input filter rule 50 destination port 123
set firewall ipv4 input filter rule 50 protocol udp
set firewall ipv4 input filter rule 50 source address 192.168.1.0/24
commitПроверьте listen-address:
show service ntpКонфликт с systemd-timesyncd
chrony конфликтует с systemd-timesyncd. Убедитесь что только один сервис запущен.
Безопасность
Ограничение клиентов
Всегда используйте allow-client:
set service ntp allow-client address '192.168.1.0/24'Firewall правила
# Входящие NTP запросы
set firewall ipv4 input filter rule 50 action accept
set firewall ipv4 input filter rule 50 destination port 123
set firewall ipv4 input filter rule 50 protocol udp
set firewall ipv4 input filter rule 50 source address 192.168.1.0/24
# Исходящие для синхронизации
set firewall ipv4 output filter rule 50 action accept
set firewall ipv4 output filter rule 50 destination port 123
set firewall ipv4 output filter rule 50 protocol udpRate limiting
Защита от NTP amplification атак:
set firewall ipv4 input filter rule 50 limit rate 10/secondNTS
Используйте Network Time Security где возможно:
set service ntp server time.cloudflare.com ntsЛучшие практики
- Множественные источники - используйте минимум 3-4 NTP сервера
- Географическая близость - выбирайте серверы близко к вашей локации
- Stratum diversity - используйте серверы разных stratum уровней
- prefer сервер - выбирайте наиболее надежный как предпочтительный
- Резервирование - комбинируйте локальные и публичные серверы
- Firewall - ограничивайте доступ к NTP сервису
- Мониторинг - отслеживайте offset и jitter регулярно
- NTS - используйте где доступно для безопасности
- Leap second - настройте обработку для критичных систем
- Hardware timestamping - включайте для высокой точности
Stratum иерархия
- Stratum 0 - Атомные часы, GPS (reference clocks)
- Stratum 1 - Серверы напрямую подключенные к Stratum 0
- Stratum 2 - Серверы синхронизированные со Stratum 1
- Stratum 3-15 - Последующие уровни
VyOS обычно работает как Stratum 3-4 когда синхронизируется с публичными серверами.
Производительность
Типичная точность:
- LAN: ±1ms
- WAN: ±10ms
- Интернет: ±50ms
- С hardware timestamping: ±10μs (микросекунды)
Следующие шаги
- System Time Zone - настройка часового пояса
- Firewall - защита NTP сервиса
- Monitoring - мониторинг NTP метрик