Cosas a tener en cuenta al ejecutar servidores NTP públicos

21

Entonces, recientemente me di cuenta de que, dado que tengo 3 relojes GPS en mi red, técnicamente podría devolver un poco y servir tiempo al resto del mundo. Hasta ahora no he visto ningún inconveniente con estas ideas, pero tengo las siguientes preguntas;

  1. ¿Puedo virtualizar esto? No voy a gastar dinero y tiempo en hardware de pie para esto, por lo que la virtualización es imprescindible. Dado que los servidores tendrán acceso a tres fuentes del estrato 1, no puedo ver cómo esto puede ser un problema siempre que la configuración de ntpd sea correcta

  2. ¿Qué tipo de tráfico ve normalmente un servidor NTP público (parte de pool.ntp.org)? ¿Y cuán grandes máquinas virtuales necesito para esto? ntpd no debería consumir demasiados recursos, por lo que puedo reunir, pero prefiero saber de antemano.

  3. ¿Qué aspectos de seguridad hay en esto? Estoy pensando en instalar ntpd en dos máquinas virtuales en la DMZ, permitir solo ntp a través del FW y solo ntp salir de la DMZ a los servidores ntp internos. También parece haber algunas configuraciones ntp que se recomiendan de acuerdo con la página del grupo NTP, pero ¿son suficientes? https://www.ntppool.org/join/configuration.html

  4. Recomiendan no tener configurado el controlador de reloj LOCAL, ¿es esto equivalente a eliminar la configuración de fuente de tiempo LOCAL de los archivos de configuración?

  5. ¿Algo más a tener en cuenta?

Stuggi
fuente

Respuestas:

22

En primer lugar, bien por ti; Es algo útil y de espíritu público. Dicho esto, y dada su aclaración de que está planeando crear una o más máquinas virtuales DMZ que se sincronizarán y pondrán a disposición del público el tiempo de sus tres servidores stratum-1 (internos) habilitados para GPS de Meinberg:

  1. Editar : La virtualización se debate periódicamente en la lista del grupo; uno reciente fue en julio de 2015, que puede seguirse a partir de este correo electrónico . Pregúntele a Bjørn Hansen, el líder del proyecto, si publicó algo en el hilo y no habló en contra de la virtualización. Claramente, una serie de operadores de servidores de pool están virtualizando en este momento, por lo que no creo que nadie te dispare por ello, y como deja claro un póster, si tus servidores no son confiables, el sistema de monitoreo de pool simplemente los eliminará del piscina. KVM parece ser la tecnología de virtualización preferida; No encontré a nadie que usara VMWare específicamente, así que no puedo comentar cuán "honesta" es una virtualización. Quizás el mejor resumen sobre el tema dijo

    Los servidores de mi grupo se virtualizan con KVM en mis propios hosts KVM. La supervisión dice que el servidor es bastante preciso y proporciona un tiempo estable durante los últimos 2-3 años. Pero no configuraría un servidor de grupo en un servidor virtual arrendado de otro proveedor.

  2. Este es el número promedio diario de clientes distintos por segundo que veo en el servidor de mi grupo (que se encuentra en las zonas del Reino Unido, Europa y el mundo) durante el año pasado:

    recuento de clientes ntp

    Esto impone casi ninguna carga detectable del sistema ( ntpdparece usar entre 1% y 2% de una CPU, la mayoría de las veces). Tenga en cuenta que, en algún momento durante el año, la carga alcanzó su punto máximo en casi mil clientes por segundo (Máx .: 849.27); Superviso la carga excesiva y las alarmas no se dispararon, por lo que solo puedo notar que incluso ese nivel de carga no causó problemas, aunque sea brevemente.

  3. Las configuraciones recomendadas por el proyecto son las mejores prácticas y funcionan para mí. También utilizo iptablespara limitar a los clientes a dos paquetes entrantes en una ventana de diez segundos (es sorprendente cuántos clientes groseros hay por ahí, que piensan que deberían ser libres de estallar para configurar sus propios relojes rápidamente).

  4. O elimine las líneas que hacen referencia a las direcciones del servidor que comienzan con 127.127.

  5. Las pautas de mejores prácticas también recomiendan más de tres relojes, por lo que es posible que desee elegir un par de otros servidores públicos, o servidores de grupo específicos, además de sus tres servidores stratum-1.

    También me gustaría tener en cuenta que si planea colocar ambas máquinas virtuales en el mismo hardware host, probablemente debería ejecutar la única, pero duplicar el ancho de banda declarado en el grupo (es decir, aceptar el doble de consultas de lo que lo haría de otro modo) )

