У меня около 20 серверов Linux в небольшой сети, и мне нужно, чтобы их часы были прилично близко друг к другу (например, в течение 20 мс). Я начал с каждой из них, синхронизированной с europe.pool.ntp.org, и работа сделана.
Теперь у меня есть два вопроса:
- Я заметная ноша для бассейна? Т.е. имеет ли это какое-то заметное значение для пула, если я бью с 20 серверов или с 2?
- Если это что-то меняет, какие настройки / конфигурации будут синхронизировать мою подсеть и пул под небольшой нагрузкой? Есть рекомендации для больших сетей ( http://www.ntp.org/ntpfaq/NTP-s-config-adv.htm#AEN3101 ), но я не нашел ни одной для небольших сетей.
peer
отношения. См. Например, ntp.org/ntpfaq/NTP-s-config-adv.htm#AEN3101Ответы:
Учитывая, что пул постоянно нуждается в серверах в течение многих лет (см. [1]), я бы сказал, что хотя 2 или 20 серверов на самом деле не имеют значения, вы всегда должны помнить, что вы не одиноки. Так что вам лучше подумать о 1000 администраторах, в этом случае мы говорим о 2000 или 20000 серверах, и это имеет значение.
Вы должны синхронизировать два [2] сервера в вашей сети с пулом (назовем их Первичными NTP-серверами ), а затем синхронизировать все остальные серверы с этими двумя. Этот метод также имеет преимущество в том, что время между всеми вашими серверами будет более точно согласовано (в пределах менее 1 мсек). Это соответствует лучшим практикам IETF .
1) Конфигурация для основных серверов NTP
Замените строки
server
andrestrict
вашего ntp [d] .conf следующим текстом, а остальные оставьте по умолчанию для вашего дистрибутива [3]:Обратите внимание, что эта конфигурация также позволяет хостам со всего Интернета запрашивать время вашего хоста с помощью запросов NTP. Используйте свой брандмауэр, если не хотите. В моем примере 10.11.12.1 и 10.11.12.2 - это IP-адреса первичных серверов NTP (у них две сетевые карты, одна из которых обращена к общедоступному Интернету, а другая - в локальную подсеть 10.11.12.x). Каждый первичный NTP-сервер имеет другой, объявленный как одноранговый (в основном одноранговый сервер означает и сервер, и клиента - вы используете другой хост в качестве источника времени, а другой хост также использует вас в качестве источника времени). Поэтому настройте IP-адрес в 1-й строке, чтобы конфигурация каждого основного NTP-сервера указывала на другой в качестве равноправного. См. [4] относительно моего выбора использовать 4 сервера.
2) Конфигурация для всех остальных серверов
2А) Если у вас есть два сетевых интерфейса
Вам лучше использовать 2-й интерфейс для создания локальной подсети (например
10.11.12.0/24
) и использовать ее для запросов NTP. В этом случае ограничительные линии могут быть более узкими. Итак, еще раз замените строкиserver
иrestrict
вашего ntp [d] .conf на следующее, а остальные оставьте по умолчанию для вашего дистрибутива [3]:2B) Если у вас нет двух сетевых интерфейсов
Вы должны использовать приведенные ниже строки ограничения (и прочитайте примечание об использовании вашего брандмауэра, чтобы заблокировать доступ к вашим NTP-серверам выше). Итак, еще раз замените строки
server
иrestrict
вашего ntp [d] .conf на следующее, а остальные оставьте по умолчанию для вашего дистрибутива [3]:Ноты
[1] В период с 2006 по 2012 год они постоянно просят присоединить больше серверов: запрос 2006 года , 2009 год и 2012 год . Проверьте www.pool.ntp.org для обновления на текущий статус.
[2] Два первичных сервера NTP предлагаются только в качестве простого способа обеспечения избыточности без сложных механизмов высокой доступности. Вы можете выбрать 3 или 4 по другим причинам (снова ознакомьтесь с рекомендациями IETF )
[3] На практике, независимо от вашего дистрибутива, единственное, что вам нужно включить в конфигурацию ntpd, - это строка, определяющая каталог для размещения дрейфового файла и его имени - например
driftfile /var/lib/ntp/ntp.drift
. Я протестировал свое решение в CentOS, Debian и Ubuntu. Я думаю, это работает в большинстве других дистрибутивов.[4] Я настроил 4 пула серверов, следуя рекомендациям . Конфигурирование более 4 серверов технически приемлемо, но вы увеличите нагрузку на пул NTP для сомнительного увеличения доступности, так что не делайте этого. В лучших практиках я вижу, что «начиная с ntp-4.2.6 директива 'pool' будет приводить к" достаточному количеству "ассоциаций, чтобы обеспечить надежную службу времени", поэтому если вы используете .pool. адреса, как я здесь и ntp> = 4.2.6 точное количество строк сервера, вероятно, не имеет значения.
Рэнт О! Я ненавижу NTP (кроме того, что мне нравится, что это работает). Официальная документация полна устаревшей информации, и у них есть "как мне ее использовать?" информация, смешанная с научными подробностями о внутренностях. И я также ненавижу, как на
restrict 127.0.0.1
самом деле означаетallow everything for 127.0.0.1
История обновлений
Я удалил эту
iburst
опцию из конфигурации Локальных NTP-серверов, потому что их дружелюбие к пулу является дискуссионным. (см. комментарии). Удаление их добавляет только пару минут времени ожидания к первой синхронизации.кредиты
Комментарии и ответы от пользователей SF Marki и Sven послужили хорошей отправной точкой для этого ответа. Спасибо им обоим.
источник
iburst
это раздражающий параметр для использования на публичных серверах, поэтому, пожалуйста, не делайте этого (хотя это не так раздражает, какburst
). Администраторы пула делают вам одолжение, не зная, кто вы есть, и без какой-либо компенсации самим себе, просто для лучшего функционирования Интернета. Если вы, работая усерднее, можете облегчить им жизнь, вы обязаны сделать это.burst
, но дажеiburst
говорят (соntpd
страницы руководства ), что « с этой опцией обмениваются залпом сообщений, чтобы обработать данные и установить часы примерно через 10 с ». Использованиеiburst
говорит: « Быстро настроить мои часы важнее, чем поддерживать низкую нагрузку на ваш сервер », и это невежливо.iburst
это гораздо менее нежелательно, чемburst
. Моя точка зрения заключается в том, что когда вы используете чужой ресурс бесплатно, есть аргумент, что вы должны наклоняться назад, чтобы быть внимательным; может показаться, что недостаточно просто быть недостаточно внимательным. Я согласен, что считается, что это лучшая практика, но в этих документах не учитывается, являются ли вышестоящие серверы, с которыми вы синхронизируете, частью вашего предприятия или нет; они диктуют лучшую техническую практику (которую я согласен использоватьiburst
), а не лучшую социальную практику.Обычный подход для этого - использовать многоуровневую настройку - вы синхронизируете один или два сервера в своей сети с пулом, а затем используете их в качестве локального источника времени. Эти уровни называются стратами в NTP lingo.
Кроме того, подумайте об этом: если вы сделаете это так, как описали, это будет не очень заметно, но если 1000 сайтов вашего размера начнут это, у вас останется 20 000 по большей части ненужных запросов, и в какой-то момент это станет заметно.
Читать http://en.wikipedia.org/wiki/Network_Time_Protocol
источник
pool.ntp.org
. Конечно, трафик DNS превышает трафик NTP. Вы также должны кэшировать DNS локально? Даже DNS-трафик, вероятно, будет минимальным по сравнению с остальной частью вашего трафика.ntp.pool.org
они нарушают условия пула ; если они сделали это правильно, обратившись к зоне вендора (см. ссылку), то ожидается, что они также внесут свой вклад в проект пула пропорционально их нагрузке (опять же, см. ссылку).