Hur skiljer sig NTP-tidssynkroniseringsprotokollet från SNTP? NTP - atomklocka på varje tabell Ntp-protokoll

NTP använder UDP-protokollet för sitt arbete. NTP-systemet är extremt robust mot förändringar i medialatens.

NTP använder Marzullo-algoritmen (föreslagen av Keith Marzullo från University of California, San Diego), inklusive funktioner som tidsspårning. I version 4 kan den uppnå en noggrannhet på 10 ms (1/100 s) vid arbete över Internet och upp till 0,2 ms (1/5000 s) eller bättre inom lokala nätverk.

NTP är ett av de äldsta protokollen som används. NTP utvecklades av David L. Mills från University of Delaware 1985 och har fortsatt att utvecklas. Den nuvarande versionen är NTP 4.

NTP använder ett hierarkiskt system av "klocknivåer" (stratum). Nivå 1 är synkroniserad med högprecisionsklockor, såsom GPS, GLONASS (Unified State Time Scale of the Russian Federation) eller en atomär tidsstandard. Tier 2 synkroniseras med en av Tier 1-maskinerna och så vidare.

Tiden representeras i NTP-systemet av ett 64-bitars nummer (8 byte) bestående av en 32-bitars sekundräknare och en 32-bitars bråkdelssekunderräknare, vilket gör att tiden kan sändas i intervallet 2-32 sekunder, med en teoretisk noggrannhet på 2-32 sekunder. Eftersom tidsskalan i NTP upprepas var 232:e sekund (136 år) måste mottagaren åtminstone ungefär veta aktuell tid (med en noggrannhet på 50 år). Tänk också på att tiden räknas från midnatt den 1 januari 1900, och inte från 1970, så nästan 70 år (inklusive skottår) måste subtraheras från NTP-tiden för att korrekt anpassa tiden med Windows- eller Unix-system .

NTP-protokollet hittar den bredaste applikationen för implementering av exakta tidsservrar. Kontinuerlig drift är att föredra för maximal noggrannhet programvara NTP i systemtjänstläge. I Microsoft Windows-operativsystemsfamiljen är detta W32Time-tjänsten (w32time.dll-modulen som körs i svchost.exe), Linux är Ntpd-tjänsten.

En enklare implementering av denna algoritm kallas SNTP - Enkel synkronisering nätverksprotokoll. Det används i inbyggda system och enheter som inte kräver hög noggrannhet, samt i anpassade tidsprogram.

En detaljerad implementering av protokollet och systemet som helhet beskrivs i:

NTP ska inte förväxlas med dagtidsprotokollet RFC 867 eller tidsprotokollet RFC 868 (win FG Time Sync-program).

Klocklager

NTP använder ett hierarkiskt, skiktat system av tidskällor. Varje nivå i denna hierarki kallas ett lager, och varje lager tilldelas ett nummer som börjar med 0 (noll) överst. Lagernivån definierar avståndet från referensklockan och finns för att förhindra cirkulära beroenden i hierarkin. Det är viktigt att notera att lagret inte är en indikator på kvalitet och tillförlitlighet, vilket innebär att källan lager 3 kan signalera mer Hög kvalitetän vissa källor lager 2. I grund och botten tjänar skikten till att fördela belastningen och ge ett större täckningsområde. Denna definition av ett lager skiljer sig också från begreppet klocklager som används i telekommunikationssystem.

Lager 0

Lager 0 - dessa är högprecisionsenheter som fungerar som en tidsstandard, till exempel atomklockor (molekylära, kvantklockor), radioklockor eller deras analoger. Vanligtvis är dessa enheter inte anslutna till ett nätverk; istället ansluts de till en lokal dator (till exempel via ett RS-232-gränssnitt) och sänder PPS-signaler för synkronisering.

Lager 1

Detta är den dator som referensklockan är direkt ansluten till. Den fungerar som en nätverkstidsserver och svarar på NTP-förfrågningar som skickas av lager 2-datorer.

Lager 2

Dessa är datorer som tar emot tid från servrarna i det första lagret, som använder NTP-protokollet för detta. Vanligtvis har datorerna i det andra lagret åtkomst till flera servrar i det första lagret, och med hjälp av NTP-algoritmen får de det bästa dataprovet, och rensar bort servrar med uppenbart fel tider. Datorer kan jämföra sina data med andra datorer i deras lager för att få stabila och konsekventa data över alla datorer i lagret. Datorerna i det andra lagret fungerar i sin tur som servrar för datorerna i det tredje lagret och svarar på NTP-förfrågningar.

Lager 3

Datorerna i det tredje lagret fungerar på exakt samma sätt som datorerna i det andra lagret, med den enda skillnaden att servrarna för dem är datorerna i det överliggande andra lagret. De kan också fungera som servrar för det underliggande lagret. NTP (beroende på version) stöder upp till 256 lager.

se även

Länkar

  • - lista över NTP-servrar enligt den statliga standarden för tid och frekvens (GEVC) i Ryska federationen
  • Network Time Protocol-projekt - ett offentligt projekt för utveckling av NTP-protokollet och tjänster
  • NTP Public Services Project - NTP offentlig serverprojekt och IETF Working Group on NTP
  • pool.ntp.org - en resurs som representerar ett stort virtuellt kluster av NTP-servrar för miljontals användare. Den 29 december 2010 har pool.ntp.org 2078 registrerade servrar. Det är möjligt att välja regionala servrar.
  • ntp.mobatime.ru - sedan 2005, den offentliga gratis NTP-servern Mobatime i det första skiktet (Ryssland, St. Petersburg).
  • time.bakulev.ru - offentlig gratis NTP-server i det första skiktet (Ryssland, Moskva).

Wikimedia Foundation. 2010 .

Se vad "NTP" är i andra ordböcker:

    NTP- är en initialism på tre bokstäver som kan stå för: Innehåll 1 Beräkningar 2 Politik 3 Vetenskap 3.1 Kemi 3.2 Medicin ... Wikipedia

    NTP- förkortning. normal temperatur och lufttryck: tidigare term för STP * * * NTP förkortning. normal temperatur och tryck. * * * … Universalium

    NTP- NTP, Abk. för Network Time Protocol ... Universal-Lexikon

    NTP- (Network Time Protocol) (Internet) protokoll som schemalägger datorns interna klocka med atomur eller radioklockor på Internet ... Engelsk samtida ordbok

    NTP- förkortning. normal temperatur och lufttryck: tidigare term för STP … Engelsk världsordbok

    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 ... Wikipedia en Français

    NTP

    ntp- Den Abkürzung NTP steht für: Network Time Protocol, en Protokoll för Zeitsynkronisering mellan Computern Normal Temperature and Pressure, die engelska Bezeichnung für die physikalischen Normalbedingungen Nukleosidtriphosphat in der… … Deutsch Wikipedia

    NTP- Förkortning för nukleosid 5′ trifosfat. * * * program för narkotiska behandlingar; Nationellt toxikologiprogram; nitroprussid; icke-trombopen purpura; normal temperatur och tryck; 5'-nukleotidas; natriumnitroprussid * * * NTP förkortning normal... … Medicinsk ordbok


