Hvilken NTP-server bør jeg bruke? Eller er det bedre å ha flere? Alt du trenger på én linje.

En enkel løsning på omsorgsproblemet tiddomenekontroller installert på virtuell bil Hyper-V styrt av Windows Server 2008/2012.

Under arbeid domenekontroller styrt av Windows Server 2008 R2/2012 installert på en virtuell maskin Hyper-V, ble det lagt merke til konstant tiden går– på en måned kunne tiden ha gått med nesten en halvtime. Trenger jeg å si hvor viktig det er? eksakt tidspunkt på domenekontrolleren, fordi på den synkronisert hele datamaskinparken i domenet.

1. Deaktiver tidssynkronisering med vertsmaskinen

Først må du deaktivere tidssynkronisering gjestemaskin samtidig med vertsmaskin, ellers får vi problemer. Hvis vertsmaskinen er medlem av et domene, synkroniseres verten med kontrolleren på gjestemaskinen, og gjestemaskin synkronisert av verten - vi får en lukket sløyfe, som mest sannsynlig fører til en konstant tidsforskyvning i seg selv. Skiftet oppnås bokstavelig talt i noen brøkdeler av et sekund, men gradvis summeres over hver synkroniseringssyklus, akkumuleres et veldig merkbart klokkeskift.

I parametere virtuell maskin Innstillinger → Integreringstjenester → Tidssynkronisering – fjern merket

2. Sett opp synkronisering via NTP-server

Verktøy

For å konfigurere bruker vi kommandolinjeverktøyet w32tm. Hovedparametrene til verktøyet som brukes til å konfigurere og administrere tid: w32tm /query lar deg spørre nåværende innstillinger NTP-klient og server w32tm /config brukes til å konfigurere tidstjenesten w32tm /resync brukes til å initialisere tidssynkronisering w32tm /dumpreg brukes til å vise gjeldende registerinnstillinger knyttet til tidstjenesten w32tm /debug brukes til å aktivere tidstjenestefeilsøking Logg

Innstillinger

Du setter opp tidssynkronisering på en domenekontroller under Windows-kontroll Server 2008 R2 med FSMOs rolle"PDC Emulator": w32tm /query /configuration se på gjeldende parametere for tidstjenesten w32tm /config /syncfromflags:manual velg kilden (listen vi spesifiserte) for tidssynkronisering w32tm /config /manualpeerlist:"server1.ntp.org server2.ntp.org" setter vi opp en manuelt spesifisert liste over noder for synkronisering. Verter er DNS-navn eller IP-adresser atskilt med mellomrom. Når du spesifiserer flere noder, er alle nodeverdier omgitt av anførselstegn. Du kan selvfølgelig begrense deg til én kjent time.windows.com w32tm /config /reliable:ja vi setter parameteren at denne maskinen er en pålitelig kilde til tid og kan betjene klienter w32tm /config /update vi informerer tidstjenesten at endringer er gjort (du kan starte tjenesten på nytt) w32tm /query /configuration check endringer gjort i w32tm /resync-tjenesteparametrene utfører vi synkronisering (du kan leke deg rundt, endre klokkeslett og sjekke om synkronisering vil bli utført)

For større pålitelighet kan du også starte tidstjenesten på nytt ved å bruke kommandoene net stop w32time og net start w32time .

For enkelhets skyld er det greit å samle de oppførte kommandoene i én cmd-fil og løse problemet med ett klikk:

W32tm /config /syncfromflags:manual w32tm /config /manualpeerlist:time.windows.com w32tm /config /reliable:yes w32tm /config /update w32tm /query /configuration pause w32tm /resync

Applikasjonseksempler

08.12.2014

NetPing-enheter bruker NTP-protokollen for å synkronisere tid. Ved å bruke denne protokollen justerer alle enheter på nettverket tiden i henhold til til den angitte serveren. NetPing-enheter koblet til Internett kan bruke en offentlig NTP-server, som anbefalt i artikkel. Hvis tilgang til Internett-nettverk nei, da kan du konfigurere en lokal NTP-server. En slik server kan være hvilken som helst datamaskin som kjører Windows OS med en konfigurert tjeneste W32TidWindows Time Service »). Denne tjenesten ikke har GUI og konfigureres enten via kommandolinjen eller ved å redigere registernøkler.

Instruksjoner for å sette opp en NTP-server på Windows 7/8/2008/2012

La oss se på å sette opp en tidstjeneste ved å redigere registeret. Oppsettet er det samme for Windows-versjoner 7/8, Windows Server 2008, Windows Server 2012.

