NTP (Server & Client)

Fra SemarkIT
Skift til: Navigation, Søgning

Indholdsfortegnelse

Hvad er NTP

NTP står for Network Time Protocol. Men hvad skal man med en NTP server på et lokalt net? Mange har brug for at vide hvad klokken er, i stedet for at samtlige maskiner på dit lokale netværk skal ud på internettet en gang hver 10 min for at få tjekket tiden, så kan man sætte en lokal server op, som stiller klokken på dine klienter, på den måde er det kun en eller to servere som tjekket tiden fra internettet.

Hvilken niveauer kan man opnå:

NTP server er inddelt i noget som hedder stratum + et tal.

stratum 1 er en server som har et link til en GPS hvor man modtager tiden fra. eg. Lantime M600 GPS

stratum 2 er en server som har et link til en stratum 1 server

stratum 3 er en server som har et link til en stratum 2 server

osv.

stratum 16 er den dårligste kategori som kan opnås, denne opnås hvis man kører en NTP server uden at opdatere uret fra andre på internettet, hvilket ingen sikkerhed skaber.

Installer NTP server

Hvilken pakker (Etch og Lenny)

apt-get install ntp ntpdate ntp-doc

Opsætning af NTP server

Åben ntp.conf med din favorit editor, jeg har valgt at bruge nano

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

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

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! ***
#  *** <http://www.pool.ntp.org/join.html> ***
#server 0.debian.pool.ntp.org iburst

# By default, exchange time with everybody, but don't allow configuration.
# See /usr/share/doc/ntp-doc/html/accopt.html for details.
restrict default ignore
restrict -6 default ignore

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict -6 ::1 

# Clients from this (example!) subnet have unlimited access,
# but only if cryptographically authenticated
restrict 192.168.120.0  mask  255.255.0.0 nomodify notrap
restrict 2000:2001:2001:: mask FFFF:FFFF:FFFF:: nomodify notrap

# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
broadcast 192.168.121.255

# If you want to listen to time broadcasts on your local subnet,
# de-comment the next lines. Please do this only if you trust everybody
# on the network!
#disable auth
#broadcastclient

# Using the NIST Leap Second File
# The U.S. National Institute of Standards and Technology (NIST) is publishing a
# file which contains a table of past and upcoming leap seconds.
#
# The file is available at ftp://time.nist.gov/pub/ as well as ftp://tycho.usno.navy.mil/pub/ntp/
# The file name is: leap-seconds.nnnnnnnnnn where nnnnnnnnnn is a time the file was updated expressed as an 
# NTP timestamp rounded to whole seconds, that is, the number of seconds since the start of the year 1900 (ignoring leap seconds).
leapfile "/etc/ntp/leap-seconds.3629404800"

# Ved virker
server ns.tele.dk
restrict 193.162.159.194 nomodify notrap nopeer noquery
restrict -6 2001:6c8:2:100::53 nomodify notrap nopeer noquery

server gps.dix.dk
restrict 192.38.7.240 nomodify notrap nopeer noquery

server time4.stupi.se
restrict 192.36.143.153 nomodify notrap nopeer noquery
restrict -6 2001:440:1880:1007::153 nomodify notrap nopeer noquery

server timehost.lysator.liu.se
restrict 130.236.254.17 nomodify notrap nopeer noquery
restrict -6 2001:6b0:17:f0a0::11 nomodify notrap nopeer noquery

server ntp1.sth.netnod.se
restrict 192.36.144.22 nomodify notrap nopeer noquery

server ntp2.sth.netnod.se
restrict 192.36.144.23 nomodify notrap nopeer noquery

server nissan.ifm.liu.se
restrict 130.236.160.44 nomodify notrap nopeer noquery

Under punktet restrict -4 og -6 er der en parameter som hedder noquery hvis du vil bruge din server til at tildele tid på dig lokale net, skal denne fjernes, da den blokere for ntpq og ntpdc pakker.

Som standart er broadcast slået fra, denne skal slås til hvis du vil kunne finde serveren uden at skriver noget i dine clienter

Alt det som starter med server er NTP servere på nettet, dem som jeg har skrevet under Ved virker er officelle tidsserver med status af stratum 1, dem som er under Debian pool er offentlige NTP debian servere, der er altså ingen garanti for hvilken status de har, det samme er gælleende for NTP pool du kan selv skrive dem som passer bedst til dig NTP server i EU

Test din NTP server

Det første du skal efter du er færdig med at sætte din NTP server op, er at genstarte den, eller starte den hvis den ikke har været startet endnu

/etc/init.d/ntp restart

Nu kan du allerede med det samme se om den kan få fat i de servere som du har sat i den config.

ntpq -p

Nu skulle dit output se nogle sådan her ud

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 192.168.1.255   .BCST.          16 u    -   64    0    0.000    0.000   0.001
-ns.tele.dk      .GPS.            1 u  679 1024  377    7.061    0.983   0.234
 gps.dix.dk      .INIT.          16 u    - 1024    0    0.000    0.000   0.000
