[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: servidor de tiempo



Salud2s listeros despues de una brebe ausencia que estube en esta lista ya
me encuentro precente en cuanto el server de tiempo mas abajo muestro un
pequeno howto sobre de como se implementa. Cualquier duda escribes

NTP Servers and CLIENTS
Introducción para entender el funcionamiento de los servidores de tiempo

Network Time Protocol (NTP) es un protocolo de red para sincronizar el
reloj de una computadora con la hora de una fuente de referencia, logrando
una precisión de orden de milisegundos con respecto a la Hora Universal
Coordinada (UTC). La hora UTC, que ha sido adoptado como la escala de
tiempo estándar por la mayoría de las naciones del mundo, es basada en la
rotación de la Tierra alrededor de su eje y en el calendario Gregoriano,
que a su vez es basado en la rotación de la Tierra alrededor del Sol.

La hora UTC es diseminada a través de receptores especiales, como radios,
satélites o módems, manejados por los gobiernos de varias naciones del
mundo. Un número limitado de computadores están equipados con estos
receptores y actúan como servidores de tiempo primarios (stratum 1),
usados para sincronizar un número mucho mayor de servidores secundarios
(stratum 2), que a su vez sincronizan a clientes ternarios (stratum 3) a
través de protocolos de sincronización, como NTP, cuyos daemons a la vez
actúan como servidores para sincronizar aún más clientes. Esto crea una
cascada de servidores sincronizados.

¿Por qué sincronizar el reloj? Las ventajas son muchas y las desventajas
ninguna. El reloj sincronizado con NTP está siempre a la hora oficial y no
es necesario ajustarlo cada cierto tiempo. Los problemas asociados a un
reloj desincronizado son múltiples. Por ejemplo, el sello de tiempo cuando
se crea o modifica un archivo puede quedar con la hora y fecha equivocada.
El correo electrónico que envías desde el computador podría llevar un
sello de tiempo equivocado. ¿No te ha sucedido que has recibido correo con
fechas totalmente erróneas?

Las computadoras poseen en su circuito un reloj bastante inexacto, llamado
reloj CMOS o reloj del hardware. Hemos comprobado que el drift típico del
reloj del hardware en nuestros computadores es de unos 20 segundos por
día. Esa es la inexactitud típica de un reloj de hardware que funciona
correctamente. No es raro en computadoras viejas que éste reloj esté
defectuoso, probablemente debido a una batería descargada. Cuando la pc
arranca, el reloj del sistema (el que ves en la barra de tareas) se coloca
según el reloj del hardware. Por eso sucede que al arrancar la pc, el
reloj del sistema aparece a una hora y fecha diferente a la actual, a
pesar de haber sido puesto a la hora correcta recientemente. Esto se debe
a la inexactitud o defecto del reloj del hardware. Lo primero es:

1.- Modificar el reloj del hardware
El reloj del hardware se modifica con el comando hwclock (hardware clock),
# hwclock --set --date="11/09/2006 15:27:30"

La fecha tiene el formato Inglés mm/dd/aaaa. El reloj de sistema no se
modifica con éste comando, porque lo que se modificó fue el reloj del
hardware. Ahora copia la hora del reloj del hardware al reloj del sistema
con el comando,
# hwclock --hctosys

Observa el reloj de la barra o da el comando 'date' para ver el efecto
hctosys significa "hardware clock to system clock".

2.- Modificar el reloj del sistema
Primero, verifica que la variable de entorno UTC esté puesta en "UTC=yes"
en el archivo de configuración /etc/default/rcS. Si la pc tiene
adicionalmente el sistema operativo Windows, deja la variable en "UTC=no".
Verifica que la zona esté correcta en el archivo de configuración
/etc/timezone. Esta debería decir America/Havana. Si la zona está
incorrecta, modifícala con el comando
# tzselect
Luego da el comando
# date
para ver la hora del sistema. Este comando retornará a la pantalla algo así,
# Sat Feb 3 15:22:57 CLT 2007

3.- Otro modo de cambiar la zona horaria y me gusta más

# zic -l America/Havana

y luego poner en el fichero /etc/timezone esto dentro America/Havana

luego instala el paquete ntpdate con,
# apt-get install ntpdate

La herramienta ntpdate es útil para sincronizar rápidamente la hora del
sistema a la del servidor NTP y se corre siempre al arrancar el
computador. Si deseas sincronizar nuevamente da el comando,
# ntpdate reloj.minbas.cu
y devuelve esto
28 Feb 15:44:10 ntpdate[3611]: step time server 200.55.156.162 offset
-3225.211399 sec

4.- Configuración de NTP cliente
Corre ntpdate una vez y luego instala el paquete ntp con,

# apt-get install ntp
El daemon ntpd correrá la sincronización cada cierto tiempo (varios
minutos) tal de no ocupar mucha red.

La configuración de NTP está en el archivo /etc/ntp.conf y debería decir
algo así,

#################################################
# /etc/ntp.conf, configuration for ntpd

driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# You do need to talk to an NTP server or two (or three).
#server ntp.your-provider.example

# pool.ntp.org maps to more than 300 low-stratum NTP servers.
# Your server will pick a different set every time it starts up.
# *** Please consider joining the pool! ***
# *** ***
server reloj.minbas.cu iburst
################################################
Lo más importante de este archivo es la definición del servidor NTP que se
especifica en server.

y modifica las restricciones, removiendo noquery,

...
restrict -4 default kod notrap nomodify nopeer
restrict -6 default kod notrap nomodify nopeer
...

Reinicia ntpd con,
# /etc/init.d/ntp restart

5.- Verificación
Verifica la sincronización después de unos 5 a 10 minutos con el comando
ntptrace. Este comando retornará a la pantalla algo así,

$ ntptrace
localhost: stratum 3, offset 0.000044, synch distance 1.16098
admin.elecgtm.une.cu: stratum 2, offset 0.000032, synch distance 0.16200
admin.elecgtm.une.cu: stratum 2, offset 0.000032, synch distance 0.16200

Esto indica que el computador está sincronizado y a la vez se ha
transformado en un servidor ternario (stratum 3).

Si ejecutando el comando ntptrace aparece el mensaje,
$ ntptrace
localhost: stratum 16, offset 0.000025, synch distance 0.00002
0.0.0.0: *Not Synchronized*

todavía no hay sincronización. Verifica todos los pasos de este manual y
reinicia ntpd con,
# /etc/init.d/ntp restart

Finalmente, la sincronización ajusta el reloj del sistema, por lo que es
necesario copiarla al reloj del hardware. Lo más simple es reiniciar
hwclock con el comando,
# /etc/init.d/hwclock.sh restart

Aparecerá un mensaje así,

Saving the system clock..

No es necesario hacer esto manualmente cada cierto tiempo. Debian reinicia
hwclock para poner el reloj del hardware a la hora del sistema cada vez
que el sistema se apaga o arranca.

6.- Cortafuegos
Si tienes un cortafuego, habilita el puerto 123 UDP hacia requerimientos
por la interfase que va a servir NTP.
Reinicia ntpd con,
# /etc/init.d/ntp restart

reinicia el cortafuegos también y no hablo de que tipo de cortafuegos pues
unos usan IPTABLES y otros como yo FIREHOL
jajaja

si deseas mas información dale para http://www.ntp.org ahi hay de todo

ahhhhh olvidaba algo, si ud asigna IP a travez de un DHCP de linux pude
poner este parametro y el dhcp al asignar el numero IP tambien le envía la
hora
...
option ntp-servers IP_SERVER_NTP;
...

Hasta aqui con el server de time, ahora veremos como sincronizar los
clientes a este server de time
====================================
para los Clientes

si son de debian
1.- instale esto
aptitude install ntpdate
2.- ejecutar esto en consola como root
zic -l America/Havana
para que sea GTM: -5
3.- luego ejecutar en consola como root
ntpdate time.elecgtm.une.cu
para sincronizar la hora
4.- crear un script con permiso de ejecución que en su interior tenga
ntpdate time.elecgtm.une.cu
poner esto en el /etc/crontab
*/55 * * * * root /camino/nombre_de_fichero > /dev/null 2>&1

¿por que ponerlo en el crontab y no en el cron.hourly? sencillo, para que
no te envie un correo diciendo que actualizó la hora

si es de WINDOWS y está usando un usuario administrativo
1.- dar clic derecho sobre el reloj que está en la barra de tareas
seleccionar=> Ajustar fecha y hora
en la ventana que sale escoja la pestaña que dice=> Hora de Internet
donde dice time.windows.com poner en su lugar time.elecgtm.une.cu
dar clic en el boton para sincronizar tiempos=> actualizar ahora

para terminar, si quiere ver el tiempo via web
publique un index.php con esto dentro

time.elecgtm.une.cu

<? echo exec(date)?>

-- 
 _________________________________________
/ Administrador de Red                    \
| Empresa Eléctrica Guantánamo            |
| Phone: (0121) 383421                    |
| Phone: (0121) 383465 Ext. 314           |
| Jabber: joanmanuel@jb.elecgtm.une.cu    |
| Jabber: joanmanuel@jb.une.cu            |
| Linux User# 490001                      |
\ Web: http://linux.elecgtm.une.cu        /
 -----------------------------------------
   \
    \
        .--.
       |o_o |
       |:_/ |
      //   \ \
     (|     | )
    /'\_   _/`\
    \___)=(___/


Reply to: