Hvordan skiller NTP-tidssynkroniseringsprotokollen seg fra SNTP? NTP – atomklokke på hver tabell Ntp-protokoll

NTP bruker UDP-protokollen for å operere. NTP-systemet er ekstremt motstandsdyktig mot endringer i medieforsinkelse.

NTP bruker Marzullo-algoritmen (foreslått av Keith Marzullo ved University of California, San Diego), inkludert overføringstidsfunksjonen. I versjon 4 er den i stand til å oppnå en nøyaktighet på 10 ms (1/100 s) ved arbeid over Internett, og opptil 0,2 ms (1/5000 s) og bedre innenfor lokale nettverk.

NTP er en av de eldste protokollene som er i bruk. NTP ble utviklet av David L. Mills fra University of Delaware i 1985 og er for tiden under forbedring. Gjeldende versjon er NTP 4.

NTP bruker et hierarkisk system med "klokkenivåer" (stratum). Nivå 1 er synkronisert med en høypresisjonsklokke, for eksempel med et GPS-system, GLONASS (Unified State Time Scale of the Russian Federation) eller en atomtidsstandard. Nivå 2 synkroniseres med en av Nivå 1s maskiner, og så videre.

Tid er representert i NTP-systemet som et 64-bits tall (8 bytes), bestående av en 32-bits sekundteller og en 32-bits brøksekunderteller, slik at tiden kan overføres i området 2-32 sekunder, med en teoretisk nøyaktighet på 2-32 sekunder. Siden tidsskalaen i NTP gjentas hvert 2.32. sekund (136 år), må mottakeren minst omtrentlig kjenne gjeldende tid (med en nøyaktighet på 50 år). Merk også at tiden måles fra midnatt 1. januar 1900, ikke 1970, så nesten 70 år (inkludert skuddår) må trekkes fra NTP-tid for å matche tiden korrekt med Windows- eller Unix-systemer.

NTP-protokollen er mest brukt for å implementere presise tidsservere. For å oppnå maksimal nøyaktighet foretrekkes kontinuerlig drift programvare NTP i systemtjenestemodus. I Microsoft Windows-familien av operativsystemer er dette W32Time-tjenesten (w32time.dll-modul som kjører i svchost.exe), Linux - Ntpd-tjenesten.

En enklere implementering av denne algoritmen er kjent som SNTP – enkel synkronisering nettverksprotokoll. Brukes i innebygde systemer og enheter som ikke krever høy presisjon, samt i tilpassede tidsprogrammer.

Den detaljerte implementeringen av protokollen og systemet som helhet er beskrevet i:

NTP må ikke forveksles med dagtidsprotokollen RFC 867 eller tidsprotokollen RFC 868 (vinnprogram FG Time Sync).

Timelag

NTP bruker et hierarkisk flernivåsystem av tidskilder. Hvert nivå i dette hierarkiet kalles et lag, hvert lag er tildelt et nummer, som starter med 0 (null) øverst. Lagnivået definerer avstanden fra referanseklokken og eksisterer for å forhindre sykliske avhengigheter i hierarkiet. Det er viktig å merke seg at laget ikke er en indikator på kvalitet og pålitelighet, det betyr at kilden lag 3 kan gi et signal mer Høy kvalitet enn noen kilder lag 2. I utgangspunktet tjener lagene til å fordele belastningen og gi et større dekningsområde. Denne definisjonen av et lag skiller seg også fra konseptet med klokkelag som brukes i telekommunikasjonssystemer.

Lag 0

Lag 0 er en høypresisjonsenhet som fungerer som en tidsstandard, for eksempel atomklokker (molekylære, kvanteklokker), radioklokker eller deres analoger. Vanligvis er disse enhetene ikke koblet til et nettverk; i stedet kobles de til den lokale datamaskinen (for eksempel via et RS-232-grensesnitt) og overfører PPS-signaler for synkronisering.

Lag 1

Dette er en datamaskin som referanseklokken er direkte koblet til. Den fungerer som en nettverkstidsserver og svarer på NTP-forespørsler sendt av lag 2-datamaskiner.

Lag 2

Dette er datamaskiner som mottar tid fra førstelagsservere ved hjelp av NTP-protokollen. Vanligvis kontakter datamaskiner i det andre laget flere servere i det første laget, og ved å bruke NTP-algoritmen får du det beste utvalget av data, og eliminerer servere med åpenbart feil tid. Datamaskiner kan sammenligne dataene sine med andre datamaskiner i laget for å få stabile og konsistente data på tvers av alle datamaskiner i laget. Datamaskiner i det andre laget fungerer på sin side som servere for datamaskiner i det tredje laget og svarer på NTP-forespørsler.

Lag 3

Datamaskiner i det tredje laget fungerer på nøyaktig samme måte som datamaskiner i det andre laget, med den eneste forskjellen at serverne for dem er datamaskiner av det overliggende andre laget. De kan også fungere som servere for det underliggende laget. NTP (avhengig av versjon) støtter opptil 256 lag.

se også

Linker

  • - liste over NTP-servere i den russiske føderasjonens State Time and Frequency Standard (STSE).
  • Network Time Protocol-prosjekt - et offentlig prosjekt for å utvikle NTP-protokollen og -tjenester
  • NTP Public Services Project - NTP offentlige serverprosjekt og IETF NTP Working Group
  • pool.ntp.org er en ressurs som representerer en stor virtuell klynge av NTP-servere for millioner av brukere. Per 29. desember 2010 er 2078 servere registrert i pool.ntp.org. Det er mulig å velge regionale servere.
  • ntp.mobatime.ru - siden 2005, en offentlig gratis NTP-server Mobatime av det første stratumet (Russland, St. Petersburg).
  • time.bakulev.ru - offentlig gratis NTP-server av det første stratumet (Russland, Moskva).

Wikimedia Foundation. 2010.

Se hva "NTP" er i andre ordbøker:

    NTP- er en initialisme på tre bokstaver som kan stå for: Innhold 1 Databehandling 2 Politikk 3 Vitenskap 3.1 Kjemi 3.2 Medisin … Wikipedia

    NTP-forkort. normal temperatur og lufttrykk: tidligere betegnelse for STP * * * NTP forkortelse. normal temperatur og trykk. * * * …Universalium

    NTP- NTP, Abk. for Network Time Protocol...Universal-Lexikon

    NTP- (Network Time Protocol) (Internett) protokoll som planlegger datamaskinens interne klokke med atomklokkene eller radioklokkene på Internett ... Engelsk moderne ordbok

    NTP-forkort. normal temperatur og lufttrykk: tidligere betegnelse for STP … English World dictionary

    NTP- Cette page d'homonymie répertorie les différents sujets et articles partageant un même nom. Sigles d’une seule lettre Sigles de deux lettres > Sigles de trois lettres Sigles de quatre lettres … Wikipédia en Français

    NTP

    Ntp- Abkürzung NTP steht for: Network Time Protocol, en Protokoll for Zeitsynkronisering mellom Computern Normal Temperature and Pressure, die engelske Bezeichnung for die physikalischen Normalbedingungen Nukleosidtriphosphat in der… … Deutsch Wikipedia

    NTP- Forkortelse for nukleosid 5′ trifosfat. * * * narkotiske behandlingsprogram; Nasjonalt toksikologiprogram; nitroprussid; ikke-trombopenisk purpura; normal temperatur og trykk; 5' nukleotidase; natriumnitroprussid * * * NTP abbr normal… … Medisinsk ordbok


Tidssynkronisering er en viktig oppgave, selv om ikke mange har tenkt på det. Vel, hva er galt med at tiden løper avgårde på en server? Visste du at mange klokkeproblemer påvirker protokoller knyttet til kryptografi? Av denne grunn i Active Directory En klokkeforskjell på mer enn 5 minutter vil forårsake Kerberos-autentiseringsproblemer.