For denne innstillingen må du ha Windows OS-administratorrettigheter.

Åpne registerredigering enten gjennom dialogboksen " Henrette", forårsaket av tastekombinasjonen" Vinne» + « R", eller gjennom søkeskjemaet, hvor vi skriver " regedit».


I redigeringsprogrammet som åpnes, i tremenyen til venstre, åpne "grenen" " HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer", hvor vi ser etter nøkkelen med navnet " Muliggjøre" Klikk Høyreklikk musen og velg "Rediger". Endre nøkkelverdien fra 0 1 .


Ved å endre denne parameteren, indikerte vi at denne datamaskinen fungerer som en NTP-server. Datamaskinen forblir samtidig en klient og kan synkronisere tiden med andre servere på Internett eller lokalt nettverk. Hvis du vil at den interne maskinvareklokken skal fungere som en datakilde, endrer du verdien til nøkkelparameterenKunngjør flagg5 i tråden" HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config».


For at endringene skal tre i kraft, må vi starte tjenesten på nytt. Tjenestene er tilgjengelige via " Kontrollpanel» fra menyen « Start» -> « Kontrollpanel» -> « Administrasjon» -> « Tjenester" Den finnes også i søkeskjemaet når du skriver inn " tjenester.msc" I listen over tjenester som vises, finner vi den vi er interessert i " Windows Time Service" og gjennom menyen kalt opp med høyre museknapp, velg elementet " Omstart».

I denne artikkelen skal vi se på hvordan du konfigurerer NTP i Windows Server 2012. Denne artikkelen dekker ikke detaljert oppsett tidssynkronisering i et domenemiljø, og sette opp en enkelt domenekontroller med rollen som en PDC-emulator, som er den eneste serveren i miljøet som synkroniserer med ekstern kilde tid.

Oppsettet er veldig enkelt. Alt du trenger å gjøre er å kjøre følgende kommandoer i PowerShell:

w32tm /config /manualpeerlist:pool.ntp.org /syncfromflags:MANUAL
Stop-Service w32time
Start-Service w32time

Hvis kontrolleren er virtualisert med Hyper-V, må du huske å deaktivere tidssynkronisering ved hjelp av Hyper-V. Åpne innstillingene for virtuell maskin -> Administrasjon -> Integrasjonstjenester og fjern merket for Tidssynkronisering.

Det er alt! Vil du vite mer? Er det noe som ikke fungerer? Så la oss se på det mer detaljert...

W32tm er hovedkommandoen vi bruker. Det finnes også alternativer som bruker "nettotid", men det er faktisk ikke nødvendig å bruke denne konstruksjonen. Noen artikler nevner også direkte redigering registret, men Microsoft fraråder i alle fall å gjøre dette, men bare hvis det absolutt ikke er noe annet alternativ. Men hvis du virkelig ønsker å redigere registeret, er grenen du trenger her: HKLM\System\CurrentControlSet\Services\W32Time.

Hvilken NTP-server bør jeg bruke? Eller er det bedre å ha flere?

pool.ntp.org er en round-robin av tilfeldige NTP-servere. Til sluttbrukere denne adressen er mer enn nok. Om nødvendig kan du imidlertid spesifisere flere servere manuelt:

w32tm /config /manualpeerlist:"ntp1.sp.se ntp2.sp.se" /syncfromflags:MANUAL

Bare legg til serverne du trenger med et mellomrom mellom dem.

Ikke glem brannmuren

Hvis du har en brannmur mellom verten og Internett, kan den konfigureres til å blokkere udp/123, som er der NTP-protokollen fungerer. Slik ser det ut på min Cisco ASA FW:

Derfor opprettet jeg en egen regel som tillater denne trafikken.

Detaljert informasjon og logging

Denne kommandoen viser nyttig informasjon om oppsett av synkronisering, listen over servere og tidspunktet for siste synkronisering.

Vanligvis, når en server ikke kan hente tid fra en NTP-server, skrives følgende informasjon til loggen:

Loggnavn: System
Hendelses-ID: 47
Nivå: Advarsel
Beskrivelse: Tidsleverandør NtpClient: Ingen gyldig respons er mottatt fra manuelt konfigurert peer pool.ntp.org etter 8 forsøk på å kontakte den. Denne peeren vil bli forkastet som en tidskilde, og NtpClient vil forsøke å oppdage en ny peer med dette DNS-navnet. De feil var: Peer er uoppnåelig.

Når alt er i orden ser meldingen slik ut:

