Dit document bevat informatie over de manier waarop u gemeenschappelijke problemen met Network Time Protocol (NTP) kunt oplossen.
Cisco raadt u aan een goed begrip te hebben van hoe NTP werkt en een goede kennis te hebben van Network Time Protocol.
Dit document is niet beperkt tot specifieke software- en hardware-versies.
Network Time Protocol (NTP) wordt veel gebruikt om een computer te synchroniseren met internettijdservers of andere bronnen, zoals een radio- of satellietontvanger of telefoonmodemdiensten. Het biedt nauwkeurigheid van doorgaans minder dan een milliseconde op LAN’s en tot een paar milliseconden op WAN’s. Typische NTP-configuraties maken gebruik van meerdere redundante servers en diverse netwerkpaden om een hoge nauwkeurigheid en betrouwbaarheid te bereiken.
NTP gebruikt het algoritme van Marzullo om de tijd met de huidige versie van NTP te synchroniseren. Het kan tijd over het openbare Internet aan binnen 10 milliseconden handhaven en kan zelfs beter over LANs presteren. NTP-tijdservers werken binnen de TCP/IP-reeks en vertrouwen op User Datagram Protocol (UDP)-poort 123.
NTP-servers zijn normaal gesproken toegewijde NTP-apparaten die gebruikmaken van één tijdreferentie waarop ze een netwerk kunnen synchroniseren. Deze tijdverwijzing is meestal een gecoördineerde universele tijdbron (UTC). UTC is een wereldwijde tijdschaal die door atoomklokken wordt verspreid via het internet, via gespecialiseerde langegolfradiozenders of via het Global Positioning System (GPS)-netwerk. Speciale NTP-servers zijn vereist voor beveiliging, bescherming, nauwkeurigheid, wettigheid en controle.
Het NTP-algoritme gebruikt deze tijdsreferentie om de hoeveelheid te bepalen om het systeem of de netwerkklok voor te gaan of terug te trekken. NTP analyseert de tijdstempelwaarden en de frequentie van fouten en de stabiliteit ervan. Een NTP-server houdt een schatting bij van de kwaliteit van zowel de referentieklokken als zichzelf.
Deze sectie beschrijft enkele veel voorkomende problemen die kunnen worden ondervonden met NTP en biedt oplossingen voor elk probleem.
Wanneer Cisco-routers zijn geconfigureerd om de NTP-servers te gebruiken die in de Active Directory zijn geplaatst, ontvangen de Cisco-routers geen NTP-pakketten van de NTP-server. Deze kwestie doet zich voor omdat Cisco-routers NTP en Active Directory-domeinen W32Time-service gebruiken. W32Time gebruikt Simple Network Time Protocol (SNTP), een subset van NTP, voor tijdsynchronisatie. SNTP en NTP gebruiken dezelfde netwerkpakketindeling. Het belangrijkste verschil tussen SNTP en NTP is dat SNTP niet de fout-controle en het filtreren functies verstrekt die NTP verstrekt. Cisco-switches en -routermodules gebruiken NTP en bieden alle functies voor foutcontrole en filtering die door NTP v3 worden geboden.
Windows W32Time laat zien dat het een SNTP-implementatie binnen is (in plaats van zichzelf NTP te claimen). Cisco IOS-NTP, dat probeert te synchroniseren met W32Time, krijgt zijn eigen root-dispersie waarde die naar de W32Time wordt verzonden en dit blijkt kostbaar voor Cisco IOS-NTP om te synchroniseren. Omdat de wortel-dispersie waarde van Cisco IOS-NTP hoger gaat dan 1000 ms, unsynchroniseert het zichzelf (klokselectieprocedure). Aangezien de op 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 detail opdracht dat de server is gemarkeerd als krankzinnig, ongeldig. De waarde voor worteldispersie is meer dan 1000 ms, waardoor de Cisco IOS NTP-implementatie de associatie afwijst. Routers die Cisco IOS uitvoeren, kunnen niet synchroniseren met een NTP-server als het een Windows-systeem is dat de W32Time-service uitvoert. Als de server niet gesynchroniseerd is, kunnen de routers geen pakketten verzenden naar en ontvangen van de server.
Om dit probleem te verhelpen en een op Cisco IOS gebaseerde router te synchroniseren, gebruikt u een gezaghebbende NTP-server op het internet, een UNIX-box waarop NTPD of een GPS op bepaalde platforms wordt uitgevoerd. Als alternatief kunt u ervoor kiezen de W32Time-service niet op het Windows-systeem uit te voeren. In plaats daarvan kunt u NTP 4.x gebruiken. Alle versies van Windows 2000 en hoger kunnen dienen als een NTP-server. 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 het niet mogelijk maken dat UDP poort 123 pakketten doorkomt
Misconfiguratie in de routers, zoals de kloktijdzone en klokzomertijd-opdrachten zijn niet aanwezig op de routers
Openbare tijdserver is uitgeschakeld
NTP-serversoftware op NT of UNIX is niet correct geconfigureerd
Meer verkeer is op de router en meer verkeer op de weg naar de server
NTP-master verloren sync en router verliest periodiek sync
Hoge CPU-benutting
Hoge offset en meer tussen de server en de router (gebruik de show ntp associatiedetailopdracht om dit te controleren)
Deze foutmelding verschijnt wanneer de sensor probeert te synchroniseren met een server die zijn stratum als 15 rapporteert. Dit komt doordat een server stratum waarde 15 de sensor stratum waarde 16 geeft, wat illegaal is. Als gevolg daarvan, de sensor in plaats daarvan verwerpt de server en toont de Strata te hoog - te veel indirecte van sensor aan meester NTP server foutmelding.
NTP gebruikt het concept van een stratum om te beschrijven hoeveel NTP hop weg een machine is van een gezaghebbende tijdbron. 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 van een precisie referentieklok. Over het algemeen rapporteren systemen die direct gesynchroniseerd zijn met een atoomklok hun stratum als één. Een host die gesynchroniseerd is met een stratum één NTP-server, maar ook dient als NTP-server voor andere hosts rapporteert zijn stratum als twee aan die hosts, waarbij elke opeenvolgende laag servers een stratum heeft dat één hoger is dan zijn parent.
Als u een Linux-host als een NTP-server gebruikt, moet u het stratum dat het rapporteert, hard-code geven in plaats van het stratum automatisch te laten berekenen. Als het een Linux of UNIX vak is, wordt de NTP server geconfigureerd door het bestand /etc/ntp.conf, en de fudge opdracht wordt gebruikt om het stratum hard te coderen. De server rapporteert altijd een stratumwaarde één hoger dan de fudge-waarde aan zijn cliënten.
Revisie | Publicatiedatum | Opmerkingen |
---|---|---|
1.0 |
07-Oct-2008 |
Eerste vrijgave |