Timenivåer. Lag.

For å forstå NTP-enheten må du vite om konseptet lag eller stratum. Autoritative tidskilder som GPS-satellitter, cesium atomklokker, WWVB radiobølger - alt dette stratum 0. De er autoritative på grunnlag av at de har en måte å opprettholde svært nøyaktig tidtaking på. Du kan selvfølgelig bruke en vanlig kvartsklokke, men når du vet at det er lett å miste 15 sekunder med dem i løpet av en måned, er det bedre å ikke bruke dem som et mål for tid. Stratum 0 Dette er når et sekund ikke er tapt på 300 000 år!

Datamaskiner som direkte (ikke over nettverket!) tar tid fra stratum 0- Dette lag 1. Siden det alltid er forsinkelser på grunn av signaloverføring og kostnader for innstilling av tid, datamaskiner lag 1 ikke så nøyaktig som stratum 0, men i det virkelige liv forskjellen når et par mikrosekunder (1 μs = 10 -6 s), som er et helt akseptabelt avvik.

Det neste nivået av datamaskiner tar tid over nettverket fra lag 1- dette er... trommerulle... intriger... lag 2! Igjen på grunn av forskjellige forsinkelser (nettverksforsinkelser helt sikkert), lag 2 litt bak lag 1 og sikkert fra stratum 0. I praksis er dette en forskjell fra noen få mikrosekunder (1 μs = 10 -6 s) til flere millisekunder (1 ms = 10 -3 s). Mange vil ikke lenger synkronisere med laget lag 2.

Som det fremgår av diagrammet, lag 4 tar tid fra en overordnet lag 3. lag 5lag 4 og så videre. lag 16 regnes som det laveste laget og tiden telles der usynkronisert.

For å synkronisere tid med NTP, må du først stille inn tiden manuelt. Det må ikke være en forskjell på mer enn 1000 sekunder mellom din eksakte tid og klokken. Hvis tidsserveren du bruker ligger i mer enn 1000 millisekunder (1 sekund), vil den bli ekskludert fra listen og andre vil bli brukt i stedet. Denne mekanismen lar deg filtrere ut dårlige tidskilder.

Tid klient.

I filen /etc/ntp.conf er serverlinjene viktige for klienten. Det kan være flere av dem – opptil 10 stk!

Hvor mye å legge til? Husk:

  • Hvis du bare har én server (en linjeserver), så hvis denne serveren begynner å lyve, vil du blindt følge den. Hvis tiden hans renner ut med 5 sekunder og du løper etter ham.
  • Hvis 2 servere legges til (2 serverlinjer), vil NTP merke dem begge som falske ticker. Hvis en av dem lyver, så kan ikke NTP forstå hvem som lyver, siden det ikke er beslutningsdyktig.
  • Hvis 3 eller flere tidsservere legges til, kan en løgner identifiseres falske ticker. Hvis det er 5 eller 6 tidsservere, kan du finne 2 løgnere falske ticker. Hvis det er 7 eller 8 servere, så 3 falske ticker. Hvis det er 9 og 10 servere, så 4 falske ticker.

NTP Pool-prosjekt.

Det er et prosjekt kalt NTP Pool, hvor adressen pool.ntp.org/zone/ru/ kan finne tidsservere anbefalt for russiske brukere.

server 0.ru.pool.ntp.org
server 1.ru.pool.ntp.org
server 2.ru.pool.ntp.org
server 3.ru.pool.ntp.org

Operativsystemer som Debian og Ubuntu tilbyr brukerne sine egne tidsservere.

server 0.debian.pool.ntp.org
server 1.debian.pool.ntp.org
server 2.debian.pool.ntp.org
server3.debian.pool.ntp.org

server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org

Hvis du kjører kommandoen ntpq -pn på din Linux-datamaskin som bruker NTP

Remote refid st når meningsmålingsrekkevidde forsinkelse offset jitter =========================================== ============================================+93.180.6.3 77.37.134.150 2 u 62 1024 377 53.658 -0.877 1.174 +85.21.78.23 193.190.230.65 2 u 1027 1024 377 54.651 0.167 1.531 1.801 * .24 2 u 940 377 52.796 -0.143 1.001 +91.206.16.3 194.190.168.1 2 u 258 1024 377 93.882 -0.680 2.196 -91.189.94.4 193.79.237.14 2 u 596 1024 377 100.219 1.562 1.482

Hva sier kolonnenavnene:

  • fjernkontroll- eksterne servere som du synkroniserer tid med.
  • refid- overlegent stratum for denne serveren.
  • st- stratumnivå. Fra 0 (ikke tilgjengelig for oss) til 16 (ikke ønskelig for oss). Ideell - 2.
  • t- tilkoblingstype. " u" - unicast eller manycast," b" - kringkasting eller multicast," l"lokal referanseklokke", s"- symmetrisk knute," EN" - manycast server, " B" - kringkastingsserver," M" - multicast-server.
  • når- tidspunktet da serveren sist svarte oss. Parameteren viser tallet i sekunder, men kan vises i minutter hvis tallet er med m eller i timer hvis h.
  • avstemming- avstemningsfrekvens. Minimum 16 sekunder, maksimalt 32 timer. Tallet må være 2n. Vanligvis viser denne parameteren enten 64 sekunder eller 1024.
  • å nå- 8 bits av en oktett som indikerer status for kommunikasjon med en ekstern tidsserver: vellykket eller mislykket. Hvis bitene er satt, er det vellykket, ellers er det en feil. Verdien 377 er binær 0000 0000 1111 1111.
  • forsinkelse- verdien i millisekunder viser tiden mellom sending og mottak av svar (tur-retur tid - RTT).
  • offset- forskyvningen i millisekunder mellom deg og tidsserverne. Kan være et positivt eller negativt tall.
  • jitter- den absolutte verdien i millisekunder som indikerer standardavviket til offset.

Det er et symbol foran IP-adressen til NTP-serveren - dette er tellekode. Slags tellekode:

  • " " - forkastet som ugyldig. For eksempel er det ingen forbindelse med ham eller han er offline, han er av for høy rang og tjener ikke folk som deg.
  • "x"- avvist av skjæringsalgoritmen. Skjæringsalgoritmen utarbeider en liste over kandidatpartnere som kan bli synkroniseringskilder og beregner et konfidensintervall for hver av dem.
  • "." - forkastet på grunn av bordoverløp.
  • "-" - forkastet av klyngealgoritmen. Klyngealgoritmen sorterer listen over kandidater etter lag og synkroniseringsavstandskoder.
  • "+" - serveren slås på av "kombineringsalgoritmen". Denne serveren er en utmerket kandidat hvis din nåværende tidsserver begynner å svikte deg.
  • "#" - Serveren er en utmerket alternativ tidsserver. Serveren med # kan bare sees hvis du har mer enn 10 serveroppføringer i /etc/ntp.conf
  • "*" - gjeldende tidsserver. Dens avlesninger brukes til å synkronisere klokken.
  • "o"- Puls per sekund (PPS) server. Dette betyr vanligvis at den aktuelle tidsserveren bruker tidskilder som GPS-satellitter og andre presise tidssignaler. Hvis tegnet O, vil andre typer tallkode ikke lenger vises.

