Обзор
Протокол NTP (англ. Network Time Protocol — протокол сетевого времени) — сетевой протокол синхронизирующий хронометраж времени между распределенными серверами времени и клиентами . С помощью этой синхронизации возможна активация лицензий на устройстве, ведение системных журналов с сопоставлением по времени и прочих событий, возникающих на устройстве
NTP использует UDP в качестве транспортного протокола с портом 123. Для всех сообщений NTP используется UTC (англ. Universal Coordinated Time) - всемирное координированное время , которое совпадает со средним временем по Гринвичу.
Устройства линейки ESR могут не синхронизировать время с другими хостами, время которых может быть неоднозначным или некорректным по следующим причинам:
- если устройство, с которым ESR необходимо синхронизироваться , само не синхронизировано
- если устройство, с которым ESR необходимо синхронизироваться имеет значительно отличающееся время, даже если его stratum ниже (лучше), чем у других.
- если ESR не синхронизирован с другими серверами времени
Далее по тексту будут использоваться такие понятия как синхронизировать и синхронизироваться. В первом случае понятие подразумевает подвергнуть синхронизации устройства согласно переданным им данных времени (временные метки). Во втором случае устройство само будет синхронизировано по параметрам, полученным от другого устройства.
Устройства Eltex ESR поддерживают следующие режимы ассоциаций:
- Client
- Server
- Symmetric active
- Symmetric passive
- Broadcast client
Client-Server
Для внешнего NTP сервера в сети Интернет ESR выступает в качестве NTP клиента. В то же время он может выступать и NTP сервером для хостов, расположенных в локальном сегменте сети, предоставляя точное время всем устройствам, настроенным на запрос времени у него.
Ниже приведён базовый пример настройки ESR, выступающего в роли NTP клиента, синхронизируемого внешним сервером времени NTP Server, и в качестве NTP сервера для хостов в локальной сети:
ntp enable ntp server 46.146.231.187 minpoll 1 maxpoll 4 exit
Команда | Значение |
---|---|
ntp enable | Активация работы протокола NTP |
ntp server | Указание NTP сервера, с которым будет осуществляться синхронизация времени |
minpoll / maxpoll | Минимальный и максимальный интервалы времени между отправкой сообщений NTP-серверу |
Для прохождения UDP дейтаграмм протокола NTP необходимо прописать разрешающее правило в паре зон, одна из которых определена на интерфейсе, ведущем к внешним NTP серверам . В качестве порта назначения укажем значение 123. Вы так же можете настроить отдельное разрешающее правило для зон, ведущих в локальный сегмент сети ( в нашем примере это зона trusted ), чтобы разрешить пропуск трафика NTP из локального сегмента сети к ESR :
object-group service NTP port-range 123 exit security zone untrust exit security zone trusted exit interface gigabitethernet 1/0/1 security-zone untrust ip address 198.19.0.1/30 exit interface gigabitethernet 1/0/4 security-zone trusted ip address 192.168.0.1/24 exit security zone-pair untrust self rule 1 action permit match protocol udp match destination-port NTP enable exit exit security zone-pair trusted self rule 1 action permit match protocol udp match destination-port NTP enable exit exit
Пример полной базовой конфигурации настройки ESR в качестве NTP сервера, синхронизируемого внешним сервером времени NTP Server и отдающий синхронизацию времени устройствам в локальной сети:
object-group service NTP port-range 123 exit security zone untrust exit security zone trusted exit interface gigabitethernet 1/0/1 security-zone untrust ip address 198.19.0.1/30 exit interface gigabitethernet 1/0/4 security-zone trusted ip address 192.168.0.1/24 exit security zone-pair untrust self rule 1 action permit match protocol udp match destination-port NTP enable exit exit security zone-pair trusted self rule 1 action permit match protocol udp match destination-port NTP enable exit exit ntp enable ntp server 46.146.231.187 minpoll 1 maxpoll 4 exit
Symmetric Active / Symmetric Passive
В симметричном режиме оба устройства выступают равноправными пирами, обменивающимися данными хронометража и, в зависимости от этих данных, синхронизируют время с пиринговой машиной или же сами синхронизируют её.
Хост, работающий в симметричном активном режиме отправляет периодические сообщения независимо от состояния доступности или уровня своего однорангового узла-соседа. Работая в этом режиме, хост объявляет о своей готовности к синхронизации и быть синхронизированным одноранговым узлом.
Симметричный пассивный режим активируется при поступление сообщения о работе в симметричном активном режиме соседнего однорангового узла, и сохраняется только до тех пор, пока одноранговый узел доступен и работает на уровне stratum, меньшем или равном хосту; в противном случае связь разрывается. Однако связь всегда будет сохраняться до тех пор, пока в ответ не будет отправлено хотя бы одно сообщение. Работая в этом режиме, хост объявляет о своей готовности к синхронизации и будет синхронизирован одноранговым узлом.
Как правило, настройка симметричного режима работы осуществляется между устройствами, имеющие синхронизацию с точным времени внешних серверов времени.
В контексте настроек ESR симметричный режим настраивается с помощью команды ntp peer <ip-address> . Чтобы между двумя устройствами ESR установился симметричный активный режим, необходимо на каждом из устройств настроить данные команды. Команды указания интервала отправки NTP меток соответствуют тем же, что и при режиме работы с сервером:
ntp peer 192.168.0.1 minpoll 1 maxpoll 4 exit
Типовая полная конфигурация одного пира ( второй настраивается с симметричными настройками ):
object-group service NTP port-range 123 exit security zone untrust exit security zone trusted exit interface gigabitethernet 1/0/1 security-zone untrust ip address 198.19.0.1/30 exit interface gigabitethernet 1/0/4 security-zone trusted ip address 192.168.0.1/24 exit security zone-pair untrust self rule 1 action permit match protocol udp match destination-port NTP enable exit exit security zone-pair trusted self rule 1 action permit match protocol udp match destination-port NTP enable exit exit ntp enable ntp server 46.146.231.187 minpoll 1 maxpoll 4 exit ntp peer 192.168.0.100 minpoll 1 maxpoll 4 exit
Broadcast Client
Данный режим рекомендуется использовать в случаях, когда малое количество серверов обслуживает большое количество клиентов ( как правило - конечных устройств ). Работая в этом режиме, сервер периодически рассылает пакеты, используя широковещательный адрес подсети. Клиент, настроенный на синхронизацию таким способом, получает широковещательный пакет сервера и производит синхронизацию с сервером. Особенностью этого режима является то, что время доставляется в рамках одной подсети (ограничение broadcast-пакетов).
Устройства линейки ESR поддерживают только broadcast-client режим и способны получать синхронизацию времени от внешних серверов времени, работающих в broadcast режиме:
ntp enable ntp broadcast-client enable
Механизмы защиты NTP
Для защиты NTP на устройствах линейки ESR необходимо использовать NTP object-group.
Данный функционал ограничивает NTP-запросы в сторону NTP-сервера и позволяет фильтровать NTP-сообщения от несанкционированных устройств.
Режим работы serve-only подразумевает обработку и ответ на NTP-query ( запрос времени ) от NTP-клиентов и одноранговых пиров. При этом сам NTP-сервер не будет пытаться синхронизироваться ( Selection Algorithm - RFC5905 ) с временем, полученным в запросе от однорангового пира. Так же в данном режиме запрещены control message.
Режим работы query-only подразумевает обработку и ответ на NTP-query ( запрос времени ) от NTP-клиентов и одноранговых пиров. При этом сам NTP-сервер не будет пытаться синхронизироваться ( Selection Algorithm - RFC5905 ) с временем, полученным в запросе от однорангового пира, но будет отвечать на control message.
Схема:
Задача:
Необходимо установить client-server ассоциации между ESR и NTP Servers из определённого пула адресов для получения времени и распространения его в LAN-сегмент. NTP-клиенты в LAN сегменте должны лишь получать NTP-reply на запросы времени NTP-сервера от ESR, не пытаясь синхронизировать его. В LAN-сегменте имеется так же сервер для мониторинга NTP-сервера внутри периметра.
Решение:
Предвариетльная настройка
Предварительно нужно выполнить следующие действия:
- создать зону безопасности
- описать взаимодействие между созданной зоной и зоной self
- указать зону безопасности для интерфейса gi1/0/1;
- настроить IP-адрес для интерфейса gi1/0/1, чтобы обеспечить IP-связность с NTP-сервером.
security zone untrust exit object-group service NTP port-range 123 exit interface gigabitethernet 1/0/1 security-zone untrust ip address 192.168.52.8/24 exit interface gigabitethernet 1/0/7 ip firewall disable ip address 192.168.54.1/24 exit interface gigabitethernet 1/0/8 ip firewall disable ip address 192.168.154.1/24 exit security zone-pair untrust self rule 10 action permit match protocol udp match destination-port NTP enable exit exit
Основной этап конфигурирования
Этап 1. Настройка конфигураций для внешнего NTP-сервера.
Сконфигурируем настройки с внешним NTP-сервером:
esr(config)# ntp server 192.168.52.1
Укажем версию протокола:
esr(config-ntp)# version 4
Укажем предпочтительность данного NTP-сервера:
esr(config-ntp)# prefer
Укажем интервалы времени между отправкой NTP-запросов серверу:
esr(config-ntp)# minpoll 1 esr(config-ntp)# maxpoll 4 esr(config-ntp)# exit
Создадим список IP-адресов доверенных NTP-серверов, от которых будет разрешено получать NTP-запросы для синхронизации времени:
esr(config)# object-group network NTP_Servers esr(config-object-group-network)# ip address-range 192.168.52.1 esr(config-object-group-network)# exit
Укажем список IP-адресов внешних NTP-серверов:
esr (config)# ntp access-addresses NTP_Servers
Этап 2. Настройка доступа к NTP-серверу на маршрутизаторе ESR.
Создадим несколько списков IP-адресов. Первым списком опишем лишь клиентов, которым необходимо лишь получать время от NTP-сервера. Вторым списком опишем хосты мониторинга, с которых будут разрешены control message в сторону NTP-сервера:
esr(config)# object-group network NTP_Clients esr(config-object-group-network)# ip address-range 192.168.54.2 esr(config-object-group-network)# exit esr(config)# object-group network NTP_Monitor esr(config-object-group-network)# ip address-range 192.168.154.2 esr(config-object-group-network)# exit
Укажем object-group для разделения прав доступа к NTP-серверу: object-group query-only будут опрашивать NTP-сервер в качестве сервера мониторинга, object-group serve-only будут лишь опрашиват NTP-сервер актуальное время:
esr(config)# ntp object-group query-only NTP_Monitor esr(config)# ntp object-group serve-only NTP_Clients
Активируем протокол NTP на ESR и сохраним настройки:
esr (config)# ntp enable esr (config)# end esr# commit esr# confirm
Диагностика NTP
Диагностика на ESR
Команда для просмотра текущей конфигурации протокола NTP:
esr # show ntp configuration
NTP status: Enabled NTP mode: client/server NTP DSCP: 46 Address VRF instance Type Version Min poll Max poll Prefer ---------------------------------------------- -------------------------------- ------ ------- -------- -------- ------ 192.168.52.1 1 server 4 1 4 Yes
Команда для просмотра текущего состояние NTP-серверов (пиров):
esr# show ntp peers
Clock is synchronized, stratum 3, reference is 192.168.52.1 remote vrf refid st t when poll reach delay offset jitter - ------------------------- ---------- --------------- -- - ---- ---- ----- -------- -------- -------- * 192.168.52.1 194.190.168.1 2 u 5 8 255 0.236 3.941 0.544
Диагностика NTP на сервере мониторинга.
Для просмотра текущего пула пиров NTP у указанного сервера используйте команду ntpq -p <IP_адрес_сервера> :
ntpq -p 192.168.154.1 remote refid st t when poll reach delay offset jitter ============================================================================== 192.168.52.1 16 p - 64 0 0.000 0.000 0.000 0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000 ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000
Чтобы посмотреть подробную информацию по текущему NTP состоянию хоста воспользуйтесь командой ntpq -c sysinfo :
ntpq -c sysinfo associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync, system peer: 91.206.16.3 (tms04.deltatelesystems.ru):123 system peer mode: client leap indicator: 00 stratum: 2 log2 precision: -24 root delay: 29.148 root dispersion: 31.738 reference ID: 91.206.16.3 reference time: e92e5d4c.b1222172 Thu, Dec 21 2023 13:44:28.691 system jitter: 10.929530 clock jitter: 3.121 clock wander: 0.386 broadcast delay: -50.000 symm. auth. delay: 0.000
Чтобы посмотреть на текущие ассоциации с пирами воспользуйтесь командой ntpq -c associations :
ntpq -c associations ind assid status conf reach auth condition last_event cnt =========================================================== 1 981 8811 yes none none reject mobilize 1 2 982 8811 yes none none reject mobilize 1 3 983 8811 yes none none reject mobilize 1 4 984 8811 yes none none reject mobilize 1 5 985 8811 yes none none reject mobilize 1 6 986 8811 yes none none reject mobilize 1 7 987 132a no yes none outlier sys_peer 2 8 994 148a no yes none candidate sys_peer 8 9 1001 163a no yes none sys.peer sys_peer 3 10 1002 1414 no yes none candidate reachable 1
Для сопоставления режима ассоциаций, используйте параметр столбца assid в выводе команды ntpq -c apeers :
ntpq -c apeers remote refid assid st t when poll reach delay offset jitter ============================================================================== 0.ubuntu.pool.n .POOL. 981 16 p - 64 0 0.000 0.000 0.000 1.ubuntu.pool.n .POOL. 982 16 p - 64 0 0.000 0.000 0.000 2.ubuntu.pool.n .POOL. 983 16 p - 64 0 0.000 0.000 0.000 3.ubuntu.pool.n .POOL. 984 16 p - 64 0 0.000 0.000 0.000 ntp.ubuntu.com .POOL. 985 16 p - 64 0 0.000 0.000 0.000 10.0.0.255 .BCST. 986 16 B - 8 0 0.000 0.000 0.000 -ntp1.doorhan.ru c2bea801 987 2 u 556 1024 377 43.485 -1.493 232.904 +ntp.ix.ru .GLN. 994 1 u 646 1024 377 22.341 7.570 0.359 *91.206.16.3 (tm .GPS. 1001 1 u 504 1024 377 29.148 -3.963 0.556 +time.cloudflare a570cb4 1002 3 u 562 1024 377 42.908 -2.125 3.308