TDDI41 Grundläggande systemadministration
NTP - Network Time Protocol
Eventuell changelog finns längst ned på sidan
OBS! Som alltid, följ de allmänna instruktionerna kring inlämning, och kopiera in vad ni gjorde och utdata. Se exempel på sidan.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. Ett nytillskott i standardfloran (2020) är Network Time Security (se RFC 8915) som försöker införa ett säkra kommunikations sätt för NTP . Detta är bredvidläsning för den intresserade.
Labben uppdateras (nämndvärda ändringar HT24)
- 241107: uppdaterat att vi kör ntpq i VM
- Varför NTP är stratifierat (har strata, som på engelska heter stratum)? Varför talar man inte bara direkt med någon referensserver?
- 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?
- Installera paketet
ntp
på er router. Körntpq -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.
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.
- Klienterna ska använda routern som NTP-server (antingen explicit, eller genom att lyssna på broadcasts från servern).
- Routern ska få tid via
se.pool.ntp.org
. - Ingen peer får uppdatera routerns klocka!
Inlämning: Relevanta konfigurationsfiler, med eventuella kommentarer om val (där det var möjligt).
Testning och redovisning
Kör ntpq -p
på en av klienterna.
Inlämning: Bifoga och förklara utdata! Hur ser man på detta utdata att er output i någon mening är vettig relativt kraven?
Skriv automatiska tester som visar åtminstone att
- konfigurationen ovan (av routern) är korrekt
- konfigurationen ovan (av klienter) är korrekt
- att servern svarar på queries
- att servern till slut ger tid med någorlunda vettiga marginaler (fundera på vad detta innebär!)
Demonstrera för er labbass, och visa att testerna fungerar.
Skicka sedan innan svar på frågorna, era tester, samt tillräcklig information för att kunna sätta upp ett system identiskt med det ni satt upp (förslagsvis genom en beskrivande text, eller konfigurationsfiler).
Changelog innevarande termin
- 241107: Lade till understrykande av att de allmänna instruktionerna ska följas.
- 241107: ntpq körs numera i VM, inte på LiU-system.
Sidansvarig: Anders Fröberg
Senast uppdaterad: 2024-12-12