I felt refid kan ha følgende verdier:

  • IP-adresse - adressen til den eksterne tidsserveren.
  • .ACST.- NTP mangecast-server.
  • .ACTS.- Automated Computer Time Service fra American National Institute of Standards and Technology.
  • .AUTH. - autentiseringsfeil.
  • .AUTO - feil i autotastsekvenser.
  • .BCST.- NTP kringkastingsserver.
  • .CHU.- Kortbølgeradiomottaker fra stasjonen CHU i Ottawa, Ontario, Canada.
  • .CRYPT. - Autokey-protokollfeil.
  • .DCFx.- LF radiomottaker fra stasjon DCF77 i Mainflingen, Tyskland.
  • .NEKT.- Tilgang nektet.
  • .GAL.- Europeisk Galileo satellittmottaker.
  • .GOES.- Amerikansk geostasjonær operasjonell miljøsatellittmottaker.
  • .GPS.- American Global Positioning System-mottaker.
  • .HBG.- LF radiomottaker fra HBG stasjon i Prangins, Sveits.
  • .INIT.- Peer-tilknytning initialisert.
  • .IRIG.- Inter Range Instrumentation Group tidskode.
  • .JJY.- LF-radiomottaker fra JJY-stasjonen i Mount Otakadoya, nær Fukushima eller Mount Hagane på Kyushu Island, Japan.
  • .LFx.- Vanlig LF radiomottaker.
  • .LOCL - lokal vertsklokke.
  • .LORC.- LF radiomottaker fra Long Range Navigation (LORAN-C).
  • .MCST.- NTP multicast-server.
  • .MSF.- Anthorn radiostasjon nær Anthorn, Cumbria.
  • .NIST.- American National Institute of Standards and Technology.
  • .PPS.- klokke Puls per sekund.
  • .PTB.- Physikalisch-Technische Bundesanstalt fra Brunswick og Berlin, Tyskland.
  • .RATE. - NTP-avstemningsgrensen er overskredet.
  • .STEP - endre NTP-trinnet. Partiskhet offset mindre enn 1000 millisekunder, men mer enn 125 millisekunder.
  • .TDF.- LF radiomottaker fra TéléDiffusion de France-stasjonen i Allouis, Frankrike.
  • .TIME.- Tidsavbrudd for NTP-tilknytning.
  • .USNO.- United States Naval Observatory.
  • .WWV.- HF-radiomottaker fra WWV-stasjon i Fort Collins, Colorado, USA.
  • .WWVB.- LF-radiomottaker fra WWVB-stasjon i Fort Collins, Colorado, USA.
  • .WWVH.- HF-radiomottaker fra WWVH-stasjonen i Kekaha, på øya Kauai på Hawaii, USA.

Først, bli kvitt ideen om hvordan du kan få tid fra lag 1, sier de at de er nærmest det nøyaktige tidspunktet. De er nærmere den mest nøyaktige tiden på planeten, men de er selv overbelastet og har høye RTT-forsinkelser for vanlige servere. Finn heller en normal lag 2 og ikke bekymre deg for det. Ikke glem at vi snakker om mikrosekunder og millisekunder, som er ganske nok i det vanlige livet.

For det andre, husk at det ikke alltid er ideelt å koble til nærmeste tidsserver. Det som er viktigere er ikke den territoriale nærheten, men nivået av stratum. NTP Pool-prosjektet publiserer en liste over bare tier-servere lag 1 Og lag 2 og det er bedre å ta opptil 10 tidsservere fra denne listen, noe som vil være helt fantastisk.

For det tredje, hvis du er en enkel hjemmebrukerklient, vil serverne som anbefales for deg i operativsystemet ditt være ideelt alternativ, som ikke krever unødvendige bevegelser.

For store kontorer vil det beste alternativet være å sette opp sin egen tidsserver for arbeidsdatamaskiner. Denne serveren vil motta nøyaktig tid fra Internett-tidsservere og gi den lokale datamaskiner. På Debian- og Ubuntu-servere er det bare å fjerne kommentaren

Begrens 192.168.0.0 maske 255.255.0.0 nomodify notrap

i ntpd daemon konfigurasjonsfilen - /etc/ntp.conf

Brukere fra 192.168/16-nettverket vil kunne ta nøyaktige klokkeavlesninger fra serveren din. For interne Linux-baserte servere som ikke er tidsservere og som er engasjert i sine egne oppgaver, i stedet for å kjøre ntpd-daemonen i klientmodus, er det nok å spesifisere det i filen /etc/cron.daily/syncntpd. Det anbefales at du leser forskjellene mellom ntpdate og ntp og bestemmer selv.
#!/bin/sh
/usr/sbin/ntpdate IP.address.of.your.server > /dev/null 2>&1
utgang 0

og en gang om dagen, takket være ntpdate-kommandoen, vil tidssynkronisering utføres. For å unngå misforståelser, ikke vær lat før du implementerer en tidsserver og synkroniserer alt via NTP-protokollen – still inn riktig tid manuelt på alle servere og arbeidsstasjoner tilgjengelig for deg. Hvis den usynkroniserte tiden din er for forskjellig fra den riktige, kan du skape mange unødvendige problemer i begynnelsen.

For det fjerde har ikke NTP noe å gjøre med hvilket land og hvilke tidssoner som brukes og hvordan overgangen til sommer- og vintertid skjer og om en slik overgang gjøres i et gitt land. Dette ansvaret ligger hos operativsystemet, som du må oppdatere dersom det skjer endringer i urmakeriet i landet. På Debian- og Ubuntu-systemer er tzdata-pakken ansvarlig for dette og må være oppdatert.

For det femte er det bedre å ikke kjøre NTP-serveren på et høyt belastet system.

MSK-IX NTP Server er en offentlig tidsserver som støttes av MSK-IX. Den nøyaktige tidsserveren er designet for å synkronisere de interne klokkene til datamaskiner og nettverksutstyr (servere, rutere, smarttelefoner, etc.) med referansekilden ved hjelp av NTP-protokollen.

MSK-IX NTP-server tilhører det høyeste nivået av nøyaktighet (Stratum One Time Servers) i det hierarkiske systemet av tidsnivåer. Det globale signalet brukes som et referansetidssignal. satellittsystemer navigasjon GLONASS (prioritet) og GPS.

MSK-IX NTP Server er implementert som en gruppering av servere lokalisert i Moskva, St. Petersburg, Jekaterinburg og Novosibirsk. applikasjon nettverksteknologi anycast sikrer høy pålitelighet og rask systemrespons over hele landet.

MSK-IX-servere er også inkludert i den internasjonale utvalget av NTP-servere POOL.NTP.ORG, mye brukt i operativsysteminnstillinger.

Hvordan begynne å bruke NTP-servertjenesten?

Bruk følgende parametere når du konfigurerer maskinvaren:

Server navn ntp.msk-ix.ru
IPv4-adresse 194.190.168.1
IPv6-adresse 2001:6d0:ffd4::1

Hvordan etablere peering med MSK-IX NTP-servernettverket?

For å forkorte nettverksruten til MSK-IX NTP-serveren, bruk ruteservertjenesten eller etablere direkte peering med MSK-IX DNS Cloud-nettverket. Peer-to-peer interaksjon etableres ved tilleggssøknad innenfor rammen av kontrakten for tilknytning til MSK-IX uten tilleggsbetaling.

God ettermiddag, gjester og faste lesere. Jeg går gradvis fra det grunnleggende til et mer dyptgående studium av Linux. I dag vil jeg vurdere drift av ntp-protokollen, samt innstilling tidsserver på Linux(ntp server). Så la oss starte med teorien.

NTP-protokoll

Network Time Protocol (NTP)- en nettverksprotokoll for synkronisering av datamaskinens interne klokke ved bruk av nettverk med variabel latens (les "kanalbredde"/kvalitet).

NTP brukes til sitt arbeid UDP-protokoll og port 123.