Tidssynkronisering är en viktig uppgift, även om inte många har tänkt på det. Tja, vad är det för fel med att springa iväg på servertiden? Visste du att många klockproblem påverkar protokoll relaterade till kryptografi? Av denna anledning, i Active Directory klockskillnader som är större än 5 minuter kommer att resultera i Kerberos-autentiseringsproblem.

timnivåer. Strata.

För att förstå en NTP-enhet bör du känna till konceptet skikt eller skikt. Auktoritativa tidskällor som GPS-satelliter, cesium-atomklockor, WWVB-radiovågor - allt detta skikt 0. De är auktoritativa på grund av att de har något sätt att upprätthålla mycket exakt tidtagning. Du kan naturligtvis använda vanliga kvartsklockor, men med vetskapen om att det är lätt att förlora 15 sekunder med dem på en månad är det bättre att inte använda dem som ett tidsmått. Stratum 0 det är när en sekund inte går förlorad på 300 000 år!

Datorer som direkt (inte över nätverket!) tar tid från skikt 0- Det här skikt 1. Eftersom det alltid finns förseningar på grund av signalöverföring och kostnader för inställning av tid, datorer skikt 1 inte så exakt som skikt 0, men i verkliga livet skillnaden når ett par mikrosekunder (1 µs = 10 -6 s), vilket är en ganska acceptabel avvikelse.

Nästa nivå av datorer tar tid över nätverket från skikt 1- det är... trumrulle... intriger... skikt 2! Återigen, på grund av olika förseningar (nätverk säkert), skikt 2 en bit efter skikt 1 och säkert från skikt 0. I praktiken sträcker sig denna skillnad från några mikrosekunder (1 µs = 10-6 s) till några millisekunder (1 ms = 10-3 s). Många vill inte synka med lagret längre skikt 2.

Som framgår av diagrammet, skikt 4 tar tid från överordnade skikt 3. skikt 5skikt 4 och så vidare. skikt 16 anses vara det lägsta lagret och tid anses vara där osynkroniserad.

För att synkronisera tiden med NTP-protokollet måste du först ställa in din tid manuellt. Mer än 1000 sekunders skillnad mellan din exakta tid och din klocka är inte tillåten. Om tidsservern du använder ligger i mer än 1000 millisekunder (1 sekund), kommer den att tas bort och andra kommer att användas istället. Denna mekanism låter dig filtrera bort dåliga tidskällor.

Tid klient.

I filen /etc/ntp.conf är serverraderna viktiga för klienten. Det kan vara flera - upp till 10 stycken!

Hur mycket ska man lägga till? Kom ihåg:

  • Om du bara har en server (en serverlinje), om den här servern börjar ljuga, kommer du blint följa den. Om hans tid går ut med 5 sekunder och du springer efter honom.
  • Om 2 servrar läggs till (2 serverrader) kommer NTP att markera båda som falska ticker. Om en av dem ljuger, kan NTP inte förstå vem som ljuger, eftersom det inte finns något beslutförhet.
  • Om 3 eller fler tidsservrar läggs till kan en lögnare beräknas falska ticker. Om det finns 5 eller 6 tidsservrar kan du hitta 2 lögnare falska ticker. Om det finns 7 eller 8 servrar, då 3 falska ticker. Om det finns 9 och 10 servrar, då 4 falska ticker.

NTP Pool-projekt.

Det finns ett sådant NTP Pool-projekt på adressen där pool.ntp.org/zone/ru/ du kan hitta tidsservrar som rekommenderas för ryska användare.

server0.ru.pool.ntp.org
server1.ru.pool.ntp.org
server2.ru.pool.ntp.org
server3.ru.pool.ntp.org

Operativsystem som Debian och Ubuntu erbjuder användarna sina egna tidsservrar.

server0.debian.pool.ntp.org
server1.debian.pool.ntp.org
server2.debian.pool.ntp.org
server3.debian.pool.ntp.org

server0.ubuntu.pool.ntp.org
server1.ubuntu.pool.ntp.org
server2.ubuntu.pool.ntp.org
server3.ubuntu.pool.ntp.org

Om du anropar ntpq -pn på din Linux-maskin som använder NTP

Remote refid st t när omröstningsräckvidd fördröjning 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 *62.173.138.130 829.104 1024 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

Vad säger kolumnnamnen?

  • avlägsen- fjärrservrar som du synkroniserar tiden med.
  • refid- överlägsen stratum för denna server.
  • st- stratumnivå. Från 0 (inte tillgängligt för oss) till 16 (inte önskvärt för oss). Perfekt - 2.
  • t- kopplingstyp. " u"- unicast eller manycast," b"-broadcast eller multicast," l"lokal referensklocka", s" - symmetrisk nod," A" - manycast server, " B"-broadcast server," M"- multicast-server.
  • när- tiden då servern senast svarade oss. Parametern visar siffran i sekunder, men kan vara i minuter om siffran är det m eller timmar om h.
  • opinionsundersökning- pollingfrekvens. Minst 16 sekunder, max 32 timmar. Antalet måste vara 2 n . Vanligtvis finns det i denna parameter antingen 64 sekunder eller 1024.
  • - En 8-bitars oktett som indikerar status för kommunikationen med fjärrtidsservern: framgång eller misslyckande. Om bitarna är inställda, då framgång, annars misslyckande. Värdet 377 är binärt 0000 0000 1111 1111.
  • dröjsmål- värdet i millisekunder visar tiden mellan att skicka och ta emot ett svar (tur- och returtid - RTT).
  • offset- förskjutning i millisekunder mellan dig och tidsservrarna. Kan vara ett positivt eller negativt tal.
  • skaka- ett absolut värde i millisekunder som indikerar standardavvikelsen för din offset.

Innan IP-adressen för NTP-servern finns en symbol - det här är stämma kod. Typer stämma kod:

  • " " - kasseras som ogiltig. Det finns till exempel ingen koppling till honom eller så är han offline, han är för hög i rang och tjänar inte människor som du.
  • "x"- kasseras av "skärningsalgoritmen". Skärningsalgoritmen förbereder en lista över kandidatpartners som kan bli synkroniseringskällor och beräknar ett konfidensintervall för var och en av dem.
  • "." - tappade på grund av bordspill.
  • "-" - kasseras av klusteralgoritmen. Klustringsalgoritmen sorterar listan med kandidater efter lagerkoder och synkroniseringsavstånd.
  • "+" - servern är aktiverad av "kombineringsalgoritmen". Denna server är en utmärkt kandidat om din nuvarande tidsserver börjar svika dig.
  • "#" - Servern är en utmärkt alternativ tidsserver. Servern med # kan bara ses om du har fler än 10 serverposter i /etc/ntp.conf
  • "*" - aktuell tidsserver. Dess avläsningar används för att synkronisera dina klockor.
  • "o"- Puls per sekund (PPS) server. Detta innebär vanligtvis att denna tidsserver använder tidskällor som GPS-satelliter och andra exakta tidssignaler. Om ritad O, då kommer andra typer av tallykod inte längre att visas.