-0405ds1-vaer.0. 192.36.143.150   2 u  491 1024  377   21.803   -0.640   0.094
-tigerdyr.wheel. 193.162.159.194  2 u  469 1024  377    6.364    0.735   0.007
+0x3ef3e02b.boan 192.36.143.151   2 u  477 1024  377    3.415    0.222   0.105
-wolfbrother.tok 193.162.159.194  2 u  605 1024  377    2.385   -0.582   0.006
x77.75.166.194   192.38.7.240     2 u  489 1024  377    3.159  -58.363   1.846
-ntp.smileconten 193.162.159.194  2 u  601 1024  377    7.609   -0.052   0.191
-mirror-01.mainl 192.36.143.150   2 u  584 1024  377   29.507    5.896   0.004
+timehost.lysato .GPS.            1 u  530 1024  377   22.080   -0.053   0.247
*Time4.Stupi.SE  .PPS.            1 u  458 1024  377   13.931   -0.064   0.135
-public-timehost 130.236.254.17   2 u  506 1024  377   22.101   -0.221   0.469
xnoisebox.positi 130.88.212.143   3 u  524 1024  377   95.457   33.742   1.233
-ntp1.lon.bitfol 212.13.204.5     3 u  587 1024  377   22.485   -1.124   0.020
 ntp1.arse.org   .INIT.          16 u    - 1024    0    0.000    0.000   0.000
-ntp0.lon.bitfol 212.13.204.5     3 u  564 1024  377   24.574    1.350   0.084
-194.192.186.25. 193.162.159.194  2 u  536 1024  377    3.906    0.144   0.332 

Som man kan se, så under remote er navnende på de server som du har fat i, under refid er det svar som du får fra de respektive servere og st er = med den stratum nr som serveren har

Efter noget tid, vil din server få en bedre status, da den som udgangspunkt vil starte som stratum 16.

Du kan se din servers stratum nr ved at kører

ntptrace

her skulle outputtet gerne blive noget ligende

localhost: stratum 2, offset 0.000006, synch distance 0.034012

hvis der kommer en fejl ligende denne her:

localhost: stratum 2, offset 0.000006, synch distance 0.034012
192.36.143.153: timed out, nothing received
***Request timed out

er det ikke din opsætning som der er noget galt med, men den server i den anden ende som ikke har fjernet noquery fra dens konfiguration.

Som man kan se, så er min servers status stratum 2 hvilket betyder jeg har forbindelse til mindst en stratum 1 server.

Installere NTP client

Hvilken pakker (Etch og Lenny)

apt-get install ntp ntpdate ntp-doc

Opsætning af NTP client

Åben ntp.conf med din favorit editor, jeg har valgt at bruge nano

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

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

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! ***
#  *** <http://www.pool.ntp.org/join.html> ***
#server 0.debian.pool.ntp.org iburst

# By default, exchange time with everybody, but don't allow configuration.
# See /usr/share/doc/ntp-doc/html/accopt.html for details.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1 

# Clients from this (example!) subnet have unlimited access,
# but only if cryptographically authenticated
#restrict 192.168.123.0  mask  255.255.255.0 notrust 

# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
#broadcast 192.168.1.255 

# If you want to listen to time broadcasts on your local subnet,
# de-comment the next lines. Please do this only if you trust everybody
# on the network!
disable auth
broadcastclient

Det er lidt den samme fremgangsmåde som når man opsætter serveren, men i sted for at definere en masse server, så skal man bare tilføje disable auth og broadcastclient dette kræver selvfølgelig at du på server har slået broadcast til. ellers skal du bare tilføje en server server din.ntp.server

Test din NTP klient

Det første du skal efter du er færdig med at sætte din NTP klient op, er at genstarte den, eller starte den hvis den ikke har været startet endnu

/etc/init.d/ntp restart

Nu kan du allerede med det samme se om den kan få fat i de servere som du har sat i den config.

ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 din.ntp.server 193.162.159.194  2 u   -   64    0     0.000    0.000   0.001

Efter noget tid, vil din klient få en bedre status, da den som udgangspunkt vil starte som stratum 16.

Du kan se din klients stratum nr ved at kører

ntptrace

her skulle outputtet gerne blive noget ligende

localhost: stratum 3, offset 0.000006, synch distance 0.034012
din.ntp.server: stratum 2, offset 0.000006, synch distance 0.034012
ns.tele.dk: stratum 1, offset 0.000006, synch distance 0.034012

hvis der kommer en fejl ligende denne her:

localhost: stratum 3, offset 0.000006, synch distance 0.034012
din.ntp.server: stratum 2, offset 0.000006, synch distance 0.034012
192.36.143.153: timed out, nothing received
***Request timed out

er det ikke din opsætning som der er noget galt med, men den server i den anden ende som ikke har fjernet noquery fra dens konfiguration.

Personlige værktøjer
Navnerum

Varianter
Handlinger
Navigation
Værktøjer