Gjeldende protokollversjon - NTP 4. NTP bruker et hierarkisk system "timenivåer"(de kalles også Stratum). Nivå 0 (eller stratum 0)- dette er vanligvis enheter som er atomklokker (molekylære, kvanteklokker), GPS-klokker eller radioklokker. Enhetsdata publiseres vanligvis ikke i verdensomspennende nettverk, og koble direkte til nivå 1 tidsservere via RS-232-protokollen (indikert med gule piler i illustrasjonen). Nivå 1 synkronisert med høypresisjonsklokke nivå 0, fungerer vanligvis som kilder for servere nivå 2. Nivå 2 synkronisert med en av maskinene nivå 1, og synkronisering med servere på ditt nivå er også mulig. Nivå 3 fungerer på samme måte som den andre. Vanligvis publiseres servere på nivå to og under på nettverket. NTP-protokoll støtter opptil 256 nivåer. Jeg vil også merke meg at servere på nivå 1 og 2, og noen ganger til og med 3, ikke alltid er åpne for offentlig tilgang. Noen ganger, for å synkronisere med dem, må du sende en forespørsel via e-post til domeneadministratorer.

Hvorfor er det en begrensning på tilgang til servere? Med overgangen til hvert nivå øker feilen i forhold til primærserveren litt, men det totale antallet servere øker og derfor .

Tilordne en NTP-server på det lokale nettverket

Hvorfor trenger vi kanskje en NTP-server? For eksempel er det tjenester i operativsystemer som kan avhenge av synkronisert tid. Det mest fremtredende eksemplet på slike tjenester er Kerberos-autentiseringsprotokollen. For at det skal fungere, er det nødvendig at på datamaskiner som åpnes ved hjelp av denne protokollen, avviker systemtiden med ikke mer enn 5 minutter. I tillegg gjør nøyaktig tid på alle datamaskiner det mye enklere å analysere sikkerhetslogger når man undersøker sikkerhetshendelser. lokalt nettverk.

Driftsmoduser for NTP-server/klient

Klient server

Denne modusen er den desidert mest brukte på Internett. Arbeidsopplegget er klassisk. Klienten sender en forespørsel, som serveren sender et svar til innen en viss tid. Klienten konfigureres ved hjelp av serverdirektivet i konfigurasjonsfilen, hvor DNS-navnet til tidsserveren er spesifisert.

Symmetrisk aktiv/passiv modus

Denne modusen brukes hvis tidssynkronisering utføres mellom et stort antall peer-maskiner. I tillegg til at hver maskin synkroniserer med en ekstern kilde, synkroniserer den også med sine naboer (peers), og fungerer som klient og tidsserver for dem. Så selv om en maskin "mister" en ekstern kilde, vil den fortsatt kunne få nøyaktig tid fra sine naboer. Naboer kan jobbe i to moduser - aktiv og passiv. Arbeider i aktiv modus, sender maskinen selv tiden sin til alle nabomaskiner som er oppført i peers-delen av ntp.conf-konfigurasjonsfilen. Hvis naboer ikke er angitt i denne delen, anses maskinen for å fungere i passiv modus. For å forhindre at en angriper kompromitterer andre maskiner ved å utgi seg for å være en aktiv kilde, må autentisering brukes.

Kringkastingsmodus

Denne modusen anbefales for bruk i tilfeller der et lite antall servere betjener et stort antall klienter. Når du opererer i denne modusen, sender serveren med jevne mellomrom pakker ved å bruke subnettets kringkastingsadresse. En klient konfigurert til å synkronisere på denne måten mottar serverens kringkastingspakke og synkroniserer med serveren. En funksjon i denne modusen er at tiden leveres innenfor ett undernett (begrenser kringkastingspakker). I tillegg må autentisering brukes for å beskytte mot angripere.

Multicast-modus

Denne modusen ligner på mange måter kringkasting. Forskjellen er at multicast-adresser til klasse D-nettverk i IP-adresserommet brukes til å levere pakker. For klienter og servere er adressen til multicast-gruppen spesifisert, som de bruker for tidssynkronisering. Dette gjør det mulig å synkronisere grupper av maskiner plassert i forskjellige undernett, forutsatt at ruterne som kobler dem til støtter IGMP-protokollen og er konfigurert til å overføre multicast-trafikk.

Manycast-modus

Denne modusen er en nyvinning i den fjerde versjonen av NTP-protokollen. Det innebærer at klienten søker etter Manycast-servere blant nettverksnaboene, mottar tidsprøver fra hver av dem (ved hjelp av kryptografi) og, basert på disse dataene, velger de tre "beste" Manycast-serverne som klienten vil synkronisere med. Hvis en av serverne svikter, oppdaterer klienten automatisk listen.

For å overføre tidsprøver bruker klienter og servere som opererer i multicast-modus multicast-gruppeadresser (klasse D-nettverk). Klienter og servere som bruker samme adresse danner samme tilknytning. Antall assosiasjoner bestemmes av antall multicast-adresser som brukes.

Tid i Linux

Jeg vil kort fortelle deg hvilken tid som eksisterer i Linux og hvordan du setter den. I Linux, som i andre OS, er det 2 ganger. Den første - maskinvare , noen ganger kalt Sanntidsklokke, forkortet ( RTC) (aka BIOS-klokke) de er vanligvis assosiert med en oscillerende kvartskrystall som er nøyaktig til noen få sekunder per dag. Nøyaktigheten avhenger av ulike svingninger som omgivelsestemperatur. Den andre klokken er intern programklokke , som oppstår kontinuerlig, inkludert under avbrudd i systemdriften. De er gjenstand for variasjoner på grunn av stor systembelastning og avbruddsforsinkelse. Imidlertid leser systemet vanligvis maskinvareklokken ved oppstart og bruker deretter systemklokken.

dato og tid operativsystem satt ved oppstart basert på verdi maskinvare klokke, og tidssoneinnstillinger. Tidssoneinnstillinger er hentet fra filen /etc/localtime. Denne filen er en lenke (men oftere en kopi) av en av filene i katalogstrukturen /usr/share/zoneinfo/.

Linux-maskinvareklokker kan lagre tid i formatet UTC(analogt med GMT), eller gjeldende territorialtidspunkt. Den generelle anbefalingen om hvilken tid du skal stille inn (?) er følgende: hvis flere operativsystemer er installert på datamaskinen og ett av dem er Windows, må du bruke gjeldende klokkeslett (siden Windows tar tiden fra BIOS/CMOS) og anser det som lokalt). Hvis det kun brukes operative UNIX-systemer familie, er det tilrådelig å lagre tiden i BIOS i UTC-format.

Når operativsystemet starter, er operativsystemklokken og BIOS-klokken helt uavhengige. Systemkjernen synkroniserer systemklokken med maskinvareklokken hvert 11. sekund.

Etter en tid kan det være en forskjell på flere sekunder mellom maskinvare- og programvareklokkene. Hvilke klokker holder riktig tid? Verken det ene eller det andre før vi setter det opp tidssynkronisering.

Merk:

Linux-kjernen lagrer og beregner alltid tid som antall sekunder siden midnatt 1 januar 1970 årets, uavhengig av om klokken er satt til lokal eller universell tid. Konvertering til lokal tid gjøres under forespørselsprosessen.

Siden antall sekunder siden 1. januar 1970 UTC er lagret som et signert 32-bits heltall (dette er sant på Linux/Intel-systemer), vil klokken din slutte å fungere en gang i 2038. Linux har ikke et år 2000-problem, men det har et år 2038-problem. Heldigvis vil alle Linux-systemer kjøres på 64-bits systemer. Et 64-bits heltall vil inneholde klokken frem til ca. 292271-million.

NTP-server Linux

Introduksjon

Det er mange implementeringer for tidssynkronisering for Linux OS. De mest kjente er Xntpd (NTP versjon 3), ntpd (NTP versjon 4), Crony og ClockSpeed. I vårt eksempel vil vi bruke ntpd-serveren.