I fält refid kan vara följande värden:

  • IP-adress - adress till fjärrtidsservern.
  • .ACST.- NTP manycast-server.
  • .ACTS.- Automated Computer Time Service från American National Institute of Standards and Technology.
  • .AUTH.- autentiseringsfel.
  • .AUTO - fel i autoknappsekvenser.
  • .BCST.- NTP-sändningsserver.
  • .CHU.- Kortvågsradiomottagare från CHU-stationen i Ottawa, Ontario, Kanada.
  • .CRYPT - Autokey-protokollfel.
  • .DCFx.- LF radiomottagare från station DCF77 i Mainflingen, Tyskland.
  • .NEJ.- Åtkomst nekad.
  • .GAL.-Europeisk Galileo satellitmottagare.
  • .GOES.- Amerikansk geostationär operationell miljösatellitmottagare.
  • .GPS.-American Global Positioning System-mottagare.
  • .HBG.- LF radiomottagare från HBG station i Prangins, Schweiz.
  • .INIT.- Peer association initierad.
  • .IRIG.- Inter Range Instrumentation Group tidskod.
  • .JJY.- LF-radiomottagare från JJY Station vid Mount Otakadoya, nära Fukushima eller Mount Hagane på Kyushu Island, Japan.
  • .LFx.- Vanlig LF radiomottagare.
  • .LOCL. - värdens lokal klocka.
  • .LORC.- LF radiomottagare från Long Range Navigation (LORAN-C).
  • .MCST.- NTP multicast-server.
  • .MSF.- Anthorn Radio Station nära Anthorn, Cumbria.
  • .NIST.-American National Institute of Standards and Technology.
  • .PPS.- klocka Puls per sekund.
  • .PTB.- Physikalisch-Technische Bundesanstalt från Brunswick och Berlin, Tyskland.
  • .RATE.- NTP-avfrågningströskeln har överskridits.
  • .STEP.- ändra NTP-steget. Partiskhet offset mindre än 1000 millisekunder, men mer än 125 millisekunder.
  • .TDF.- LF-radiomottagare från TéléDiffusion de France-stationen i Allouis, Frankrike.
  • .TIME.- Timeout för NTP-association.
  • .USNO.- United States Naval Observatory.
  • .WWV.- HF-radiomottagare från WWV-stationen i Fort Collins, Colorado, USA.
  • .WWVB.- LF-radiomottagare från WWVB-stationen i Fort Collins, Colorado, USA.
  • .WWVH.- HF-radiomottagare från WWVH-stationen i Kekaha, på ön Kauai på Hawaii, USA.

Först, bli av med tanken på hur man får tid från skikt 1, de säger att de är närmast den exakta tiden. De är närmare den mest exakta tiden på planeten, bara de själva är överbelastade och har höga RTT-fördröjningar för vanliga servrar. Bäst att hitta en normal skikt 2 och oroa dig inte för det. Glöm inte att vi pratar om mikrosekunder och millisekunder, vilket i det vanliga livet räcker.

För det andra, kom ihåg att det inte alltid är idealiskt att ansluta till närmaste tidsserver. Viktigare är inte territoriell närhet, utan nivån på stratum. NTP Pool-projektet publicerar en lista över servrar endast på nivån skikt 1 Och skikt 2 och det är bättre att ta upp till 10 tidsservrar från den här listan, vilket kommer att vara bra.

För det tredje, om du är en enkel hemmaklientanvändare, kommer de servrar som rekommenderas för dig i ditt operativsystem att vara det idealiskt alternativ som inte kräver extra rörelser.

För stora kontor skulle det bästa alternativet vara att sätta upp en egen tidsserver för arbetsdatorer. Denna server kommer att ta emot den exakta tiden från internettidsservrar och tillhandahålla den lokala datorer. På Debian- och Ubuntu-servrar är det bara att avkommentera raden

Begränsa 192.168.0.0 mask 255.255.0.0 nomodify notrap

i ntpd-demonens konfigurationsfil - /etc/ntp.conf

Användare från nätverket 192.168/16 kommer att kunna få den mest exakta klockan från din server. För interna Linux-baserade servrar som inte är tidsservrar och gör sin egen grej, istället för att köra ntpd-demonen i klientläge, räcker det att specificera i filen /etc/cron.daily/syncntpd. Det rekommenderas att du läser skillnaderna mellan ntpdate och ntp och avgör själv.
#!/bin/sh
/usr/sbin/ntpdatera din servers IP-adress > /dev/null 2>&1
utgång 0

och en gång om dagen, tack vare kommandot ntpdate, kommer tidssynkronisering att utföras. För att undvika missförstånd, var inte lat innan du implementerar en tidsserver och synkroniserar allt och allt via NTP-protokollet – ställ manuellt in rätt tid på alla servrar och arbetsstationer som är tillgängliga för dig. Om din osynkroniserade tid skiljer sig för mycket från den korrekta, kan du starta en massa onödiga problem i början.

För det fjärde hänger NTP inte på något sätt ihop i vilket land och vilka tidszoner som används och hur övergången till sommar- och vintertid sker och om en sådan övergång görs här i landet. Detta ansvar ligger hos operativsystemet, som du behöver uppdatera om det sker förändringar i klocktillverkning i landet. På Debian- och Ubuntu-system är tzdata-paketet ansvarigt för detta och bör vara uppdaterat.

För det femte är det bättre att inte höja din NTP-server på ett högt belastat system.

MSK-IX NTP Server är en publik tidsserver som stöds av MSK-IX. Den exakta tidsservern är utformad för att synkronisera med referenskällan för interna klockor på datorer och nätverksutrustning (servrar, routrar, smartphones, etc.) med hjälp av NTP-protokollet.

MSK-IX NTP-server tillhör den högsta noggrannhetsnivån (Stratum One Time Servers) i det hierarkiska systemet av klocknivåer. Den globala tidssignalen används som referenstidssignal. satellitsystem navigation GLONASS (prioritet) och GPS.

MSK-IX NTP Server är implementerad som en grupp av servrar som finns i Moskva, St. Petersburg, Jekaterinburg och Novosibirsk. Ansökan nätverksteknik anycast ger hög tillförlitlighet och snabb systemrespons i hela landet.

MSK-IX-servrar ingår också i den internationella poolen av NTP-servrar POOL.NTP.ORG, som används flitigt i operativsysteminställningar.

Hur börjar man använda NTP-servertjänsten?

Använd följande alternativ när du konfigurerar hårdvara:

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

Hur upprättar man peering med MSK-IX NTP-servernätverk?

För att förkorta nätverksvägen till MSK-IX NTP-servern, använd tjänsten Route Server eller upprätta direkt peering med MSK-IX DNS Cloud-nätverket. Peer-to-peer-interaktion etableras efter en ytterligare ansökan inom ramen för kontraktet för anslutning till MSK-IX utan extra kostnad.

God eftermiddag, gäster och vanliga läsare. Går gradvis från grunderna till en mer djupgående studie av Linux. Idag vill jag recensera drift av ntp-protokollet, samt inställning tidsservrar på linux(ntp-server). Så låt oss börja med teorin.

NTP-protokoll

Network Time Protocol (NTP)- ett nätverksprotokoll för att synkronisera datorns interna klocka med hjälp av nätverk med variabel latens (läs "bredd" / kanalkvalitet).

NTP använder för sitt arbete UDP-protokoll och port 123.