MadHatter apoya a Monica
fuente
1
Muchas distribuciones de Linux configuradas iburstpor defecto ...
Michael Hampton
44
iburstNo me importa mucho, ya que solo se aplica cuando no se puede acceder al servidor . La configuración burst, sin embargo, es francamente antisocial.
MadHatter apoya a Monica el
1
Gracias amigo, ¡exactamente lo que quería saber! Para aclarar, estoy ejecutando VMware bajo estos, y es un clúster distribuido. Mis relojes internos son electrodomésticos Meinberg, y hablan NTP ingenuamente. La carga parece bastante razonable, mis relojes internos ven aproximadamente el doble de eso (pero de nuevo están allí para que mis dispositivos puedan ser tan antisociales como quieran).
Stuggi
@Stuggi He tratado de aclarar la cuestión de la virtualización buscando en la lista de operadores de la piscina, espero que sea de alguna ayuda. ¡Siéntase libre de aceptar mi respuesta si cree que ha respondido a todas sus preguntas! Y gracias de nuevo por ejecutar un servidor de grupo.
MadHatter apoya a Monica el
1
@MadHatter Cheers mate, eso lo aclaró un poco. He tenido que lidiar con muchos problemas de tiempo en VMware antes, y sé cómo lidiar con esos problemas, solo estaba preocupado de que incluso después de ajustar todo, la VM todavía sería demasiado mala para el cronometraje de NTP. VMware es un hipervisor básico (también conocido como el hipervisor es el sistema operativo), mientras que KVM (si no recuerdo mal) se ejecuta sobre un sistema operativo "normal", por lo que debería estar bien ejecutarlo en VMware. ¡Lo intentaré y veré si me echan de la piscina! :)
Stuggi
12

En primer lugar, felicidades por una pregunta de NTP que no es material de facepalm. :-) He incluido algunos gráficos en la parte inferior de esta publicación para darle una idea de las cosas. La VM en cuestión está configurada a 100 Mbps en el panel de control del grupo, y está en el Reino Unido, Europa y grupos globales.

  1. Creo que MadHatter cubrió esto bien: la virtualización debería estar bien. Como usted dice, si se alimentan de sus estratos 1 conectados a GPS, deberían ser razonablemente sólidos. En mi experiencia, las máquinas virtuales tienden a ser un poco más nerviosas que el metal desnudo en términos de frecuencia (vea el gráfico a continuación), pero eso es lo que esperaría: se trata de una capa de emulación de reloj (con suerte bastante eficiente) y potencialmente ruidosa vecinos. Si prefiere no ver ese tipo de inquietud, tal vez use servidores más antiguos o escritorios no utilizados como su DMZ stratum 2s.

  2. Esta VM es de 1 núcleo, 2 GB de RAM, ejecuta Ubuntu 16.04 LTS, virtualizado en OpenStack (hipervisor KVM). Como puede ver, la RAM está un poco por encima.

  3. La configuración recomendada, incluida la no configuración del controlador local, es la predeterminada en Ubuntu 16.04. Me estoy ejecutando muy cerca de la configuración de stock, aparte de la lista de pares.

  4. (véase más arriba)

  5. Probablemente comience el ancho de banda en el lado bajo y aumente el ancho de banda después de que lo haya monitoreado un poco. Si todas sus máquinas virtuales están cerca unas de otras y cerca de sus estratos 1 en términos de latencia de red, probablemente tendría todas las máquinas virtuales hablando con todos los estratos 1, y probablemente las empareje entre sí y active el modo huérfano también.

Aquí están los gráficos: todos cubren el mismo período de aproximadamente 3 semanas, excepto el de red, que tuvo un par de picos debido a las copias de seguridad. Cuando los picos de la red estaban allí, ni siquiera podía ver el tráfico NTP normal, así que me acerqué un poco para mostrar el fondo habitual.