ntpd-demonen er både en tidsserver og en klient, avhengig av innstillingene til konfigurasjonsfilen /etc/ntpd.conf (noen ganger /etc/ntp.conf), kan daemonen "motta" tid fra eksterne servere og "distribuere" tid til andre verter.

Generell tidssynkroniseringskrets på det lokale nettverket er som følger: du må ha 1 eller 2 servere med tilgang til det globale nettverket, som vil motta tid fra Internett. Alle datamaskiner på det lokale nettverket er synkronisert med de angitte serverne som mottar tid fra Internett.

Installerer ntpd

Faktisk, installerer demonen koker ned til å installere følgende pakker: ntp(pakke inkludert selve daemonen), ntpdate(verktøyet for manuell tidssynkronisering er utdatert), ntp-doc(pakkedokumentasjon), i noen distribusjoner må du installere det samme ntp-utils(diagnostiske verktøy), i noen er de inkludert i ntp-pakken. Jeg beskrev hvordan du installerer programmer på Linux i. Etter å ha installert pakken, i de fleste distribusjoner, vil daemonen allerede være konfigurert som en ntp-klient (for eksempel var dette tilfellet i Debian). Følgelig ble hovedkonfigurasjonsfilene automatisk opprettet: /etc/ntp.conf og /var/lib/ntp/ntp.drift, og daemonen ble automatisk lansert.

Før du setter opp daemonen til å synkronisere med omverdenen, vil jeg anbefale å sette gjeldende systemdato til en verdi så nær sanntid som mulig. Stille inn datoen i Linux produsert av kommandoen: dato MMDDhhmmCCYY.ss, hvor MM - måned, DD - dag i måneden, tt - timer, mm - minutter, CCYY - 4 sifre i året, ss - sekunder. Samtidig verdiene CCYY.ss det er ikke nødvendig å indikere.

Som du kan se, vil den angitte kommandoen sette gjeldende dato og klokkeslett til 27. desember 2010, 20:06:30. dato kommando uten parametere, vis gjeldende systemtid. Denne kommandoen har en haug med parametere, som kan finnes i mann dato.

Det er også nødvendig å konfigurere maskinvareklokken og tidssonen riktig. Som nevnt ovenfor settes tidssonen ved å kopiere nødvendig fil soner fra katalogen /usr/share/zoneinfo/å lagre /etc/localtime:

Ntp-server:~# cp /usr/share/zoneinfo/Europe/Moskva /etc/localtime

Maskinvare Jeg stilte klokken på UTC:

# cat /etc/sysconfig/clock | grep UTC # UTC=true indikerer at klokken er satt til UTC; UTC=true ntp2-server:~# cat /etc/default/rcS | grep UTC UTC=ja

Det første eksemplet spesifiserer en konfigurasjonsfil som definerer bruken av UTC for RH, det andre for Deb-distribusjoner.

I tillegg til å angi innstillingene for å bruke UTC-tid, må du spesifisere maskinvare tid. (i de fleste tilfeller er dette ikke nødvendig, fordi den angitte systemtiden er uunngåelig synkronisert med maskinvaren, av kjernen). Men likevel, hvis du har lyst til å gjøre det... hwclock kommando leser og stiller maskinvareklokken basert på parameterne som sendes til den. De tilgjengelige alternativene er beskrevet i kommandoens manualside. Her er noen eksempler på bruk av hwclock:

Ntp-server# hwclock # leser tid fra maskinvareklokke ntp-server# hwclock --systohc --utc # setter maskinvareklokketid til # UTC basert på systemtid ntp-server# hwclock --systohc # setter maskinvareklokketid # til lokal tid basert på systemtid ntp-server# hwclock --set --date "22 Mar 2002 13:17" # setter maskinvareklokketiden # til den spesifiserte strengen

Et annet alternativ for å endre tiden i maskinvareklokken er å få tilgang til BIOS når systemet starter opp. Siden OS-tiden er uavhengig av maskinvareklokken, vil eventuelle endringer i BIOS bli tatt i betraktning neste gang du starter opp.

Nå som vi har alt forberedt og installert, la oss gå videre til på en byggeplass.

Administrere ntpd-demonen

Kontroll ntpd daemon ikke forskjellig fra å kontrollere andre demoner. Start eller start ntpd-tjenesten på nytt:

#/etc/init.d/ntp start #/etc/init.d/ntp omstart

Stoppe:

#/etc/init.d/ntp stopp

#/bin/kill `cat /var/run/ntpd.pid`

Daemonen har følgende startparametere:

P - PID-fil,
-g - tillate overgang til stort tidshopp
-c - konfigurasjonsfil
-q - tvinge frem manuell synkronisering

Sette opp ntpd-serveren

Først av alt anbefaler jeg deg å endre daemon-startparametrene i følgende konfigurasjonsfil:

Ntp-server:~# cat /etc/default/ntp NTPD_OPTS="-g"

# cat /etc/sysconfig/ntpd # Parametere for NTP-daemon. # Se ntpd(8) for flere detaljer. .... # Spesifiserer tilleggsparametere for ntpd. NTPD_ARGS="-g"

Denne parameteren lar deg synkronisere klokken, selv om det er veldig stor tidsforskjell.

Så, som jeg sa, konfigurasjonsinformasjonen ntpd daemon er i filen /etc/ntp.conf. Filsyntaksen er standard, som i mange andre konfigurasjoner: tomme linjer og linjer som starter med "#"-tegnet ignoreres. Her er et enkelt eksempel:

Ntp-server:~# cat /etc/ntp.conf server ntplocal.example.com foretrekker server timeserver.example.org server ntp2a.example.net driftfile /var/db/ntp.drift

Parameter server spesifiserer hvilke servere som skal brukes til synkronisering, en på hver linje. Hvis serveren er gitt med argument foretrekker, Hvordan ntplocal.example.com, da gis denne serveren preferanse fremfor de andre. Svaret fra den foretrukne serveren vil bli forkastet hvis det avviker vesentlig fra svarene fra andre servere, ellers vil det bli brukt uten hensyn til andre svar. Argument foretrekker Brukes vanligvis for NTP-servere som er kjent for å være svært nøyaktige, for eksempel de som bruker dedikert presisjonstidsutstyr.

Parameter driftfil spesifiserer filen som brukes til å lagre systemets klokkefrekvensforskyvning. Så vidt jeg forstår, lagrer denne filen permanent en eller annen verdi, som dannes basert på analysen av tidligere tidsjusteringer, og hvis eksterne tidskilder blir utilgjengelige, så skjer tidsjusteringen i henhold til verdien fra filen drift. Den må ikke endres av andre prosesser. Og før du indikerer av denne filen i konfigurasjonen - filen må opprettes.

Som standard vil NTP-serveren være tilgjengelig for alle verter på Internett. Parameter begrense i fil /etc/ntp.conf lar deg kontrollere hvilke maskiner som kan få tilgang til serveren din. Hvis du vil hindre alle maskiner fra å få tilgang til NTP-serveren din, legg til følgende linje i filen /etc/ntp.conf:

begrense standard ignorering

Hvis du vil tillate synkroniser bare klokken med serveren din maskiner på nettverket ditt, Men forby dem konfigurere serveren eller vær like deltakere i tidssynkronisering, og legg til linjen i stedet for det ovenfor:

begrense 192.168.1.0 maske 255.255.255.0 nomodify notrap

der 192.168.1.0 er IP-adressen til nettverket ditt, og 255.255.255.0 er nettverksmasken. /etc/ntp.conf kan inneholde flere restriksjonsdirektiver.

For korrekt og mer nøyaktig drift av daemonen, er det tilrådelig å velge servere på nivået - fra stratum 2 (du kan selvfølgelig stratum1, men du må kaste bort tid på å søke etter en slik server) og fra det valgte stratumet 2 de som det er en minste "avstand" til. Vanligvis kan slike servere leveres av Internett-leverandøren din. Antallet utvalgte servere er ønskelig - mer enn 2 til 3, jo flere jo bedre, men innenfor rimelige grenser. Hvis du er for lat til å velge beste servere, så kan du ta listen over åpne andrenivåservere herfra: http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers.

