Grunder om NTP

Som standard har nätverksenheter sin egen tidsmekanism eller klocka. När nätverksenheter är anslutna till varandra med olika tidsinställningar, kan program eller tjänster inte fungera som man önskar sig eller leverera oväntade resultat.

Låt oss förstå situationen med ett par exempel.

En användare fick följande meddelande: “Certifikatet är felaktigt” när han försökte få tillgång till bankens hemsida så han ringde support. Supportteknikern ville identifiera tidsinställningen på användarens dator och mycket riktigt den var felaktig. När inställningen konfigurerades korrekt kunde användaren ansluta sig till bankens webbplats.

Men hur kunde en så enkel tidställning ha påverkat kommunikationen med banken? För att mildra säkerhetsrisker (t.ex. phishing attack), brukar webbplatser utfärda ett tidsbegränsade digitalt certifikat. Webbläsare använder sådana certifikat för att kontrollera webbplatsens identitet. Webbläsare använder det lokala systemets tid för att verifiera certifikatet. Om webbläsaren märker någon ovanlig skillnad mellan båda tiderna, validerar den inte certifikatet och utfärdar ett varningsmeddelande till användaren.

Låt oss ta ett annat exempel. Försäljningsavdelning av ett företag öppnar klockan 8.00 och stänger klockan 19.00. Företaget vill tillåta användare att komma åt sin server endast under öppettider. Så den lokala nätverksadministratören konfigurerar en tidsbaserad brandvägg i en router som förbinder användare med server. I den här routern klockan går 12 timmar före serverns klocka. Kommer användare åt server och logga in i uppsatta tiden?

Nej, användarna kommer aldrig att kunna logga in på servern på arbetstid. Routern använder sin egen klocka för att verifiera åtkomsten. Men varifrån får routern sin tid och hur exakt är den?

NTP

Network Time Protocol (NTP) är ett av Internet äldsta protokoll som fortfarande används i dagens nätverk. Uppfunnen av Dr David Mills från University of Delaware har NTP använts sedan 1985. NTP är utformad för att synkronisera klockorna på datorer och nätverk över Internet.

NTP är faktiskt tre saker i en:

  • ett program som körs i bakgrunden av Windows eller UNIX
  • ett protokoll som utbyter tidsvärden mellan servrar och klienter
  • en uppsättning av algoritmer som hanterar tidsvärdena för att anpassa systemklockan.

NTP använder en algoritm (Marzullos algoritm) för att synkronisera tiden i ett nätverk med en tidsreferens. Även om nätverk kan synkroniseras med interna klockor eller internetbaserad tidsreferens, rekommenderas det starkt av Cisco, Microsoft och andra att en extern tidsreferens bör användas för att garantera autentisering. En absolut tidreferens bör använda UTC (Coordinated Universal Time) som stöder tidsjusteringar att kompensera jordens rotationsrörelse.

NTP använder tidsstämplar för att representera den aktuella tiden i referens atomklockar. Avståndet från referensklockan till NTP servrar kallas stratum eller nivåer. Dessa stratum indikerar hur tillförlitligt är tidsstämplarna. NTP kan stödja upp till 256 stratum.

NTP-tidsstämplar finns i två format som grundar sig i ett tidsreferens inställd 1 januari 1900. Alla tidsavvikelser utgår just från denna tidspunkt. Sverige till exempel har en avvikelse på ett eller två i sina klockor.

NTP-programmet (känd som en daemon på UNIX och en tjänst på Windows) körs i systembakgrunden. NTP vägrar att godkänna tiden tills det verifieras av ett antal uppdateringar mellan NTP servrar. Det görs tester under fem minuter mellan dessa servrar för att verifiera tiden och synkronisera den.

NTP Stratum

Stratum 0 körs på avancerade datorliknande maskiner och inte vanliga servrar eller routrar. Vanligtvis används denna Stratum av försvars-, forsknings-, och rymds centraler eftersom tidssynkronisering med stratum 0 kräver kraftiga antal CPU och mängder av RAM-minne. Vanliga datorer och nätverksenheter synkroniserar aldrig sina klockor med atomklockor. Detta gäller också på Cisco-routrar. Istället används publika stratum 1 servrar.

Bild 1: NTP

Dessa publika stratum 1 servrar synkroniserar sina klockor med Stratum 0 system. Samtidigt är publika NTP-servrar lätt att kommunicera med vanliga datorer eller datorliknande maskiner. Det innebär att vi kan konfigurera vilken Cisco-router som helst att använda Stratum 1 publika servrar.

I verkligheten använder företag vanligtvis en dedikerad NTP-server (server) i någon lägre stratum än 1 och senare används denna NTP-server som centraliserad tidskälla i hela nätverket.

I denna laboration får vi använda routerns interna klocka som NTP-källa eftersom Gonzalo har inte råd att köpa en atomklocka. Oavsett vilken tidskälla vi använder är konfigurationsstegen desamma.

  • Justera routerns klocka (NTP source)
  • Konfigurera ett loop back interface
  • Lägg till det interfacet i routing-tabellen
  • Konfigurera NTP servern
  • Konfigurera activa interfaces som ska agera som NTP servrar

NTP i Cisco router

En Cisco router kan konfigureras i tre olika arbetssätt:

  • NTP server only – Routern läser av tiden från NTP-källan. Om inte vi manuellt definierar NTP-källan använder routern sin egen klocka som NTP-källa. När NTP-källa är konfigurerad, annonserar NTP Server-router den här tiden i nätverket. Den accepterar inte någon NTP-uppdatering för annan NTP-server.
  • NTP Server /Client – Routern synkroniserar tiden grundad i uppdateringar från NTP servern. NTP server/client annonserar den uppdaterad tiden till anslutna NTP klienter.
  • NTP Client only – Routern får enbart använda tiden enligt NTP-uppdateringar.