Göm menyn

TDDI41 Grundläggande systemadministration

Labb NTP: Synkroniserade klockor


Det spelar ofta rätt stor roll om man vet vad klockan är. En del händelser går att ordna genom att bara se hur många klockcykler som gått sedan systemet startade, men i väldigt många andra fall är det relevant med tidsstämplar som går att jämföra system emellan. Om man till exempel vill jämföra loggfiler, utföra någon viss handling vid en viss tid, eller kontrollera om certifikats giltighetstid har gått ut, är det högst relevant.

Att distribuera extremt precisa tidsuppgifter på ett effektivt sätt över nätverk med fördröjningar, och i system som inte utför allt på ett ögonblick är såklart inte ett trivialt problem. Detta utöver frågan om vad som egentligen är rätt tid att distribuera. NTP är ett förhållandevis uråldrigt protokoll som tar sig an denna uppgift. Ni kan läsa mer om detta på Wikipedias sida om NTP, eller i RFC 5905 (standarddokumentet för NTP v4). Gör det så att ni får en överblick (ni behöver inte kunna alla detaljer i standarden)! Lite vägledning ges av frågorna nedan.

Som ni inser har tidsstämplar rätt stora säkerhetsimplikationer. NTP litar, i likhet med många gamla protokoll då internet var mindre och snällare, i rätt hög utsträckning på data från omvärlden. Network Time Security (se RFC 8915) försöker införa ett säkra kommunikations sätt för NTP. Detta är bredvidläsning för den intresserade.

Grunderna i NTP - [NTP.1]

  1. Varför NTP är stratifierat (har strata, som på engelska heter stratum)? Varför talar man inte bara direkt med någon referensserver?
  2. En NTP-klient brukar inte bara ändra systemklockan till en viss tid direkt, utan ökar/minskar hastigheten så att man når målet lite mjukare. Varför?
  3. Installera paketet ntp på er router. Kör ntpq -p och förklara vad de olika kolumnerna betyder, och hur man ska tolka att det finns flera rader i tabellen. Ta med utdata från kommandot.

Inlämning: En kortfattat beskrivning i era egna ord.

Konfiguration av NTP

Ni har redan installerat en NTP-klient och servermjukvara på routern (fundera på varför ni gör det på just denna dator!). Ni ska nu se till att era klienter får sin tid därifrån. Det kan vara värt att läsa på till exempel om ntp (programmet), ntpq och ntp.conf. Som vanligt finns det relevanta paket, och man-sidor.

Konfiguration av NTP - [NTP.2]

Konfigurera NTP så att din lösning uppfyller kraven nedan:

  1. Klienterna ska använda routern som NTP-server (antingen explicit, eller genom att lyssna på broadcasts från servern).
  2. Routern ska få tid via se.pool.ntp.org.
  3. Ingen peer får uppdatera routerns klocka!
Kör sedan ntpq -p på en av klienterna. Hur ser man på detta utdata att er output i någon mening är vettig relativt kraven?

Inlämning: Relevanta konfigurationsfiler, med eventuella kommentarer om val (där det var möjligt) och svar på frågor.

Testning

Testning av NTP-konfiguration - [NTP.3]

Skriv automatiska tester som visar åtminstone att:

  • konfigurationen ovan (av routern) är korrekt,
  • konfigurationen ovan (av klienter) är korrekt,
  • att servern svarar på queries, och
  • att servern till slut ger tid med någorlunda vettiga marginaler – fundera på vad detta innebär!

Inlämning: Skript och utdata.

Redovisning

Demonstrera för er labbassistent, och visa att testerna fungerar. Skicka sedan era lösningar för uppgifterna till er labbassistent enligt de allmänna instruktionerna kring inlämning.


Sidansvarig: Daniel de Leng
Senast uppdaterad: 2025-08-13