05 Zeitsynchronisation: Unterschied zwischen den Versionen
| Zeile 33: | Zeile 33: | ||
* Global verfügbar | * Global verfügbar | ||
* Zivile Nutzung abhängig vom US-Militär | * Zivile Nutzung abhängig vom US-Militär | ||
* Europäisches Galileo seit 2024 im Einsatz [https://de.wikipedia.org/wiki/Galileo_(Satellitennavigation) Aktueller Stand] | * Europäisches Galileo seit 2024 im Einsatz ([https://de.wikipedia.org/wiki/Galileo_(Satellitennavigation) Aktueller Stand]) | ||
== Funktionsweise von NTP == | == Funktionsweise von NTP == | ||
Version vom 31. März 2025, 11:56 Uhr
Peripheriegeräte im Netzwerkbetrieb
Die Bedeutung der Zeitmessung
Zeit ist eine der genauesten physikalischen Einheiten. Seit dem 17. Jahrhundert kennen wir die astronomische Zeitmessung mit dem mittleren Sonnentag (24 Stunden = 86400 Sekunden).
1946 wurde die Atomuhr entwickelt. Seit 1967 ist die Sekunde durch die 9.192.631.770 Schwingungen des Cäsium-133-Atoms definiert.
Schaltsekunden
Da die Erdrotation variiert, wurde 1972 die Schaltsekunde eingeführt. Sie gleicht Unterschiede zwischen UTC und UT1 aus.
Schaltsekunden werden in der Regel am 30. Juni oder 31. Dezember nach 23:59:59 UTC als zusätzliche Sekunde (23:59:60) eingefügt.
Beispielproblem: Am 30. Juni 2012 kam es weltweit zu Serverproblemen (Linux-Kernel 2.6.26 – 3.3, MySQL, Java). Google löste das Problem durch "Leap Smearing".
Network Time Protocol (NTP)
NTP sorgt für präzise Zeitangaben in Netzwerken (z. B. für AD, NFS, Cluster, Logvergleich).
Externe Zeitgeber
DCF77
- Standort: Mainflingen, Deutschland
- Frequenz: 77.5 kHz
- Betreiber: Physikalisch-Technische Bundesanstalt (PTB)
- Genauigkeit: 10^-12 (≈ 1 Sekunde in 30.000 Jahren)
TDF
- Standort: Paris, Frankreich
- Genaueste Atomuhr (Cäsium-Fontäne)
- Abdeckung: ganz Europa (2000 kW)
GPS
- Global verfügbar
- Zivile Nutzung abhängig vom US-Militär
- Europäisches Galileo seit 2024 im Einsatz (Aktueller Stand)
Funktionsweise von NTP
NTP kommuniziert über UDP Port 123. Es nutzt mehrere Zeitquellen (Multicast, Broadcast, Unicast) und aktualisiert die Zeit in kleinen Schritten, um Dienste nicht zu stören.
Zeitabfrageprozess
- Client sendet Anfrage mit Timestamp A
- Server empfängt bei X, antwortet bei Y
- Client empfängt bei B
- Berechnet Laufzeit: B-A-(Y-X)
- Korrigiert seine Systemzeit
Stratum-System
- Stratum 0: z. B. GPS, DCF77 (Primärquellen)
- Stratum 1: Lokaler Server, der Zeit direkt von Stratum 0 bezieht
- Stratum 2+: Clients und nachgeschaltete Server
Zeitdarstellung
- 64-Bit Zeitstempel (32 Bit Sekunden seit 1.1.1900, 32 Bit Bruchteile)
- Genauigkeit bis ca. 0,23 Nanosekunden
Erkennung falscher Zeitangaben (Byzantinischer Fehler)
NTP erkennt falsche Zeitserver mit einem Konsens-Algorithmus, der dem byzantinischen Generäle-Problem ähnelt. Falschinformationen werden ausgeschlossen, solange weniger als ein Drittel kompromittiert sind.
Reale Auswirkungen
Beispiel: Lufthansa-Flug 2014 – vereiste Sensoren lieferten falsche, aber gleiche Daten. Bordcomputer steuerte in den Sinkflug.
Konfiguration auf einem Raspberry Pi
Installation von NTP
sudo apt-get install ntp
Zeitserver eintragen (z. B. für die Schweiz)
sudo nano /etc/ntp.conf # Evt. liegt die Datei auch hier: sudo nano /etc/ntpsec/ntp.conf server 0.ch.pool.ntp.org iburst server 1.ch.pool.ntp.org iburst server 2.ch.pool.ntp.org iburst server 3.ch.pool.ntp.org iburst server ntp.metas.ch iburst
Dienst starten/stoppen
sudo systemctl stop ntp sudo systemctl start ntp
Abfrage der Synchronisation
ntpq -p
Ausgabe von ntpq -p
Bedeutungen
- `remote`: Zeitserver
- `refid`: Quelle des Servers
- `st`: Stratum-Level
- `t`: Typ (u = unicast, l = local, m = multicast)
- `when`: Zeit seit letzter Antwort
- `poll`: Abfrageintervall
- `reach`: Erreichbarkeit (377 = 8/8 erfolgreich)
- `delay`: Antwortzeit in ms
- `offset`: Zeitdifferenz in ms
- `jitter`: Schwankung in ms
Markierungen
- `*`: Aktuelle Zeitquelle
- `+`: Im Mittelwert enthalten
- `x`: Ungültige Quelle
- `#`: Quelle außerhalb der Distanz
- `o`: Pulse-per-Second
- `-`: Ausgeschlossen durch Algorithmus
- `.`: Letzter Kandidat