CPU UPC Memoria Memoria Red Red Frecuencia Frecuencia Compensación del sistemaCompensación del sistema

Paul Gear
fuente
Ooooh, buena respuesta - ¡+1 de mi parte!
MadHatter apoya a Monica el
1
Gracias amigo, más que es realmente útil, estoy ejecutando menos de 3 ms de latencia entre las máquinas virtuales y los dispositivos NTP físicos, que se distribuyen geográficamente dentro de 50 millas de la infraestructura de la máquina virtual, ¡así que creo que estaré bien!
Stuggi
3

Algunas cosas a considerar con NTP

Ya hay buenas respuestas aquí. Solo estoy agregando algunos pensamientos para completar en base a mis propias experiencias.

Sugeriría habilitar el registro NTP y las asimetrías y correcciones del reloj de gráficos en metal desnudo frente a VM en lo que respecta a esa discusión si eso es una preocupación. No creo que esto pueda generalizarse fácilmente ya que el hardware y la configuración varían entre implementaciones. Podría ser mejor obtener sus propios números en ese.

Siempre he sugerido a la gente que elija roles de sistemas de servidores o dispositivos de red que tengan un tiempo de CPU bastante constante y que no sean núcleos sin tic o que tengan habilitados los modos de ahorro de energía. Evite especialmente la línea de daemons cpuspeed o los govenors de velocidad o el ahorro de energía avanzado en servidores NTP, incluso si son solo el estrato 2 en su granja. Se puede obtener cierta estabilidad al nunca ir más profundo que C-State 1, pero su consumo de energía aumentará.

También trato de asegurarme de que la gente elija un puñado de servidores del estrato 1 que estén a menos de 40 ms del borde de su red, luego los divida entre sus servidores NTP de borde y me asegure de que no haya 2 servidores detrás del mismo SNAT en su red. al mismo servidor del estrato 1. En la misma línea que burst, no es aconsejable tener varios servidores detrás del mismo SNAT utilizando los mismos servidores ascendentes, ya que les parecerá que ha habilitado la ráfaga incluso cuando no lo haya hecho.

Siempre debe respetar el kodpaquete del servidor ascendente y tener herramientas de monitoreo que verifiquen las compensaciones de tiempo y la accesibilidad de los servidores ascendentes.

Es posible que desee considerar tener sus propias fuentes de tiempo precisas en algunos de sus centros de datos para analizar o recurrir en el improbable caso de que GPS SA esté habilitado por los militares. Hay dispositivos rentables específicamente para esto. Incluso si se encuentra en un entorno de "jaula" y no tiene su propio centro de datos, algunas instalaciones de alojamiento pueden acomodar esto.

Aaron
fuente
Stuggi ya mencionó que la red en cuestión tiene 3 relojes GPS.
Paul Gear
Sí. Estoy hablando específicamente sobre el uso de relojes de cesio locales que no se desviarán en el improbable caso de que el GPS esté desactivado. Eso solo debería ocurrir durante un evento militar a gran escala, pero nunca se sabe.
Aaron
2

Consulte el documento de cronometraje de vmware en http://www.vmware.com/pdf/vmware_timekeeping.pdf

Ejecutar un demonio NTP en una máquina virtual probablemente no sea una buena idea, especialmente si necesita un tiempo confiable.

Nicholas Jeffrey
fuente
3
Si bien no es una respuesta precisa, esto plantea una preocupación válida al respecto "TL; DR: sí, hay problemas que abordar con respecto a la virtualización".
rackandboneman el
Soy consciente de esos problemas que deben abordarse, estoy más pensando si es posible.
Stuggi
1
Re: "Ejecutar un demonio NTP en una máquina virtual probablemente no sea una buena idea, especialmente si necesita un tiempo confiable". - No creo que esto sea cierto para ningún hipervisor moderno. El documento al que se vincula específicamente dice que usar NTP en una VM es una opción. Los gráficos que incluí en mi respuesta muestran que una VM puede mantener un buen tiempo en KVM, y espero que los sistemas ESXi más nuevos hagan lo mismo.
Paul Gear