Velge en liste over referanse NTP-servere

Vi går til den angitte adressen (http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers) og velger en liste over innledende servere. Fra denne listen velger vi servere som oppfyller kravene våre ved å analysere kommandoutgangen ntpdate. Når du utfører kommandoen, brukes følgende syntaks:

ntpdate-parametere servers_separated by_space

For å sikre at spørringen vår ikke gjør endringer i systemet, må vi bruke parameteren -q, som spesifiserer bruken av spørringen uten å gjøre endringer. Det er også mulig å bruke -d-bryteren, som indikerer at kommandoen vil bli utført i feilsøkingsmodus, med utdata av tilleggsinformasjon, uten å gjøre reelle endringer (med denne bryteren vises en haug med annet søppel :), som vi trenge dette øyeblikket ikke nødvendig). Andre parametere kan finnes i man 8 ntpdate. Fra den angitte koblingen valgte jeg alle Open Access-servere som ligger i Russland (RU) + den som ble levert av leverandøren og kjørte kommandoen, det viste seg noe slikt:

Ntp-server:~# ntpdate -q ntp2.ntp-servers.net ntp1.vniiftri.ru ntp2.vniiftri.ru ntp4.vniiftri.ru ntp0.ntp-servers.net ntp1.ntp-servers.net ntp.3.ru ntp.corbina.net server 88.147.255.85, stratum 1, offset 0.006494, forsinkelse 0.09918 server 62.117.76.142, stratum 1, offset 0.002552, forsinkelse 0.0620 1, 7610 offset 1. 0,0031 47, forsinkelse 0,06918 server 62.117.76.140, stratum 1, offset 0.004823, forsinkelse 0.07350 server 88.147.254.228, stratum 1, offset -0.002355, forsinkelse 0.12030 server 88.147.254.229, stratum 0,00 forsinkelse 1,00. 117.76.13 8, stratum 1, offset 0,005331, forsinkelse 0,07401 server 195.14 .40.141, stratum 2, offset 0.002846, forsinkelse 0.07188 13. jan 19:14:09 ntpdate: juster tid server 62.117.76.141 offset 0.003147 sek.

I eksemplet utstedte serverne våre stratum1-nivået, som er gode nyheter (bortsett fra leverandørens server), offset er tidsforskjellen med denne serveren i sekunder, forsinkelse er synkroniseringsforsinkelsen i sekunder. Vanligvis, b OM Større nøyaktighet oppnås ved bruk av servere som har lav ventetid for overføring av pakker over nettverket. For å identifisere dette kan du bruke . Følgelig, velg først de med kortere responstider, og fra dem de med færre hopp. For ikke å kaste bort tid, vil jeg bruke alle de angitte serverne og legge dem inn i konfigurasjonsfilen. Totalt sett, med kjennskap til alt ovenfor, vil jeg beskrive den resulterende filen min /etc/ntp.conf:

Ntp-server:~# cat /etc/ntp.conf # Lokale nettverksservere (kommentert ut, ikke brukt - det er én server på nettverket) #server 192.168.0.2 #server 192.168.0.5 # Internett-servere server ntp2.ntp- servers.net server ntp1.vniiftri.ru server ntp2.vniiftri.ru server ntp4.vniiftri.ru server ntp0.ntp-servers.net server ntp1.ntp-servers.net server ntp3.vniiftri.ru server ntp.corbina.net Serverfiler driftfile /var/lib/ntp/ntp.drift loggfil /var/log/ntpstats # begrenser tilgang til serveren: # som standard ignorerer vi alt begrense standard ignorer # localhost uten parametere - det betyr at alt er tillatt. Parametrene gjelder kun for forbud. limit 127.0.0.1 # Følgende beskriver serverne som vi synkroniserer med på det lokale nettverket. # Vi tillater dem alt unntatt feller og forespørsler til oss begrense 192.168.0.2 noquery notrap limit 192.168.0.5 noquery notrap # for lokale vi tillater også alt unntatt feller og modifikasjoner limit 192.168.0.1 maske 255.255.255.0 nomodify tilgang: begrense ntp2.ntp-servers.net begrense ntp1.vniiftri.ru begrense ntp2.vniiftri.ru begrense ntp4.vniiftri.ru begrense ntp0.ntp-servers.net begrense ntp1.ntp-servers.net begrense ntp3.vniiftri limit ntp.corbina.net # og dette er et hack som setter tillitsnivået til serveren (strata) til seg selv lik 3 # i et nøtteskall, jo høyere nivå, jo lavere tall. 0 er atomklokken, #1 er synkronisert med den, 2 er med den første, og så videre. server 127.127.1.1 fudge 127.127.1.1 stratum 3

For en mer dyptgående forståelse og konfigurasjon av serveren, vil jeg beskrive noen ntpd-konfigurasjonsparametere som jeg ikke nevnte::

  • på av auth/monitor/pll/pps/stats - Slå på, slå av driftsmodus:
    • auth- kommuniser med unevnte naboer kun i autentiseringsmodus;
    • Observere- tillate overvåking av forespørsler;
    • pll- tillate innstilling av den lokale klokkefrekvensen via NTP;
    • statistikk- tillate innsamling av statistikk;
  • statistikkloopstats- med hver endring av den lokale klokken, skriver en linje til en fil loopstats;
  • statistikkpeerstats- hver kommunikasjon med en nabo registreres i en logg lagret i en fil peerstats;
  • statistikkklokkestatistikk- hver melding fra den lokale klokkedriveren skrives til en logg lagret i en fil klokkestatistikk;
  • statsdir(katalognavn_med_statistikk)- spesifiserer navnet på katalogen der filer med serverstatistikk vil være plassert;
  • filegen - definerer en algoritme for å generere filnavn, som består av:
    • prefiks- konstant del av filnavnet, satt enten under kompilering eller ved hjelp av spesielle konfigurasjonskommandoer;
    • filnavn- lagt til prefikset uten skråstrek, to prikker er forbudt, kan endres med filnøkkelen;
    • suffiks- generert avhengig av typenavn;
  • begrensenumerisk adresse- setter tilgangsbegrensninger: pakker sorteres og maskeres, kildeadressen tas og sammenlignes sekvensielt, et flagg tas fra den siste vellykkede sammenligningen adgang:
    • ingen flagg- gi tilgang;
    • overse- ignorer alle pakker;
    • noquery- ignorere NTP 6 og 7 pakker (forespørsel og tilstandsendring);
    • ikke modifisere- ignorer NTP 6 og 7 pakker (tilstandsendring);
    • begrenset- betjene kun et begrenset antall klienter fra et gitt nettverk;
    • neida- tjene verten, men ikke synkronisere med den;
  • klientgrensegrense- for flagget begrenset bestemmer det maksimale antallet klienter som betjenes (som standard 3);

Så vi fikk ntpd-server, som synkroniserer med omverdenen, lar deg motta tid for klienter fra det lokale nettverket 192.168.0.1 med en maske på 255.255.255.0, og kan også synkroniseres med den lokale serveren (hvis du avkommenterer flere linjer). Alt vi trenger å gjøre er å sette opp klienter og lære hvordan vi overvåker serveren vår.

Overvåking av ntpd-serveren og synkronisering

Når du har alt satt opp. NTP vil holde tiden synkronisert. Denne prosessen kan observeres ved å bruke kommandoen NTP Query (ntpq):

