Na verloop van tijd gaat de tijd van een computer meestal uit de pas lopen. Het Netwerk Tijd Protocol (NTP) kan ervoor zorgen dat de tijd accuraat blijft.
Veel diensten op Internet zijn afhankelijk, of hebben veel voordeel, van het betrouwbaar zijn van de tijd. Zo ontvangt een webserver bijvoorbeeld veel verzoeken om een bestand te sturen als dat gewijzigd is sinds een bepaald moment. In een LAN-omgeving is het van groot belang dat computers die bestanden delen van eenzelfde server gesynchroniseerde tijd hebben zodat de tijdstempels consistent blijven. Diensten zoals cron(8) zijn ook afhankelijk van een betrouwbare systeemtijd om commando's op het ingestelde moment uit te voeren.
Bij FreeBSD zit de ntpd(8) NTP server die gebruikt kan worden om bij andere NTP servers de tijd op te vragen om de eigen klok gelijk te zetten of om de juiste tijd te verstrekken aan andere apparaten.
Om de tijd te synchroniseren moeten er één of meer NTP-servers beschikbaar zijn. Een lokale systeembeheerder of een ISP heeft wellicht een NTP-server voor dit doel opgezet. Het is verstandig om documentatie te raadplegen en te bekijken of dat het geval is. Er is een online lijst van publiek toegankelijke NTP-servers waarop een NTP-server gezocht kan worden die in geografische zin dichtbij een te synchroniseren computer ligt. Het is belangrijk te voldoen aan het beleid voor de betreffende server en toestemming te vragen als dat in de voorwaarden staat.
Het is verstandig meerdere, niet van elkaar afhankelijke, NTP-servers te kiezen voor het geval een van de servers niet langer betrouwbaar is of niet bereikbaar is. ntpd(8) gebruikt de antwoorden die van andere servers ontvangen worden op intelligente wijze: betrouwbare servers krijgen voorrang boven onbetrouwbare servers.
Als het alleen de bedoeling is de tijd te synchroniseren bij het opstarten van een machine, dan kan ntpdate(8) gebruikt worden. Dit kan van toepassing zijn op desktops die regelmatig herstart worden en niet echt regelmatig gesynchroniseerd hoeven te worden. Op sommige machines hoort echter ntpd(8) te draaien.
Het gebruik van ntpdate(8) bij het opstarten is ook een goed idee voor machines waarop ntpd(8) draait. De ntpd(8) wijzigt de tijd geleidelijk, terwijl ntpdate(8) gewoon de tijd instelt, hoe groot het verschil tussen de bestaande tijd van een machine en de correcte tijd ook is.
Om ntpdate(8) tijdens het opstarten in te schakelen
kan ntpdate_enable="YES"
aan
/etc/rc.conf
worden toegevoegd. Alle
voor de synchronisatie te gebruiken servers moeten dan, samen
met eventuele opties voor ntpdate(8), in
ntpdate_flags
aangegeven worden.
NTP wordt ingesteld met het bestand
/etc/ntp.conf
in het formaat dat
beschreven staat in ntp.conf(5). Hieronder volgt een
eenvoudig voorbeeld:
server ntplocal.example.com prefer server timeserver.example.org server ntp2a.example.net driftfile /var/db/ntp.drift
De optie server
geeft aan welke servers
er gebruikt moeten worden, met op elke regel een server. Als
de server wordt ingesteld met het argument
prefer
, zoals bij ntplocal.example.com
, dan krijgt die
server de voorkeur boven de andere. Een antwoord van een
voorkeursserver wordt genegeerd als dat significant afwijkt
van de antwoorden van de andere servers. In andere gevallen
wordt het gebruikt zonder rekening te houden met de andere
antwoorden. Het argument prefer
wordt
meestal gebruikt voor NTP-servers waarvan bekend is dat ze erg
betrouwbaar zijn, zoals die met speciale
tijdbewakingshardware.
De optie driftfile
geeft aan welk
bestand gebruikt wordt om de offset van de klokfrequentie van
het systeem op te slaan. ntpd(8) gebruikt die om
automatisch te compenseren voor het natuurlijke afwijken van
de tijd, zodat er zelfs bij gebrek aan externe bronnen een
redelijke accurate tijdsinstelling mogelijk is.
De optie driftfile
geeft aan welk
bestand gebruikt wordt om informatie over eerdere antwoorden
van NTP-servers die gebruikt worden op te slaan. Dit bestand
bevat interne informatie voor NTP. Het hoort niet door andere
processen gewijzigd te worden.
Een NTP-server is standaard toegankelijk voor alle hosts
op een netwerk. De optie restrict
in
/etc/ntp.conf
maakt het mogelijk om aan
te geven welke machines de dienst mogen benaderen.
Voor het blokkeren van toegang voor alle andere machines
kan de volgende regel aan /etc/ntp.conf
toegevoegd worden:
restrict default ignore
Dit zal ook toegang van uw server naar alle servers die vermeld staan in uw lokale configuratie verhinderen. Als u uw NTP-server moet synchroniseren met een externe NTP-server, dient u deze specifieke server toe te staan. Lees de handleiding voor ntp.conf(5) voor meer informatie.
Om alleen machines op bijvoorbeeld het lokale netwerk toe te staan hun tijd te synchroniseren met een server, maar ze tegelijkertijd niet toe te staan om de server te draaien of de server als referentie voor synchronisatie te gebruiken, kan de volgende regel toegevoegd worden:
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
Hierboven is 192.168.1.0
een IP-adres op een LAN en 255.255.255.0
is het bijbehorende
netwerkmasker.
/etc/ntp.conf
mag meerdere regels met
restrict
bevatten. Meer details staan in
het onderdeel Access Control Support
van
ntp.conf(5).
De NTP-server kan bij het opstarten gestart worden door de
regel ntpd_enable="YES"
aan
/etc/rc.conf
toe te voegen. Om extra
opties aan ntpd(8) mee te geven kan de parameter
ntpd_flags
in
/etc/rc.conf
gebruikt worden.
Om de server zonder een herstart van de machine te starten
kan ntpd
uitgevoerd worden, met toevoeging
van de parameters uit ntpd_flags
in
/etc/rc.conf
. Bijvoorbeeld:
#
ntpd -p /var/run/ntpd.pid
ntpd(8) heeft geen permanente verbinding met een
netwerk nodig om goed te werken. Maar als er gebruik gemaakt
wordt van een inbelverbinding, is het wellicht verstandig om
ervoor te zorgen dat uitgaande NTP-verzoeken geen uitgaande
verbinding kunnen starten. Als er gebruik gemaakt wordt van
gebruikers-PPP, kunnen er filter
commando's
ingesteld worden in /etc/ppp/ppp.conf
.
Bijvoorbeeld:
set filter dial 0 deny udp src eq 123 # NTP-verkeer zorgt niet voor uitbellen set filter dial 1 permit 0 0 set filter alive 0 deny udp src eq 123 # Inkomend NTP-verkeer houdt de verbinding niet open set filter alive 1 deny udp dst eq 123 # Uitgaand NTP-verkeer houdt de verbinding niet open set filter alive 2 permit 0/0 0/0
Meer details staan in de sectie PACKET
FILTERING
in ppp(8) en in de voorbeelden in
/usr/share/examples/ppp/
.
Sommige Internetproviders blokkeren lage poorten, waardoor NTP niet kan werken omdat er nooit een antwoord ontvangen kan worden door een machine.
All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.