Dit document bevat informatie over het oplossen van problemen die vaak voorkomen bij het Network Time Protocol (NTP).
Cisco raadt u aan een goed begrip van de manier waarop NTP werkt en een goede kennis van het Protocol van de Tijd van het Netwerk te hebben.
Dit document is niet beperkt tot specifieke software- en hardware-versies.
Network Time Protocol (NTP) wordt op grote schaal gebruikt om een computer te synchroniseren met internettijdservers of andere bronnen, zoals een radio- of satellietontvanger of telefoonmodemdiensten. Het voorziet accuraaen vaak minder dan een milliseconde op LAN’s en tot een paar milliseconden op WAN’s. Typische NTP-configuraties gebruiken meerdere redundante servers en diverse netwerkpaden om een hoge nauwkeurigheid en betrouwbaarheid te bereiken.
NTP gebruikt het algoritme van Marzullo om de tijd te synchroniseren met de huidige versie van NTP. Het kan tijd via het openbare internet tot binnen 10 milliseconden onderhouden en kan zelfs beter presteren via LANs. NTP-tijdservers werken binnen de TCP/IP-reeks en vertrouwen op User Datagram Protocol (UDP) poort 123.
NTP-servers zijn normaal toegewijd NTP-apparaten die één keer een referentie gebruiken waaraan ze een netwerk kunnen synchroniseren. Deze referentie op tijd is meestal een gecoördineerde Universal Time (UTC) bron. UTC is een wereldwijde tijdschaal die wordt verdeeld door atoomklokken over het internet, over gespecialiseerde lange-golf-radiotransmissies of met het GPS-netwerk (Global Positioning System). Speciale NTP-servers zijn vereist voor beveiliging, bescherming, nauwkeurigheid, wettigheid en controle.
Het NTP-algoritme gebruikt deze tijdreferentie om het bedrag te bepalen om het systeem of de netwerkklok voor te bereiden of terug te trekken. NTP analyseert de tijdstempel waarden en de frequentie van fouten en de stabiliteit ervan. Een NTP-server onderhoudt een schatting van de kwaliteit van zowel de referentieklokken als zichzelf.
In deze sectie worden een aantal gemeenschappelijke problemen opgesomd die bij NTP kunnen worden ondervonden en worden voor elk van deze kwesties oplossingen geboden.
Wanneer Cisco-routers zijn ingesteld om de NTP-servers te gebruiken die in de actieve map zijn geplaatst, ontvangen de Cisco-routers geen NTP-pakketten van de NTP-server. Dit probleem doet zich voor omdat Cisco-routers NTP- en actieve adresdomeinen gebruiken de W32Time-service. W32Time gebruikt Simple Network Time Protocol (SNTP), een subset van NTP, voor tijdsynchronisatie. SNTP en NTP gebruiken de zelfde netwerk-pakketformaat. Het belangrijkste verschil tussen SNTP en NTP is dat SNTP de fout-controle en filterfuncties niet biedt die NTP verstrekt. Cisco-router en -switches gebruiken NTP en staan alle fouten-controle- en filterfuncties toe die door NTP v3 worden geboden.
Windows W32Time laat zien dat het een SNTP-implementatie binnen is (in plaats van zichzelf NTP op te eisen). Cisco IOS-NTP, dat probeert te sync met W32Time, krijgt zijn eigen root-dispersie waarde die het naar W32Time stuurt en dit blijkt kostbaar voor Cisco IOS-NTP om te synchroniseren. Omdat de root-dispersie waarde van Cisco IOS-NTP hoger is dan 1000 ms, wordt deze zelf niet gesynchroniseerd (klokselectie-procedure). Aangezien de Cisco IOS gebaseerde routers de volledige RFC-implementatie van NTP uitvoeren, synchroniseren ze niet met een SNTP-server. In dit geval toont de output van de show ntp associaties detailopdracht aan dat de server krankzinnig, ongeldig wordt gemarkeerd. De root dispersie waarde is meer dan 1000 ms, wat de Cisco IOS NTP-implementatie ertoe brengt de associatie te verwerpen. Routers die Cisco IOS uitvoeren kunnen niet naar een NTP-server synchroniseren als dit een Windows-systeem is dat de W32Time-service draait. Als de server niet gesynchroniseerd is, kunnen de routers niet verzenden naar en ontvangen pakketten van de server.
Om aan deze kwestie te werken en een op Cisco IOS gebaseerde router te synchroniseren, gebruik een gezaghebbende NTP server op het internet, een UNIX doos die NTPD of een GPS op bepaalde platforms in werking stelt. Als alternatief kunt u ervoor kiezen de W32Time-service niet op het Windows-systeem te gebruiken. In plaats daarvan kunt u NTP 4.x gebruiken. Alle versies van Windows 2000 en hoger kunnen als een NTP-server dienen. Andere machines op het netwerk kunnen dan de NTP server gebruiken om hun tijd te synchroniseren.
Dit zijn de mogelijke redenen dat routers niet kunnen synchroniseren met de openbare tijdservers:
Toegangscontrolelijsten die niet toestaan dat UDP poort 123-pakketten worden doorlopen
Misconfiguratie in de routers, zoals de opdrachten voor de kloktijd en de kloktijd, de zomertijd, is niet beschikbaar op de routers
Publieke tijdserver is uitgevallen
NTP-serversoftware op NT of UNIX is onjuist ingesteld
Er is meer verkeer op de router en er is meer verkeer op weg naar de server
NTP Master verloor sync en router verliest periodiek sync
Gebruik met hoge CPU’s
Hoge offset en meer tussen de server en de router (gebruik de opdracht NTP-associatiedetails om dit te controleren)
Deze foutmelding wordt weergegeven wanneer de sensor probeert te synchroniseren met een server die stratum rapporteert als 15. Dit komt doordat een server stratum waarde 15 de sensor stratum waarde 16 maakt, wat illegaal is. Als gevolg daarvan wijst de sensor de server af en geeft hij de Strata te hoog weer - te veel indirecties van sensor tot master NTP server error bericht.
NTP gebruikt het concept van een stratum om te beschrijven hoeveel NTP een machine van een gezaghebbende tijdbron weghoopt. Die foutmelding geeft aan dat het NTP-stratum dat door de NTP-server wordt gerapporteerd, te hoog is. Het stratum is een getal tussen 1 en 15 dat aangeeft hoe ver de server verwijderd is vanaf een precisiereferentieklok. Over het algemeen melden systemen die rechtstreeks gesynchroniseerd zijn aan een atoomkloktijd hun stratum als één. Een host die wordt gesynchroniseerd aan een stratum één NTP-server maar dient ook als een NTP-server voor andere hosts als twee van die hosts, waarbij elke opeenvolgende laag servers een stratum heeft dat hoger is dan de ouder.
Als u een Linux-host gebruikt als een NTP-server, dan stelt u de harde code van het stratum in plaats van het automatisch te laten berekenen. Als het een Linux of UNIX-vak is, wordt de NTP-server geconfigureerd door het bestand /etc/ntp.conf en wordt de focus-opdracht gebruikt om het stratum hard te coderen. De server rapporteert altijd een stratumwaarde die hoger is dan de contante waarde aan zijn klanten.