Ntp-server:~# ntpq -p remote refid st t når poll rekkevidde forsinkelse offset jitter ============================== ================================================== ============ -n3 time1.d6.hsd.PPS. 1 u 34 64 177 70.162 2.375 8.618 +ntp1.vniiftri.r .PPS. 1 u 33 64 177 43.479 -0.020 10.198 *ntp2.vniiftri.r .PPS. 1 u 6 64 177 43.616 -0.192 0.688 +ntp4.vniiftri.r .PPS. 1 u 4 64 177 43,623 0,440 0,546 -n1.time1.d6.hsd .PPS. 1 u 53 64 77 92.865 -11.358 38.346 -ns1.hsdn.org .GPS. 1 u 40 64 177 78.057 -3.292 35.083 -ntp3.vniiftri.r .PPS. 1 u 44 64 77 47.667 2.292 2.611 -scylla-l0.msk.c 192.43.244.18 2 u 62 64 77 41.565 -1.564 28.914

Denne kommandoen med -p-bryteren skriver ut til standard ut en liste over tidskilder med deres egenskaper (de gjenværende kommandoparametrene er i man ntpq). Betydningen av hver kolonne er som følger:

Navnet på den eksterne NTP-serveren. Hvis du spesifiserer -n-bryteren, vil du få serverens IP-adresser i stedet for navn.

Indikerer hvor hver server for øyeblikket får tiden sin fra. Dette kan være et vertsnavn eller noe sånt som .GPS., som indikerer kilden til Global Positioning System.

Stratum (nivå) er et tall fra 1 til 16 som indikerer nøyaktigheten til serveren. En betyr maksimal nøyaktighet, 16 betyr at serveren ikke er tilgjengelig. Nivået ditt vil være lik nivået til den minst nøyaktige eksterne serveren pluss 1.

Intervall mellom avstemninger (i sekunder). Verdien vil endres mellom minimum og maksimum polling rater. I begynnelsen vil intervallet være lite slik at synkronisering skjer raskt. Når klokkene er synkronisert, begynner intervallet å øke for å redusere trafikk og belastning på populære tidsservere.

En oktal representasjon av en 8-bits matrise som gjenspeiler resultatene av de siste åtte forsøkene på å koble til serveren. Biten er satt hvis den eksterne serveren svarte.

Hvor lang tid (i sekunder) som kreves for å motta svar på spørsmålet "hva er klokken?"

Det viktigste feltet. Forskjellen mellom lokal tid og eksterne servere. Etter hvert som synkroniseringen skrider frem, bør denne verdien synke (nærmere null), noe som indikerer at klokken lokal maskin blir mer nøyaktige.

Dispersjon (Jitter) er et mål på statistiske avvik fra offset-verdien (offset-feltet) over flere vellykkede forespørsel-svar-par. En lavere spredningsverdi er å foretrekke fordi den gir mer nøyaktig tidssynkronisering.

Betydningen av tegn før servernavn

x - falsk kilde i henhold til skjæringsalgoritmen;
. - ekskludert fra listen over kandidater på grunn av lang avstand;
- - fjernet fra listen over kandidater av klyngealgoritmen;
+ - inkludert i den endelige listen over kandidater;
# - valgt for synkronisering, men det er 6 beste kandidater;
* - valgt for synkronisering;
o - valgt for synkronisering, men PPS brukes;
plass - for stort nivå, en løkke eller en åpenbar feil;

ntpd tjeneste«smart» og selv luker ut kilder til tid som er for utenfor fornuftens grenser. En tid etter oppstart vil ntpd velge de mest pålitelige datakildene og synkronisere med dem. Listen over referanse NTP-servere vi presenterer blir jevnlig gjennomgått av tjenesten.

Du kan sjekke muligheten for synkronisering lokalt på serveren med kommandoen:

Ntp-server:~# ntpdate -q localhost-server 127.0.0.1, stratum 2, offset -0.000053, forsinkelse 0.02573 server::1, stratum 2, offset -0.000048, forsinkelse 0.02571 14. jan.: 57 justeringstid: nt ::1 offset -0,000048 sek

Fra kommandoutgangen er det klart at serveren vår allerede har blitt stratum 2. Å oppnå dette nivået, det tar litt tid. Kanskje i løpet av de første 10-15 minuttene vil servernivået være høyere.

Riktig drift av ntp-serveren kan også bedømmes fra loggene til ntpd-demonen:

Ntp-server:~# cat /var/log/ntpstats/ntp 13 Jan 20:13:16 ntpd: Lytting på grensesnitt #5 eth0, fe80::a00:27ff:fec1:8059#123 Aktivert 13 Jan 20:13: nr 4 :31:10 ntpd: endring av kjernetidssynkroniseringsstatus 0001 14. jan 14:34:31 ntpd: synkronisert til 88.147.255.85, stratum 1 14. jan 14:36:04 ntpd: synkronisert til 67.147.117 .4117 .4117 jan. 04:36 ntpd: synkronisert til 62.117.76.142, stratum 1 14. jan 15:10:58 ntpd: synkronisert til 62.117.76.140, stratum 1 14. jan 15:17:54 4. janp 15:17:54 ntpd : synkronisert til 62.117.76.140, stratum 1 14 Jan 15:32:14 ntpd: tilbakestilling av tid +13.139105 s

Sette opp netfilter (iptables) for en NTP-server

Etter å ha konfigurert serveren, vil det være en god idé å beskytte den. Vi vet at serveren kjører på port 123/udp, og forespørsler sendes også fra port 123/udp. Etter å ha lest artikkelen og gjort deg kjent med de praktiske, kan du lage regler for filtrering av nettverkstrafikk:

Ntp ~ # iptables-save # typiske iptables-regler for DNS *filter:INPUT DROP :FORWARD DROP :OUTPUT DROP -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate RELATED,ETABLISHED -j ACCEPT -A INPUT -m conntrack --ctstate UVALID -j DROP # tillat lokal nettverkstilgang til NTP-serveren: -A INPUT -s 192.168.1.1/24 -d 192.168.1.1/32 -p udp -m udp --dport 123 -m conntrack - -ctstate NEW -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A OUTPUT -p icmp -j ACCEPT -A OUTPUT -p udp -m udp --sport 32768:61000 -j ACCEPT -A OUTPUT -p tcp - m tcp --sport 32768:61000 -j ACCEPT -A OUTPUT -m conntrack --ctstate RELATED,ETABLISHED -j ACCEPT # tillat NTP-servertilgang til å lage utgående forespørsler -A OUTPUT -p udp -m udp --sport 123 -- dport 123 -m conntrack --ctstate NYTT -j GODKJEN COMMIT

Dette er et typisk eksempel! For å sette iptables-regler for oppgavene og nettverkskonfigurasjonen, må du forstå hvordan nettfilter fungerer i Linux ved å lese artiklene ovenfor.

Sette opp klientmaskiner

For å synkronisere tid på UNIX-maskiner lokalt nettverk, er det tilrådelig å bruke ntpdate-verktøyet, kjøre det flere ganger om dagen, for eksempel hver time. For å gjøre dette må du legge til følgende linje:

0 * * * * /usr/sbin/ntpdate -s

-s-bryteren dirigerer utgangen av kommandoen. Hvis klientmaskiner har et par ekstra megabyte RAM, kan du kjøre ntpd daemon, akkurat som på serveren med følgende konfigurasjon:

Server begrense standard ignorere begrense noquery notrap limit 127.0.0.1 nomodify notrap

Jeg tror alt er klart i denne konfigurasjonen: tidskilden (serveren) er en lokal ntpd-server, nekt tilgang til alle, tillat bare den lokale ntpd-serveren.

På klienter er det også nødvendig å spesifisere riktig i hvilket format som skal lagres tid og velge riktig tidssone.

For å konfigurere Windows NTP-klienten, må du kjøre følgende kommandoer i konsollen:

