NTP

Från Unix.se, den fria unixresursen.

NTP står för Network Time Protocol och är ett protokoll för att synkronisera tiden mellan två datorer över Internet eller annat nätverk. Klient- och servermjukvara finns till de flesta Unixvarianter. För att tiden ska bli korrekt krävs att NTP-servern man använder antingen är kopplad till en atomklocka eller synkroniserar med en annan server med korrekt tid.


Innehåll

ntpd och ntpdate

I standardimplementationen av NTP-tjänster för Unix ingår två program med tidsynkroniseringsfunktionalitet: ntpd och ntpdate. Det senare programmet är väldigt enkelt att använda:

ntpdate <serveradress>

men ändrar tiden omedelbart, oavsett hur många sekunder som skiljer klient och server åt. Är skillnaden stor kan det innebära problem för program som förlitar sig på jämförelser mellan tidsstämplar av filer och den aktuella tiden. Lösningen är då att använda ntpd, som kan fungera dels som en avancerad NTP-klient, dels som en NTP-server som svarar på begäran om betjäning från andra NTP-klienter. Vid stor tidsskillnad klient-server kan ntpd långsamt anpassa tiden hos klienten och därmed bevara integriteten för tidsstämplar. För att få ntpd att anta klientrollen anger man växeln -q. Vanligtvis används cron för att automatisera synkroniseringsprocessen.

För att sätta upp en NTP-server kör man ntpd som en daemon (vilket är det förvalda beteendet om ntpd anropas utan växlar). Processen kommer då att efterfråga tiden av specificerade servrar med ett visst intervall, justera klockan, och vidarebefordra aktuell tid till eventuella klienter. Oavsett hur ntpd används sker all konfiguration genom filen /etc/ntp.conf. Serverns status kan undersökas med programmet ntpq.

Exempel på konfigurationsfiler för ntpd

Här följer två exempel på hur /etc/ntp.conf kan se ut. Det första exemplet är inriktat på ett scenario där ntpd anropas med -q som ett schemalagt cronjobb, dvs används enbart som klient. I det andra exemplet är det tänkt att ntpd körs kontinuerligt som en daemon och betjänar klienter.

# Konfiguration för klientscenario

server 0.0.0.0 # IP-adressen till NTP-servern

restrict default ignore # ignorera all trafik som förval
restrict 127.0.0.1  # tillåt localhost att ändra konfigurationen
restrict 0.0.0.0 nomodify nopeer noquery notrap notrust # ge NTP-servern access

driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntpd.log
# Konfiguration för serverscenario

server 0.0.0.0 # IP-adress till första NTP-servern
server 0.0.0.1 # IP-adress till andra NTP-servern
server 0.0.0.2 # kan vara ännu fler

restrict default ignore # ignorera all trafik som förval
restrict 127.0.0.1 # tillåt localhost att ändra konfigurationen
restrict 192.168.0.0 mask 255.255.255.0 notrap nomodify notrust # tillåt lokala klienter att synka
# Om du använder NTP 4.2 eller högre kanske du skall ta bort notrust, eftersom notrust bytt mening
restrict 0.0.0.0 nomodify nopeer noquery notrap notrust
restrict 0.0.0.1 nomodify nopeer noquery notrap notrust
restrict 0.0.0.2 nomodify nopeer noquery notrap notrust

driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntpd.log

Lista på svenska NTP-servrar

ntp.lth.se 
ntp.uu.se
ntp1.chalmers.se
ntp2.chalmers.se
ntp1.sp.se
ntp2.sp.se
ntp3.sp.se
ntp4.sp.se
ntp5.sp.se
ntp6.sp.se
ntp1.sth.netnod.se
ntp2.sth.netnod.se
ntp1.gbg.netnod.se
ntp2.gbg.netnod.se
ntp1.mmo.netnod.se
ntp2.mmo.netnod.se
ntp.kth.se
ntp.gu.se
ntp.su.se
timer.sunet.se
time.flygplats.net

Övriga NTP-servrar

Det finns en distribuerad server (RoundRobin) att tillgå på pool.ntp.org.

Externa länkar

Personliga verktyg