Loggnavn: System
Kilde: Microsoft-Windows-Time-Service
Hendelses-ID: 35
Nivå: Informasjon
Beskrivelse: Tidstjenesten synkroniserer nå systemtiden med tidskilden pool.ntp.org (ntp.m|0×0|0.0.0.0:123->85.10.240.253:123).

Opplever du fortsatt noen problemer? Du kan enkelt inkludere feilsøkingsutdata i en loggfil, som i mitt tilfelle er begrenset til 10 megabyte og inkluderer alle feilsøkingsoppføringer.

w32tm /debug /aktiver /fil:C:\Temp\w32tmdebug.log /størrelse:10485760 /entries:0-300

Etter at feilsøkingen er fullført, slår du den av:

Ved problemer i loggen vil du se et stort nummer av informasjon. For meg, når alt fungerer, signaliserer følgende oppføring dette:

- Tilgjengelighet: peer pool.ntp.org (ntp.m|0×0|0.0.0.0:123->129.70.132.35:123) er tilgjengelig.
- Logginformasjon: NtpClient mottar for øyeblikket gyldige tidsdata fra pool.ntp.org (ntp.m|0×0|0.0.0.0:123->129.70.132.35:123).

Og da brannmuren min blokkerte pakkene, mottok jeg følgende meldinger.

- Loggingsfeil: NtpClient har blitt konfigurert til å hente tid fra en eller flere tidskilder, men ingen av kildene er tilgjengelige for øyeblikket, og det vil ikke bli gjort noen forsøk på å kontakte en kilde på 1 minutt. NTPCLIENT HAR INGEN KILDE TIL NØYAKTIG TID.

Tvunget synkronisering

Hvis du trenger å tvinge klienten til å synkronisere, kjør kommandoen:

w32tm/resync
Sender resync-kommando til lokal datamaskin
Kommandoen ble fullført.

Hvis du har mottatt følgende feil, betyr dette at datamaskinen ikke kan nå NTP-serveren.

Datamaskinen synkroniserte ikke på nytt fordi ingen tidsdata var tilgjengelig.

Begynne på nytt

Hvis du er helt forvirret i konfigurasjonene, stappet for mye og ikke lenger forstår hva som skjer, start fra begynnelsen. Disse kommandoene vil tilbakestilles fullstendig NTP-innstillinger til standardtilstand:

Stop-Service w32time
w32tm/avregistrer
w32tm/register

Å stille inn tiden i Windows-serveroperativsystemer ved hjelp av NTP-protokollen er avgjørende for mange tjenester. Uten riktig konfigurert tid, eller rettere sagt, hvis klokkene på serveren og arbeidsstasjonene ikke stemmer overens, kan mange protokoller ikke fungere riktig Active Directory og synkroniseringstjenester. Å stille inn og vedlikeholde en klokke ved hjelp av NTP er en enkel oppgave, men noen ganger kommer det med noen komplikasjoner, som vi vil prøve å adressere i denne artikkelen.

For eksempel vil vi bruke et ikke det nyeste systemet - Windows Server 2012. Det er det vanligste, og samtidig gjelder for mange andre systemer, inkludert Windows Server 2008, Windows Server 2016, lignende kommandoer og regler. Det skal bemerkes at beskrivelsen gjelder et miljøoppsett med en enkelt master PDC-kontroller. Mer komplekse alternativer vurderes ikke.

Tilbakestill NTP-innstillinger

For å sette NTP-tjenesten i "standard"-tilstand, må du kjøre følgende kommandoer:

Stopp- Service w32time w32tm / avregistrer w32tm / registrer

Stop-Service w32time w32tm /avregistrer w32tm /register

I i dette tilfellet de stopper tjenesten, avregistrerer tjenesten og registrerer den i systemet igjen. Du bør bare kjøre disse kommandoene når det er absolutt nødvendig. Som regel er det ikke behov for dem - NTP er konfigurert hvis andre systemforhold tas i betraktning.

Vanlige NTP-installasjonskommandoer

For å konfigurere nettverkstidsprotokollen til Windows-kontroller Server, først og fremst må du deaktivere synkronisering via Hyper-V hvis kontrolleren er virtualisert ved hjelp av denne teknologien. For å gjøre dette, gå til innstillingene og fjern merket for Tidssynkronisering i delen Administrasjon -> Integrasjonstjenester

For de som ikke bruker Hyper-V kan forrige trinn utelates.

w32tm /config /manualpeerlist:"0.de.pool.ntp.org 1.de.pool.ntp.org" /syncfromflags:MANUAL

UDP-protokoll for blokkering av NTP og brannmur