C:\>nettotid /setsntp: Kommandoen ble fullført. C:\>net stop w32time Windows Time-tjenesten stopper. Windows Time-tjenesten ble stoppet. C:\>net start w32time Windows Time-tjenesten starter. Windows Time-tjenesten ble startet. C:\>nettotid /querysntp Gjeldende SNTP-verdi er: Kommandoen ble fullført.

Konklusjon

Vel, det er det! Volumet av artikkelen viste seg å være enormt... Jeg hadde ikke engang forventet det. La meg oppsummere det ovenstående. I denne artikkelen håper jeg det ble klart for oss hva som er og hvordan en NTP-server fungerer. Vi lærte hvordan du konfigurerer en server og klienter på UNIX- og Windows-maskiner. Med noen få ord er strukturen for tidssynkronisering i et lokalt nettverk som følger: Det er 1,2 eller flere tidsservere i det lokale nettverket, de synkroniserer tiden sin med eksterne kilder i globalt nettverk. Server- og klientinnstillinger er basert på filene /etc/ntp.conf (hovedkonfigurasjonsfilen til ntpd-daemonen), /etc/localtime (den gjeldende tidssonefilen), samt /etc/sysconfig/ntp (for RH) ) og /etc/default /ntp (for Deb) - parameterfiler for daemonstart. For en lokal ntp-server spesifiserer konfigurasjonsfilen eksterne servere for å få tid og gir tilgang for disse serverne ved å bruke limit-parameteren, så vel som for lokale nettverksdatamaskiner, for klienter er tidskilden spesifisert - lokale servere på det lokale nettverket, og forbyr også tilgang for alle unntatt tidskilden på det lokale nettverket. Alle. Takk alle sammen for oppmerksomheten! Jeg blir glad for kommentarer!

  • (artikkelarkiv) beskriver hvordan du kobler GPS til serveren for å organisere din egen Stratum1 nivå eksakt tidsserver.
  • beskriver hvordan du konfigurerer autorisasjon på en ntp-server.

Først, la oss bestemme hvorfor vi trenger å synkronisere tid på utstyr som svitsjer, rutere, brannmurer og så videre.

Dette gjøres først og fremst for å spore ved hjelp av logger når denne eller den hendelsen inntraff. Og du kan forestille deg hvilken nytte loggene vil ha hvis tiden ikke er synkronisert... det stemmer - ingen.

Protokoll NTP fungerer basert på protokoll UDP, gjennom 123 port.

Denne protokollen har et visst hierarki for synkronisering av systemer, med andre ord nivåer.

Nivå 1 er tilordnet et system som er synkronisert med en høypresisjonsklokke, for eksempel GPS.

Et system som vil synkronisere fra nivå 1 vil ha nivå 2, og så videre.

Dermed kan vi bestemme hvor nøyaktig tiden på stasjonen vi er synkronisert med er.

I vår situasjon har vi en maskin på nettverket med presis tid, jeg har den konfigurert basert på FreeBSD, fra denne maskinen vil hovednettverksenheten ta tiden (synkronisere), og dermed bli den viktigste for andre nettverksenheter(i ideologi vil cisco være ntp-mesteren).

Jeg vil merke meg at tid overføres via NTP kun i formatet UTC (Greenwich), hver tidssone konfigureres direkte på maskinvaren.

La oss se på et eksempel på et enkelt NTP-oppsett.

La oss først synkronisere tiden på hovedruteren vår (som vil bli distribuert til andre nettverksenheter For å gjøre dette, gå inn i global konfigurasjonsmodus:

ntp-server 10.0.100.254

hvor 10.0.100.254 i vårt tilfelle er en FreeBSD-maskin som har en nøyaktig tid.

Dette er nok for minimalt oppsett.

La oss nå sjekke om vi var i stand til å koble til tidsserveren og få tid fra den, for å gjøre dette bruker vi kommandoen:

du bør se noe slikt:

Stjernen på motsatt side av ip-en til ntp-serveren vår forteller oss at alt er bra, tilkoblingen er i det minste etablert.

La oss nå se om tiden er synkronisert?

Hvis alt er synkronisert, bør vi se følgende:

Klokken er mottatt, nå må du stille inn tidssonen du trenger der. Vi gjør også følgende i global konfigurasjonsmodus:

klokke tidssone MSK/MSD 3
La oss nå sjekke tiden:

Alt er flott.

La oss gå videre til å sette opp ruteren vår i mastermodus.

For dette oppsettet må vi gjøre denne ruteren til en mester og indikere nivået (i Cisco kalles det stratumnummer), det samme som jeg snakket om i begynnelsen, jeg vil indikere nivå fem.

La oss nå prøve å konfigurere ntp på en annen setterenhet slik at den synkroniseres med hovedruteren vår. Dette gjøres på samme måte som vi setter opp synkronisering med FreeBSD-serveren ovenfor.

ntp server 10.0.100.1 foretrekker

hvor 10.0.100.1 er hovedruteren vår.

foretrekker dette er et nøkkelord som indikerer at denne ntp-serveren er en prioritet (det vil si at du kan spesifisere at du ikke kan synkronisere fra én server, men fra flere, gjøres dette slik at hvis en er utilgjengelig, eller tiden er for forskjellig fra andre, som indikerer hvilke - problemer, enheten kan bytte til en annen tidsserver, og foretrekker gjør denne serveren mer å foretrekke enn andre.)

Vi angir også tidssonen vi trenger.

klokke tidssone MSK/MSD 3

Vi sjekker:

Alt er flott, alt fungerer.

La oss nå se på spørsmålet om sikkerhet.

Til å begynne med, la oss se på problemet med å begrense bruk av ACL-er, hvem som kan synkronisere og hvem som ikke kan.

Alt er ganske standard og gjennomsiktig.

På tidsserveren lager vi den tilsvarende ACL:

tilgangsliste 20 merknad TILGANG til NTP Synctilgangsliste 20 tillatelse 10.0.100.3

La oss nå binde denne tilgangslisten til ntp.

ntp-tilgangsgruppe server-kun 20

Hvis alt er riktig konfigurert, vil kommunikasjon med ntp-serveren bli etablert og synkroniseringen vil lykkes.

Du kan også i tillegg registrere en tilgangsliste på klienter. Hvilke tidsservere kan nås. Dette gjøres på lignende måte:

tilgangsliste 20 merknad TILGANG SYNC til NTP Servtilgangsliste 20 tillatelse 10.0.100.1

Koble tilgangslisten til NTP

ntp-tilgangsgruppe peer 20

La oss nå se på autentiseringsbasert sikkerhet.

Alt er også ganske gjennomsiktig.

Det er nok å legge til følgende til ntp-konfigurasjonen:

ntp-autentiseringsnøkkel 1 md5 15060E1F10243F34 7ntp autentiserentp pålitelig nøkkel 1
Med den første kommandoen setter vi autentiseringsnøkkelen, med den andre aktiverer vi autentisering, og med den tredje angir vi at autentisering skal utføres med den første nøkkelen. Vi konfigurerer dette på hver side (server - klient). Resultatet er et kort introduksjonskurs om å sette opp NTP på Cisco-enheter For feilsøking bruker vi:
ASW-M#debug ntp ?justere NTP-klokkejusteringerautentisering NTP-autentiseringarrangementer NTP-arrangementersløyfefilter NTP sløyfefilterpakker NTP-pakkerparams NTP-klokkeparametererefclock NTP-referanseklokkevelg NTP-klokkevalgsynkronisere NTP-klokkesynkroniseringgyldighet NTP peer clock gyldighetASW-M#debug ntp
Vi slår på alt som er interessant for oss, for eksempel hendelser, synkronisering, auth og ser hva som skjer Hvis vi logger inn på enheten via ssh/telnet, ikke glem ter mon :)


Topp