Aktuell protokollversion - NTP 4. NTP använder ett hierarkiskt system "timnivåer"(de kallas också Skikt). Nivå 0 (eller Stratum 0)- dessa är vanligtvis enheter som är atomklockor (molekylära, kvantklockor), GPS-klockor eller radioklockor. Dessa enheter publiceras vanligtvis inte i världsomspännande nätverk och är anslutna direkt till Tier 1-tidsservrar via RS-232-protokollet (markerat med gula pilar i illustrationen). Nivå 1 synkroniserad med högprecisionsklocka nivå 0, fungerar vanligtvis som källor för servrar nivå 2. Nivå 2 synkroniserad med en av maskinerna nivå 1, och det är också möjligt att synkronisera med servrar på din nivå. Nivå 3 fungerar på samma sätt som den andra. Vanligtvis publiceras servrar med nivåer från den andra och nedan i nätverket. NTP-protokoll stöder upp till 256 nivåer. Jag skulle också vilja notera att servrar på nivå 1 och 2, och ibland 3, inte alltid är öppna för allmänheten. Ibland, för att synkronisera med dem, måste du skicka en förfrågan per post - till domänadministratörer.

Varför finns det en begränsning för åtkomst till servrar? Med övergången till varje nivå ökar felet relativt den primära servern något, men öka det totala antalet servrar och följaktligen .

Tilldela en NTP-server på det lokala nätverket

Varför behöver vi en NTP-server? Till exempel finns det tjänster i operativsystem som kan bero på synkroniserad tid. Det mest anmärkningsvärda exemplet på sådana tjänster är Kerberos autentiseringsprotokoll. För att det ska fungera är det nödvändigt att på datorer som nås med detta protokoll, skiljer sig systemtiden med högst 5 minuter. Den exakta tiden på alla datorer underlättar dessutom avsevärt analysen av säkerhetsloggar vid undersökning av incidenter i lokalt nätverk.

Driftlägen för NTP-server/klient

Klient-server

Det här läget är det absolut vanligaste på Internet. Arbetsschemat är klassiskt. Klienten skickar en förfrågan som servern skickar ett svar till under en tid. Klienten konfigureras med hjälp av serverdirektivet i konfigurationsfilen, som anger DNS-namnet på tidsservern.

Symmetriskt aktivt/passivt läge

Detta läge används om tidssynkronisering utförs mellan ett stort antal peer-maskiner. Förutom det faktum att varje maskin synkroniserar med en extern källa, synkroniserar den också med sina kamrater och fungerar som klient och tidsserver för dem. Därför, även om maskinen "förlorar" den externa källan, kommer den fortfarande att kunna få den exakta tiden från sina grannar. Grannar kan arbeta i två lägen - aktiv och passiv. När maskinen arbetar i aktivt läge överför maskinen sin tid till alla närliggande maskiner listade i peers-sektionen i ntp.conf-konfigurationsfilen. Om grannar inte anges i detta avsnitt, anses maskinen vara i passivt läge. Autentisering måste användas för att förhindra en angripare från att äventyra andra maskiner genom att utge sig för att vara en aktiv källa.

Sändningsläge

Detta läge rekommenderas när ett litet antal servrar betjänar ett stort antal klienter. När du arbetar i detta läge sänder servern regelbundet paket med hjälp av undernätets sändningsadress. En klient konfigurerad att synkronisera på detta sätt tar emot serverns sändningspaket och synkroniserar med servern. En funktion i detta läge är att tiden levereras inom samma subnät (begränsning av broadcast-paket). Dessutom måste autentisering användas för att skydda mot inkräktare.

Multicast-läge

Det här läget liknar sändningar på många sätt. Skillnaden ligger i det faktum att multicast-adresser för klass D-nätverk i IP-adressutrymmet används för att leverera paket. Klienter och servrar får adressen till multicastgruppen de använder för tidssynkronisering. Detta gör det möjligt att synkronisera grupper av maskiner som finns på olika subnät, förutsatt att routrarna som ansluter dem stöder IGMP-protokollet och är konfigurerade att överföra multicast-trafik.

Manycast-läge

Detta läge är nytt för den fjärde versionen av NTP-protokollet. Det innebär att klienten söker efter Manycast-servrar bland sina nätverksgrannar, tar emot tidsprover från var och en av dem (med hjälp av kryptografi) och, baserat på dessa data, väljer de tre "bästa" Manycast-servrarna som klienten kommer att synkronisera med. I händelse av ett fel på en av servrarna uppdaterar klienten automatiskt sin lista.

För att sända tidsprover använder klienter och servrar som arbetar i manycast-läge adresser till multicast-grupper (klass D-nätverk). Klienter och servrar som använder samma adress bildar samma association. Antalet associationer bestäms av antalet multicast-adresser som används.

Tid i Linux

Jag ska kort berätta vilken tid som finns i Linux och hur man ställer in den. I Linux, som i andra operativsystem, finns det 2 gånger. Först - hårdvara , ibland kallad Riktig tids klocka, förkortad ( RTC) (de är också BIOS-klockor) de är vanligtvis förknippade med en oscillerande kvartskristall, som har en noggrannhet på upp till flera sekunder per dag. Noggrannheten beror på olika fluktuationer, såsom omgivningstemperatur. Andra klockan - intern programvara klocka , som körs kontinuerligt, även under pauser i systemet. De är föremål för fluktuationer i samband med hög systembelastning och avbrottslatens. Systemet läser dock vanligtvis hårdvaruklockan vid uppstart och använder sedan systemklockan.

datum och tid operativ system ställs in vid start baserat på värdet hårdvara klocka, och tidszonsinställningar. Tidszonsinställningarna hämtas från filen /etc/localtime. Denna fil är en länk (men oftare en kopia) av en av filerna i katalogstrukturen /usr/share/zoneinfo/.

Linux hårdvaruklockor kan lagra tid i formatet UTC(analog av GMT), eller den aktuella territoriella tiden. Den allmänna rekommendationen om vilken tid du ska ställa in (?) är följande: om datorn har flera operativsystem och ett av dem är Windows, måste du använda den aktuella tiden (eftersom Windows tar tiden från BIOS / CMOS och anser det lokal). Om bara fungerar UNIX-system familjer, är det önskvärt att lagra tiden i BIOS i UTC-format.

Efter att operativsystemet har startats är operativsystemets klocka och BIOS helt oberoende. Systemkärnan synkroniserar systemklockan med hårdvaruklockan var 11:e sekund.

Efter en tid kan det finnas en skillnad på flera sekunder mellan hårdvaru- och mjukvaruklockorna. Vilken klocka håller rätt tid? Varken det ena eller det andra förrän vi satt upp tidssynkronisering.

Notera:

Linuxkärnan lagrar och beräknar alltid tiden som antalet sekunder sedan midnatt 1 januari 1970 årets, oavsett om din klocka är inställd på lokal tid eller universell tid. Konverteringen till lokal tid görs under frågeprocessen.

Eftersom antalet sekunder sedan 1 januari 1970 UTC lagras som ett signerat 32-bitars heltal (detta är sant för Linux/Intel-system), kommer din klocka att sluta fungera runt 2038. Linux har inget Y2K-problem, men det har ett Y2038-problem. Lyckligtvis kommer alla linux vid den tidpunkten att köras på 64-bitars system.Ett 64-bitars heltal kommer att innehålla vår klocka upp till cirka 292271-miljonte året.

