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 prefer
noselect - Не использовать для синхронизации
Сервер мониторится, но не используется:
set service ntp server backup.ntp.org noselect
pool - Pool режим
Автоматическое разрешение имени и добавление нескольких серверов:
set service ntp server pool.ntp.org pool
Один DNS-запрос может вернуть множество IP-адресов, все будут использованы.
nts - Network Time Security
Шифрованное NTP соединение:
set service ntp server time.cloudflare.com nts
NTS обеспечивает аутентификацию и конфиденциальность NTP трафика.
ptp - PTP Transport
Использование Precision Time Protocol транспорта:
set service ntp server ntp.example.com ptp
interleave - Interleaved Mode
Улучшенная точность синхронизации:
set service ntp server ntp.example.com interleave
NTP 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.com
Cloudflare NTP (с NTS):
set service ntp server time.cloudflare.com nts
Facebook NTP:
set service ntp server time.facebook.com
NTP 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 smear
Hardware 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
commit
NTP сервер для локальной сети
# 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
commit
High-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'
commit
Multi-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'
commit
Secure 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 udp
Rate limiting
Защита от NTP amplification атак:
set firewall ipv4 input filter rule 50 limit rate 10/second
NTS
Используйте 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 метрик