Tidsprotokollen bruker UDP-portnummer 123 for sin kommunikasjon i standardkonfigurasjonen. Du må sørge for at brannmuren ikke blokkerer denne porten. Hvis blokkering skjer, vil det være mye informasjon i ntp-loggene om at tilkoblingen er umulig:

Loggnavn: System
Kilde: Microsoft-Windows-Time-Service
Hendelses-ID: 47
Nivå: Advarsel
Beskrivelse: Tidsleverandør NtpClient: Ingen gyldig respons er mottatt fra manuelt konfigurert peer pool.ntp.org etter 8 forsøk på å kontakte den. Denne peeren vil bli forkastet som en tidskilde, og NtpClient vil forsøke å oppdage en ny peer med dette DNS-navnet. Feilen var: Den jevnaldrende er uoppnåelig.

For å være sikker på at dette er problemet, kan du aktivere utdata for ytterligere feilsøkingsinformasjon. Vi konfigurerer Windows Server-logger slik at alle nødvendig informasjon, men de vokste ikke mer enn 20 megabyte:

w32tm /debug /disable

Låse ntp Brannmuren fanger opp følgende setning ved feilsøking:

— Loggingsfeil: NtpClient er konfigurert til å hente tid fra én eller flere tidskilder, men ingen av kildene er tilgjengelige for øyeblikket, og det vil ikke bli gjort noe forsøk på å kontakte en kilde i løpet av 1 minutt. NTPCLIENT HAR INGEN KILDE TIL NØYAKTIG TID.

I dette tilfellet (ja, generelt, umiddelbart for verifiseringsformål), må du sjekke regelen i brannmuren

Og, om nødvendig, endre regelen eller legg den til.

Sjekker at ntp fungerer som det skal

For å sjekke om alt fungerer som det skal, kan du starte synkronisering manuelt:

w32tm/resync

Hvis alt gikk bra, vil du motta følgende melding:

Sender resync-kommando til lokal datamaskin
Kommandoen ble fullført.

Hvis det er problemer, melding:

Datamaskinen synkroniserte ikke på nytt fordi ingen tidsdata var tilgjengelig.

I det andre tilfellet må du sjekke alt først: brannmuren, riktigheten til de angitte serverne (om du har gjort en feil i navnet). Hvis noe, har vi allerede gitt informasjon om tilbakestilling av innstillingene.


OS Windows-familien inneholder W32Time-tidstjenesten. Denne tjenesten er utviklet for å synkronisere tid i en organisasjon. W32Time er ansvarlig for driften av både klient- og serverdelen av tidstjenesten, og samme datamaskin kan være både klient og NTP-server (Network Time Protocol) samtidig.

Som standard er Windows-tidstjenesten konfigurert som følger:

Ved installasjon av operasjonsstue Windows-systemer starter en NTP-klient som synkroniserer med en ekstern tidskilde;

Når du legger til en datamaskin i et domene, endres synkroniseringstypen. Alle klientdatamaskiner og medlemsservere i domenet bruker en domenekontroller for å synkronisere tid, som bekrefter deres autentisitet;

Når en medlemsserver blir forfremmet til en domenekontroller, startes en NTP-server på den, som bruker en kontroller med PDC-emulatorrollen som tidskilde;

PDC-emulator plassert i rotdomene skog, er hovedtidsserveren for hele organisasjonen. Samtidig er den i seg selv også synkronisert med en ekstern tidskilde.

Denne ordningen fungerer i de fleste tilfeller og krever ikke inngrep. Det kan imidlertid hende at strukturen til tidstjenesten i Windows ikke følger domenehierarkiet, og enhver datamaskin kan utpekes som en pålitelig tidskilde.

Som et eksempel, la oss se på å sette opp en NTP-server i Windows Server 2008 R2; analogt sett kan du sette opp en NTP-server i Windows 7.

Starter NTP-serveren

Windows Server Time Service har ikke et GUI og kan konfigureres fra begge kommandolinje, eller ved å redigere systemregisteret direkte. La oss vurdere den andre metoden:

NTP-serveren må startes. Åpne registergrenen:

HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpServer.

For å aktivere NTP-serveren må Enabled-parameteren settes til 1. Deretter starter vi tidstjenesten på nytt med kommandoen nettstopp w32time && nettstart w32time.

Etter å ha startet NTP-tjenesten på nytt, er serveren allerede aktiv og kan betjene klienter. Du kan bekrefte dette ved å bruke kommandoen w32tm /query /configuration. Denne kommandoen sendes ut full liste tjenesteparametere. Hvis NtpServer-delen inneholder linjen Enabled:1 , så er alt i orden, tidsserveren kjører.

For at NTP-serveren skal betjene klienter, må du åpne UDP-port 123 for innkommende og utgående trafikk.