NTP-server Linux

Introduktion

Det finns många implementeringar för tidssynkronisering för Linux OS. De mest kända är Xntpd (NTP version 3), ntpd (NTP version 4), Crony och ClockSpeed. I vårt exempel kommer vi att använda ntp-servern ntpd.

ntpd-demonen är både en tidsserver och en klient, beroende på inställningarna för konfigurationsfilen /etc/ntpd.conf (ibland /etc/ntp.conf), kan demonen "acceptera" tid från fjärrservrar och "distribuera" tid till andra värdar.

Allmän tidssynkroniseringskrets på det lokala nätverket är följande: du behöver ha 1 eller 2 servrar med tillgång till det globala nätverket, som kommer att få tid från Internet. Synkronisera alla datorer på det lokala nätverket med de angivna servrarna som tar emot tid från Internet.

Installerar ntpd

Faktiskt, installation av daemon handlar om att installera följande paket: ntp(paket inklusive själva demonen), ntpdate(verktyg för manuell tidssynkronisering - föråldrad), ntp-doc(paketdokumentation), i vissa distributioner måste du installera detsamma ntp-utils(diagnostiska verktyg), några av dem ingår i ntp-paketet. Hur man installerar program på Linux, beskrev jag i. Efter installation av paketet, i de flesta distributioner, kommer demonen redan att vara konfigurerad som en ntp-klient (det var till exempel så här i Debian). Följaktligen skapades de huvudsakliga konfigurationsfilerna automatiskt: /etc/ntp.conf och /var/lib/ntp/ntp.drift och demonen startades automatiskt.

Innan du konfigurerar demonen för att synkronisera med omvärlden, skulle jag föreslå att du ställer in det aktuella systemdatumet till ett värde som är så nära realtid som möjligt. Ställa in datum i Linux produceras av kommandot: datum MMDDhhmmCCYY.ss, där MM - månad, DD - dag i månaden, hh - timmar, mm - minuter, CCYY - 4 siffror i året, ss - sekunder. Samtidigt värdena CCYY.ss behöver inte specificeras.

Som du kan se kommer det angivna kommandot att ställa in aktuellt datum och tid till 27 december 2010, 20:06:30. datum kommando utan parametrar, visa aktuell systemtid. Det här kommandot har ett gäng alternativ, som kan hittas i man date.

Du måste också konfigurera hårdvaruklockan och tidszonen korrekt. Som nämnts ovan konfigureras tidszonen genom att kopiera den önskade zonfilen från katalogen /usr/share/zoneinfo/ att arkivera /etc/localtime:

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

Hårdvara Jag ställde klockan på UTC:

# cat /etc/sysconfig/clock | grep UTC # UTC=true indikerar att klockan är inställd på UTC; UTC=true ntp2-server:~# cat /etc/default/rcS | grep UTC UTC=ja

Det första exemplet specificerar en konfigurationsfil som definierar användningen av UTC för RH, det andra - för Deb-distributioner.

Förutom att ställa in inställningarna för att använda UTC-tid måste du ställa in hårdvarutid. (i de flesta fall är detta inte nödvändigt, eftersom den inställda systemtiden oundvikligen synkroniseras med hårdvaran av kärnan). Men om du är villig att göra det... hwclock kommando läser och ställer in hårdvaruklockan baserat på parametrarna som skickas till den. De tillgängliga alternativen beskrivs i kommandots manualsida. Här är några exempel på hur du använder hwclock:

ntp-server# hwclock # läser tiden från hårdvaruklockan ntp-server# hwclock --systohc --utc # ställer hårdvaruklockan till # UTC baserat på systemtiden ntp-server# hwclock --systohc # ställer hårdvaruklockan # till lokal tid baserat på systemtid ntp-server# hwclock --set --date "22 Mar 2002 13:17" # ställer hårdvaruklockan # till den angivna strängen

Ett annat alternativ för att ändra tiden i hårdvaruklockan är att komma åt BIOS när systemet startar. Eftersom OS-tiden är oberoende av hårdvaruklockan, kommer alla ändringar i BIOS att beaktas vid nästa uppstart.

Nu när vi har allt förberett och installerat, låt oss gå vidare till på en byggarbetsplats.

Hantera ntpd-demonen

Kontrollera ntpd-demon skiljer sig inte från att kontrollera andra demoner. Starta eller starta om ntpd-tjänsten:

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

Sluta:

#/etc/init.d/ntp stopp

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

Demonen har följande startalternativ:

P - PID-fil,
-g - möjliggör övergång till big time jump
-c - konfigurationsfil
-q - tvinga fram manuell synkronisering

Konfigurera ntpd-servern

Först och främst rekommenderar jag dig att ändra demonens startparametrar i följande konfigurationsfil:

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

# cat /etc/sysconfig/ntpd # Parametrar för NTP-demon. # Se ntpd(8) för mer information. .... # Anger ytterligare parametrar för ntpd. NTPD_ARGS="-g"

Denna inställning gör att klockan kan synkroniseras även om det är mycket stor tidsskillnad.

Så, som sagt, konfigurationsinformationen ntpd-demon finns i filen /etc/ntp.conf. Syntaxen för filen är standard, som i många andra konfigurationer: tomma rader och rader som börjar med tecknet "#" ignoreras. Här är ett enkelt exempel:

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

Parameter server anger vilka servrar som kommer att användas för synkronisering, en per rad. Om servern ges med ett argument föredra, Hur ntplocal.example.com, då ges denna server företräde framför de andra. Svaret från den föredragna servern kommer att kasseras om det skiljer sig väsentligt från andra servrars svar, annars kommer det att användas utan hänsyn till andra svar. Argument föredra används vanligtvis för NTP-servrar som är kända för att vara mycket exakta, till exempel de som använder dedikerad tidtagningsutrustning.

Parameter driftfil anger filen som används för att lagra systemets klockförskjutning. Så vitt jag förstår lagrar denna fil hela tiden något värde, som bildas utifrån analys av tidigare tidsjusteringar, och om externa tidskällor blir otillgängliga så sker tidsjusteringen enligt värdet från filen drift. Den får inte modifieras av några andra processer. Och innan du indikerar given fil i konfiguration - filen måste skapas.

Som standard kommer NTP-servern att vara tillgänglig för alla värdar på Internet. Parameter begränsa i fil /etc/ntp.conf låter dig styra vilka maskiner som kan komma åt din server. Om du vill hindra alla maskiner från att komma åt din NTP-server, lägg till följande rad i filen /etc/ntp.conf:

begränsa standard ignorera

Om du vill tillåta synkronisera din klocka endast med din server maskiner i ditt nätverk, Men förbjuda dem konfigurera servern eller vara lika deltagare i tidssynkronisering, lägg sedan till raden istället för den angivna:

begränsa 192.168.1.0 mask 255.255.255.0 nomodify notrap

där 192.168.1.0 är ditt nätverks IP-adress och 255.255.255.0 är dess nätmask. /etc/ntp.conf kan innehålla flera begränsningsdirektiv.

För att demonen ska fungera korrekt och mer exakt är det tillrådligt att välja en nivåserver - från stratum 2 (du kan naturligtvis stratum1, men du måste döda tid på att leta efter en sådan server) och från det valda stratum 2 de som minsta "avstånd". Vanligtvis kan sådana servrar tillhandahållas av din internetleverantör. Antalet utvalda servrar är önskvärt - fler än 2-3, ju fler desto bättre, men inom rimliga gränser. Om du är för lat för att välja bästa servrarna, då kan du få en lista över öppna servrar på den andra nivån härifrån: http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers.

Välj en lista med referens-NTP-servrar

Vi går till den angivna adressen (http://support.ntp.org/bin/view/Servers/StratumTwoTimeServers) och väljer en lista med initiala servrar. Från den här listan väljer vi de servrar som uppfyller våra krav genom att analysera resultatet av kommandot ntpdate. När kommandot körs tillämpas följande syntax:

ntpdate-parametrar servers_space separerade

För att vår fråga inte ska göra ändringar i systemet måste vi använda parametern -q, som indikerar användningen av frågan utan att göra ändringar. Det är också möjligt att använda -d-växeln, som indikerar att kommandot kommer att köras i felsökningsläge, med utmatning av ytterligare information, utan att göra riktiga ändringar (med den här växeln visas ett gäng annat skräp :), vilket vi det här ögonblicket behövs inte). Se man 8 ntpdate för andra alternativ. Från den angivna länken valde jag alla Open Access-servrar i Ryssland (RU) + den som tillhandahålls av leverantören och körde kommandot, det visade sig ungefär så här:

ntp-server:~# ntpdate -q ntp2.ntp-servers.net ntp1.vniiftri.ru ntp2.vniiftri.ru ntp4.vniiftri.ru ntp0.ntp-servers.net ntp1.ntp-servers.cornet ntp. server 88.147.255.85 stratum 1 offset 0.006494 fördröjning 0.09918 server 62.117.76.142 stratum 1 offset 0.002552 fördröjning 0.06920 server 62.117.76.101 delay 0 0.06.101 delay 0. 918 server 62.117.76.140, stratum 1, offset 0,004823, fördröjning 0,07350 server 88.147.254.228, stratum 1, offset -0.002355, fördröjning 0.12030 server 88.147.254.229, stratum 1, offset -0.000922, fördröjning 0.10577 server 62.117.76.1 38, stratum 1, 01 offset 1, 01 offset. 5.14 .40.141, stratum 2, offset 0.002846, fördröjning 0.07188 13 jan 19:14:09 ntpdate: justera tidsserver 62.117.76.141 offset 0,003147 sek

I exemplet utfärdade våra servrar framgångsrikt stratum1-nivån, vilket är goda nyheter (förutom leverantörens server), offset är tidsskillnaden med denna server i sekunder, fördröjning är synkroniseringsfördröjningen i sekunder. Vanligtvis, b HANDLA OM Större noggrannhet erhålls när man använder servrar som har paketöverföring med låg latens över nätverket. För att ta reda på det kan du använda . Följaktligen, genom att först välja de med kortare svarstid, och av dem de med färre hopp. Jag, för att inte slösa tid, kommer att använda alla angivna servrar och lägga in dem i konfigurationsfilen. Totalt, med allt ovanstående, kommer jag att beskriva min resulterande fil /etc/ntp.conf:

Ntp-server:~# cat /etc/ntp.conf # LAN-servrar (kommenterade ut, används inte - endast en server på nätverket) #server 192.168.0.2 #server 192.168.0.5 # Internetserverserver ntp2.ntp-servrar. nätserver 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 driftfil /var/lib/ntp/ntp.drift loggfil /var/log/ntpstats # begränsa åtkomst till servern: # ignorera allt som standard begränsa standard ignorera # lokalvärd utan parametrar - allt är tillåtet. Parametrar går bara till förbud. limit 127.0.0.1 # följande beskriver servrarna som vi synkroniserar med i det lokala nätverket. # Vi tillåter dem allt utom fällor och förfrågningar till oss begränsa 192.168.0.2 noquery notrap limit 192.168.0.5 noquery notrap # för LAN tillåter vi också allt utom traps och modifieringar limit 192.168.0.1 mask 255.255.255.0 nomodify extern åtkomst: begränsa ntp2.ntp-servers.net begränsa ntp1.vniiftri.ru begränsa ntp2.vniiftri.ru begränsa ntp4.vniiftri.ru begränsa ntp0.ntp-servers.net begränsa ntp1.ntp-servers.net begränsa ntp3.vniiftri limit ntp.corbina.net # och detta är ett hack som sätter nivån av förtroende för servern (strata) till sig själv lika med 3 # i ett nötskal, ju högre nivå, desto lägre siffra. 0 är atomklockan, #1 är synkroniserad med den, 2 är med den första och så vidare. server 127.127.1.1 fudge 127.127.1.1 stratum 3

För en mer djupgående förståelse och konfiguration av servern kommer jag att beskriva några ntpd-konfigurationsalternativ som jag inte nämnde:

  • aktivera inaktivera auth/monitor/pll/pps/stats - Slå på, stäng av arbetsläge:
    • auth- kommunicera med onämnda grannar endast i autentiseringsläge;
    • övervaka- tillåta övervakning av begäran;
    • pll- Tillåt inställning av lokal klockfrekvens via NTP;
    • statistik- tillåta insamling av statistik;
  • statistikloopstater- vid varje modifiering av den lokala klockan, skriver en rad till filen loopstater;
  • statistikpeerstats- varje kommunikation med en granne registreras i en logg lagrad i en fil peerstats;
  • statistikklockstatistik- varje meddelande från den lokala klockdrivrutinen skrivs till en logg lagrad i en fil klockstatistik;
  • statsdir(katalognamn_med_statistik)- ställer in namnet på katalogen där filer med serverstatistik kommer att finnas;
  • filegen - definierar algoritmen för att generera filnamn, som består av:
    • prefix- konstant del av filnamnet, inställt antingen under kompilering eller genom speciella konfigurationskommandon;
    • filnamn- läggs till prefixet utan snedstreck, två punkter är förbjudna, kan ändras med filnyckeln;
    • ändelse- genereras beroende på typnamn;
  • begränsanumerisk adress- ställer in åtkomstbegränsningen: paket sorteras och maskeras, källadressen tas och jämförs sekventiellt, flaggan tas från den senaste framgångsrika jämförelsen tillgång:
    • inga flaggor- ge tillträde;
    • ignorera- ignorera alla paket;
    • noquery- ignorera NTP 6 och 7 paket (begäran och tillståndsändring);
    • nomodifiera- ignorera NTP 6 och 7 paket (tillståndsändring);
    • begränsad- endast betjäna ett begränsat antal klienter från ett givet nätverk;
    • nopeer- tjäna värden, men synkronisera inte med den;
  • kundgränsbegränsa- för flaggan begränsad bestämmer det maximala antalet klienter som betjänas (som standard 3);

Totalt fick vi ntpd-server, som är synkroniserad med omvärlden, låter dig få tiden för klienter från det lokala nätverket 192.168.0.1 med en mask på 255.255.255.0, och kan även synkroniseras med den lokala servern (om du avkommenterar några rader). Vi behöver bara ställa in klienterna och lära oss hur vi övervakar vår server.

Övervakning av ntpd-servern och synkronisering

När du är klar. NTP kommer att hålla tiden synkroniserad. Denna process kan observeras med kommandot NTP Query (ntpq):