Grunnleggende NTP-serverinnstillinger

Åpne registergrenen:

HKLM\System\CurrentControlSet\services\W32Time\Parameters.

NoSync - NTP-serveren er ikke synkronisert med noen ekstern tidskilde. Systemklokken brukes, innebygd i CMOS-brikken til selve serveren (denne klokken kan i sin tur synkroniseres fra en NMEA-kilde via RS-232, for eksempel);

NTP - NTP-serveren synkroniserer med eksterne tidsservere som er spesifisert i NtpServer-registerparameteren;

NT5DS - NTP-serveren synkroniserer i henhold til domenehierarkiet;

AllSync - NTP-serveren bruker alle tilgjengelige kilder for synkronisering.

Standardverdien for en datamaskin som er en del av et domene er NT5DS, for separat stående datamaskin- NTP.

NtpServer-parameteren spesifiserer NTP-serverne som tiden skal synkroniseres med denne serveren. Som standard inneholder denne parameteren Microsoft NTP-serveren (time.windows.com, 0×1); om nødvendig kan du legge til flere NTP-servere ved å skrive inn deres DNS-navn eller IP-adresser atskilt med et mellomrom. På slutten av hvert navn kan du legge til et flagg (f.eks. ,0×1) som bestemmer modusen for synkronisering med tidsserveren.

Følgende modusverdier er tillatt:

0×1 - SpecialInterval, bruk av pollingtidsintervall;

0×2 – UseAsFallbackOnly-modus;

0×4 – SymmetriskAktiv, symmetrisk aktiv modus;

0×8 – Klient, sender en forespørsel i klientmodus.

En annen viktig parameter AnnounceFlags ligger i registernøkkelen:

HKLM\System\CurrentControlSet\services\W32Time\Config.

Den er ansvarlig for hvordan NTP-serveren kunngjør seg selv. For å erklære en medlemsserver (ikke en domenekontroller) som en pålitelig tidskilde, er flagg 5 nødvendig.

Hvis serveren som konfigureres på sin side er en NTP-klient (mottar for eksempel tid fra en GPS-mottaker via NTP), kan du konfigurere intervallet mellom oppdateringer. Denne parameteren kan også være relevant for klient-PCer. SpecialPollInterval-nøkkelen, som ligger i registergrenen, er ansvarlig for oppdateringstiden:

HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpClient.

Den angis i sekunder og som standard er verdien 604800, som er 1 uke. Det er mye, altså Det er verdt å redusere SpecialPollInterval-verdien til en rimelig verdi - 1 time (3600).

Etter konfigurasjonen må du oppdatere tjenestekonfigurasjonen. Dette kan gjøres med kommandoen w32tm /config /update.


Og noen flere kommandoer for å konfigurere, overvåke og diagnostisere tidstjenesten:

w32tm /monitor – med dette alternativet kan du finne ut hvor mye system tid av denne datamaskinen forskjellig fra tiden på domenekontrolleren eller andre datamaskiner. For eksempel: w32tm/monitor/computers:time.nist.gov

w32tm /resync - ved å bruke denne kommandoen kan du tvinge datamaskinen til å synkronisere med tidsserveren den bruker.

w32tm /stripchart – viser tidsforskjellen mellom gjeldende og ekstern datamaskin. Team w32tm /stripchart /computer:time.nist.gov /samples:5 /dataonly vil gjøre 5 sammenligninger med den angitte kilden og vise resultatet i tekstform.


w32tm /config er hovedkommandoen som brukes til å konfigurere NTP-tjenesten. Med dens hjelp kan du angi listen over tidsservere som brukes, typen synkronisering og mye mer. For eksempel kan du overstyre standardverdiene og sette opp tidssynkronisering med en ekstern kilde ved å bruke kommandoen w32tm /config /syncfromflags:manual /manualpeerlist:time.nist.gov /update


w32tm /query - viser gjeldende tjenesteinnstillinger. For eksempel vil kommandoen w32tm /query /source vise gjeldende tidskilde, og w32tm /query /configuration vil vise alle tjenesteparametere.

net stop w32time - stopper tidstjenesten hvis den kjører.

w32tm /unregister - fjerner tidstjenesten fra datamaskinen.

w32tm /register – registrerer tidstjenesten på datamaskinen. I dette tilfellet opprettes hele grenen av parametere i registeret på nytt.

net start w32time - starter tjenesten.

Funksjoner lagt merke til i Windows 7 - Tidstjenesten starter ikke automatisk når Windows oppstart. Rettet i SP1 for Windows 7.