Ntp-server:~# ntpq -p remote refid st t när poll räckvidd fördröjning offset jitter ============================== = ================================================-n3. tid1. 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

Detta kommando med -p-omkopplaren matar ut en lista över tidskällor med deras egenskaper till standardutmatning (andra kommandoalternativ i man ntpq). Betydelsen av varje kolumn är följande:

Namnet på den fjärranslutna NTP-servern. Om du anger -n-växeln får du serverns IP-adresser istället för namn.

Indikerar var varje server för närvarande får tiden ifrån. Det kan vara ett värdnamn eller något som .GPS som indikerar ursprunget till Global Positioning System.

Stratum (nivå) är ett tal från 1 till 16, som indikerar serverns noggrannhet. En betyder maximal precision, 16 betyder att servern inte är tillgänglig. Din nivå kommer att vara lika med nivån på den minst exakta fjärrservern plus 1.

Intervall mellan omröstningar (i sekunder). Värdet kommer att variera mellan lägsta och högsta pollingfrekvens. I början kommer intervallet att vara litet så att synkronisering sker snabbt. Efter att klockorna har synkroniserats börjar intervallet öka för att minska trafiken och belastningen på populära tidsservrar.

En oktal representation av en 8-bitars array som representerar resultaten av de senaste åtta försöken att ansluta till servern. Biten ställs in om fjärrservern har svarat.

Hur lång tid (i sekunder) det tar att få ett svar på en "vad är klockan?"-fråga.

Det viktigaste fältet. Skillnad mellan lokal och fjärrservertid. Under synkronisering bör detta värde minska (närmare noll), vilket indikerar att klockan lokal maskin allt går mer exakt.

Dispersion (Jitter) är ett mått på statistiska avvikelser från offsetvärdet (offsetfältet) över flera framgångsrika begäran-svarspar. Ett mindre spridningsvärde är att föredra eftersom det möjliggör mer exakt tidssynkronisering.

Betydelsen av tecken före servernamn

x - falsk källa enligt korsningsalgoritmen;
. - exkluderas från kandidatlistan på grund av det långa avståndet;
- - borttagen från listan över kandidater av klustringsalgoritmen;
+ - ingår i den slutliga listan över kandidater;
# - valts för synkronisering, men det finns 6 bästa kandidater;
* - vald för synkronisering;
o - vald för synkronisering, men PPS används;
utrymme - för mycket nivå, cykel eller uppenbart fel;

ntpd-tjänst"smart" och själv rensar bort tidskällor som ligger alltför utanför förnuftets gränser. En tid efter start kommer ntpd att välja de mest tillförlitliga datakällorna och synkronisera med dem. Listan över referens-NTP-servrar som tillhandahålls av oss granskas regelbundet av tjänsten.

Du kan kontrollera möjligheten till synkronisering lokalt på servern med kommandot:

Ntp-server:~# ntpdate -q localhost server 127.0.0.1, stratum 2, offset -0.000053, fördröjning 0.02573 server::1, stratum 2, offset -0.000048, fördröjning 0.02571 14 jan 5:14 justering: nt 514 tid server: nt ::1 offset -0,000048 sek

Från utmatningen av kommandot kan det ses att vår server redan har blivit en nivå 2. För att uppnå given nivå, behöver lite tid. Kanske kommer servernivån att vara högre under de första 10-15 minuterna.

Den korrekta driften av ntp-servern kan också bedömas av loggarna för ntpd-demonen:

Ntp-server:~# cat /var/log/ntpstats/ntp 13 Jan 20:13:16 ntpd: Lyssnar på gränssnitt #5 eth0, fe80::a00:27ff:fec1:8059#123 Aktiverad 13 Jan 20:13: 16 ntpd: Lyssna på gränssnitt #6 eth0, 192.168.0.8#123 Aktiverad 14 jan 14:31:00 ntpd: synkroniserad till 62.117.76.142, stratum 1 14 jan 14:31:10:10 jan 14:31:10:10 14:31:10:10 resn. 14 :31:10 ntpd: ändring av status för kärnans tidsynkronisering 0001 14 jan 14:34:31 ntpd: synkroniserad till 88.147.255.85, stratum 1 14 jan 14:36:04 ntpd: synkroniserad till 62.114 jan 62.141 .76.117 .4117 . 04:36 ntpd: synkroniserad till 62.117.76.142, stratum 1 14 jan 15:10:58 ntpd: synkroniserad till 62.117.76.140, stratum 1 14 jan 15:17:54 4 jan 3d ntpd1: 3d ntpd : synkroniserad till 62.117.76.140, stratum 1 14 jan 15:32:14 ntpd: tidsåterställning +13.139105 s

Konfigurerar nätfilter (iptables) för NTP-server

Efter att ha konfigurerat servern skulle det vara trevligt att skydda den. Vi vet att servern körs på port 123/udp, medan förfrågningar också skickas från port 123/udp. Efter att ha läst artikeln och läst de praktiska kan du skapa regler för filtrering av nätverkstrafik:

Ntp ~ # iptables-save # generiska iptables-regler för DNS *filter:INPUT DROP :FORWARD DROP :OUTPUT DROP -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -m conntrack --ctstate INVALID -j DROP # tillåt LAN-åtkomst till NTP-server: -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 ACCEPTERA -A OUTPUT -o lo -j ACCEPTERA -A OUTPUT -p icmp -j ACCEPT -A OUTPUT -p udp -m udp --sport 32768:61000 -j ACCEPTERA -A OUTPUT -p tcp -m tcp --sport 32768:61000 -j ACCEPT -A OUTPUT -m conntrack --ctstate RELATED, ESTABLISHED -j ACCEPT # tillåt NTP-serveråtkomst att göra utgående förfrågningar -A OUTPUT -p udp -m udp --sport 123 --dport 123 -m conntrack --ctstate NYTT -j ACCEPTERA ÅTAGANDE

Detta är ett typiskt exempel! För att ställa in iptables-regler för dina uppgifter och nätverkskonfiguration måste du förstå hur nätfilter fungerar i Linux genom att läsa ovanstående artiklar.

Konfigurera klientdatorer

För att synkronisera tid på UNIX-maskiner lokalt nätverk, är det lämpligt att använda ntpdate-verktyget, köra det flera gånger om dagen, till exempel varje timme. För att göra detta måste du lägga till följande rad:

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

Omkopplaren -s styr utmatningen av kommandot. Om klientdatorerna har ett par extra megabyte RAM, så kan du starta ntpd-demonen, precis som på servern med följande konfiguration:

server begränsa standard ignorera begränsa noquery notrap limit 127.0.0.1 nomodify notrap

Jag tror att allt är klart i den här konfigurationen: tidskällan (servern) är en lokal ntpd-server, neka åtkomst för alla, tillåt endast den lokala ntpd-servern.

På klienter måste du också ange korrekt i vilket format du vill lagra tiden och välja rätt tidszon, .

För att konfigurera Windows NTP-klienten måste du köra följande kommandon i konsolen:

C:\>nettime /setsntp: Kommandot slutfördes framgångsrikt. C:\>net stop w32time Windows Time-tjänsten stannar. Windows Time-tjänsten stoppades. C:\>net start w32time Windows Time-tjänsten startar. Windows Time-tjänsten startade framgångsrikt. C:\>nettid /querysntp Det aktuella SNTP-värdet är: Kommandot slutfördes framgångsrikt.

Slutsats

Tja, som allt! Volymen på artikeln visade sig vara enorm ... jag förväntade mig inte ens det själv. Låt mig sammanfatta lite. I den här artikeln hoppas jag att det blev tydligt för oss vad som är och hur NTP-servern fungerar. Vi lärde oss hur man konfigurerar servern och klienterna på UNIX- och Windows-maskiner. Med några få ord är strukturen för tidssynkronisering i det lokala nätverket följande: Det finns 1,2 eller fler exakta tidsservrar i det lokala nätverket, de synkroniserar sin tid med Externa källor V globalt nätverk. Server- och klientinställningar är baserade på /etc/ntp.conf (huvudkonfigurationsfilen för ntpd-demonen), /etc/localtime (aktuell tidszonsfil), /etc/sysconfig/ntp (för RH) och /etc/default /ntp ( för Deb) - demonstartparameterfiler. För den lokala ntp-servern anges externa servrar i konfigurationsfilen för att ta emot tiden och åtkomst tillåts för dessa servrar med parametern restrict, såväl som för datorer i det lokala nätverket, för klienter är tidskällan angiven - lokala servrar i det lokala nätverket, och åtkomst nekas också för alla utom tidskällan i det lokala nätverket. Allt. Tack alla för er uppmärksamhet! Jag kommer gärna att kommentera!

  • (artikelarkiv) beskriver hur du ansluter GPS till servern för att organisera din Stratum1-nivå exakt tidsserver.
  • beskriver hur man konfigurerar auktorisering på ntp-servern.

Låt oss först bestämma varför vi behöver synkronisera tid på utrustning som: switchar, routrar, brandväggar och så vidare.

Detta görs i första hand för att spåra loggarna när den eller den händelsen inträffade. Och du kan föreställa dig vilken användning loggarna kommer att ha om tiden inte är synkroniserad .. rätt - nej.

Protokoll NTP fungerar på protokoll UDP, genom 123 port.

Detta protokoll har en viss hierarki för att synkronisera system, med andra ord nivåer.

Nivå 1 är tilldelad ett system som är synkroniserat med en mycket exakt klocka, till exempel via GPS.

Ett system som kommer att synkronisera från nivå 1 kommer att ha nivå 2, och så vidare.

Således kan vi bestämma hur exakt tiden är för den station som vi synkroniserar med.

I vår situation har vi en maskin på nätverket med den exakta tiden, jag har den konfigurerad baserat på FreeBSD, från denna maskin kommer huvudnätverksenheten att ta tiden (synkronisera) och därigenom bli den viktigaste för andra nätverksenheter(i ideologi kommer cisco att vara ntp mästaren).

Jag vill notera det faktum att tiden överförs via NTP endast i formatet UTC (Greenwich Mean Time), varje tidszon konfigureras direkt på järnbiten.

Låt oss titta på ett exempel på en enkel NTP-inställning.

Först synkroniserar vi tiden på vår huvudrouter (som kommer att distribueras till andra nätverksenheter). För att göra detta, gå till det globala konfigurationsläget:

ntp-server 10.0.100.254

där 10.0.100.254 i vårt fall är FreeBSD-maskinen som har den exakta tiden.

Detta räcker för minimal installation.

Låt oss nu kontrollera om vi kunde ansluta till tidsservern och få tiden från den, för detta använder vi kommandot:

borde se något sånt här:

Asterisken mittemot ip:n på vår ntp-server säger till oss att allt är bra, anslutningen är åtminstone upprättad.

Låt oss nu se om tiden är synkroniserad?

Om allt är synkroniserat bör vi se följande:

Klockan har tagits emot, nu måste du ställa in den tidszon du behöver där. Vi gör även följande i det globala konfigurationsläget:

klocktidszon MSK/MSD 3
Låt oss nu kolla tiden:

Allt är bra.

Låt oss gå vidare till att ställa in vår router i guideläge.

För den här inställningen behöver vi att den här routern är mästaren och indikerar nivån (i cisco kallas det stratumnumret), samma som jag talade om i början, jag kommer att ange den femte nivån.

Låt oss nu försöka konfigurera ntp på en annan setterenhet så att den synkroniserar från vår huvudrouter, detta görs på samma sätt som vi konfigurerade synkronisering från FreeBSD-servern ovan.

ntp-server 10.0.100.1 föredrar

där 10.0.100.1 är vår huvudrouter.

föredra detta är ett nyckelord som indikerar att denna ntp-server är en prioritet (det vill säga du kan föreskriva att du inte kan synkronisera från en server, utan från flera, så görs detta så att om en är otillgänglig, eller tiden är för olika från de andra, vilket indikerar vilka I vissa problem kan enheten byta till en annan tidsserver och föredrar gör denna server mer att föredra än andra.)

vi anger också vilken tidszon vi behöver.

klocktidszon MSK/MSD 3

Vi kontrollerar:

Allt är bra, allt fungerar.

Överväg nu frågan om säkerhet.

Låt oss först titta på frågan om att begränsa användningen av ACL:er, vem som kan synkronisera och vem som inte kan.

Allt är ganska standard och transparent.

Skapa motsvarande ACL på tidsservern:

åtkomstlista 20 anmärkning ÅTKOMST till NTP Syncåtkomstlista 20 tillstånd 10.0.100.3

nu kommer vi att binda denna åtkomstlista till ntp.

ntp access-group server-only 20

Om allt är korrekt konfigurerat kommer anslutningen till ntp-servern att upprättas och synkroniseringen kommer att lyckas.

Du kan också lägga till en åtkomstlista till klienterna. Vilka tidsservrar som kan nås. Detta görs på liknande sätt:

åtkomstlista 20 anmärkning ÅTKOMST SYNC till NTP Servåtkomstlista 20 tillstånd 10.0.100.1

Bind åtkomstlistan till NTP

ntp-åtkomstgrupp peer 20

Låt oss nu titta på autentiseringsbaserad säkerhet.

Allt är också ganska genomskinligt.

Lägg bara till följande till ntp-konfigurationen:

ntp-autentiseringsnyckel 1 md5 15060E1F10243F34 7ntp autentiserantp betrodd-nyckel 1
med det första kommandot ställer vi in ​​autentiseringsnyckeln, det andra aktiverar vi autentisering och med det tredje anger vi att autentisering ska utföras med den första nyckeln. Vi konfigurerar detta på varje sida (server - klient). Det är allt. Det blev en liten introduktionskurs om att konfigurera NTP på Cisco-enheter. För felsökning använder vi:
ASW-M#debug ntp ?justera NTP-klockanNTP-autentiseringevenemang NTP-evenemangloopfilter NTP loopfilterpaket NTP-paketparams NTP-klockparametrarrefclock NTP-referensklockorvälj val av NTP-klockasynkronisera NTP-klocksynkroniseringGiltighet för NTP peer clockASW-M#debug ntp
Vi slår på allt som vi är intresserade av till exempel event, sync, auth och ser vad som händer Om vi ​​loggat in på enheten via ssh/telnet, glöm inte ter mon 🙂


Topp