tripod
Goto Top

Mikrotik: Datum und Uhrzeit im Netzwerk verteilen

Moin,

innerhalb meines Netzwerks habe ich bei den Segmenten, die keinen Internetzugang haben, dass Problem, dass deren Datums/Uhrzeiteinstellungen im Verlauf zunehmend ungenauer werden oder sie einfach gar keine Datums/Uhrzeitdaten haben.

Daher möchte ich den Mikrotik (MT) als Zeitserver im Netz verwenden. Dabei habe ich aber a) ein paar NTP-Wissenslücken und b) ein Verständnisproblem wie man das beim MT am besten löst. Offenbar gibt es mehrere Stellen, an denen man konfigurieren kann.

Gerade im Segment für das Smarthome sind viele unterschiedliche Geräte im Einsatz. Bei den IP-Kameras ist es z.B. unschön, wenn der Zeitstempel im Bild nicht zur echten Zeit passt. Bei einigen Geräte wie den Shellys kann man z.B. einen SNTP-Server als Ziel angeben. Bei anderen Geräten kann man außer typischen Zeitzone/Datum/Uhrzeit-Einstellung augenscheinlich nix konfigurieren.

Die Frage ist nun, wie ich diesen Geräte-Zoo am besten mit Zeitinformationen versorgen kann - grobes Kochrezept bisher:
  • Zusätzliches Package installieren, damit NTP-Client und Server verfügbar sind
  • ... aber dann wird es bereits mau ... muss man z.B.
für jedes Segment einen NTP-Server konfigurieren (unter System / NTP-Server)?
in jedem DHCP-Server (je Segment) unter NTP-Servers den MT mit einer IP in dem Segment angeben?
** in jedem DHCP-Server (je Segment) unter den DHCP Options die Option 42 (NTP_LIST) angeben (mit der IP des MT in dem Segment)?

Fragen über Fragen - für ein paar Tipps wäre ich sehr dankbar!

Gruß,
Tripod

Content-ID: 667304

Url: https://administrator.de/contentid/667304

Ausgedruckt am: 26.11.2024 um 08:11 Uhr

lcer00
lcer00 04.06.2021 um 08:14:09 Uhr
Goto Top
Hallo,

Solange der NTP-Server erreichbar ist, ist es egal, wo der sich befindet. Ich würde nur einen Zeitserver für das Netzwerk verwenden. Die Zeitserver-Daten kannst Du per DHCP verteilen (dort darf ein Zeitserver von "außerhalb" des DHCP-Bereiches stehen). Mache Clients benötigen aber auch eine direkte Konfiguration ihres DHCP-Clients (z.B. oft Switche).

Zum Schluss musst Du noch sicherstellen, dass die Clients den Server erreichen können, indem Du das Routing überprüfst und die NTP in der Firewall entsprechend freischaltest. Achtung, meist wird zwar UDP angegeben, aber aber TCP wird auch verwendet.

Grüße

lcer
aqui
aqui 04.06.2021 aktualisiert um 09:44:09 Uhr
Goto Top
Fragen über Fragen
Warum ? Das gehört mit zu den wirklich leichtesten Übungen auf einem MT und ist eigentlich ganz einfach:
  • Unter System -> SNTP Client diesen aktivieren und einen Uplink NTP einstellen, damit der MT sich selber die korrekte Zeit ziehen kann. Öffentliche NTP Server findest du HIER.
  • Dann konfigurierst du den MT so das er selber auch NTP Server im Netz ist. Wie das geht steht HIER.
  • Sofern du Endgeräte hast die sich den NTP Server auch per DHCP Option 42 ziehen können solltest du zusätzlich bei allen DHCP Server noch die Option 42 auf die jeweilige MT IP Adresse im DHCP als NTP Server setzen.
ntp
  • Fertisch
So hast du alle NTP Optionen gezogen die dir die korrekte Uhrzeit im Netzwerk sicherstellen !
Lochkartenstanzer
Lochkartenstanzer 04.06.2021 aktualisiert um 09:53:03 Uhr
Goto Top
Zitat von @aqui:

67af5ebccdcd903605b1e08f46c51b3d


İch würde nicht ausgerechnet die TU Berlin als Beispiel nehmen. Die zeigen gerade ihre İT-İnkompetenz. face-smile

lks
aqui
aqui 04.06.2021 um 09:54:40 Uhr
Goto Top
Wie peinlich !! 😱
Na ja mit Erlangen gibt es ja eine gute Alternative und man muss zudem noch weniger tippen beim Hostnamen... face-wink
colinardo
colinardo 04.06.2021 aktualisiert um 09:55:48 Uhr
Goto Top
Zitat von @aqui:
  • Sofern du Endgeräte hast die sich den NTP Server auch per DHCP Option 42 ziehen können solltest du zusätzlich bei allen DHCP Server noch die Option 42 auf die jeweilige MT IP Adresse im DHCP als NTP Server setzen.
Die Option muss man nicht zusätzlich definieren den gibt es schon fertig als Option in den DHCP Network Definitions face-wink

screenshot

Grüße Uwe
aqui
aqui 04.06.2021 aktualisiert um 09:56:06 Uhr
Goto Top
Stimmt ! Im Eifer des Gefechts glatt übersehen ! Danke für den Hinweis... 👍
Tripod
Tripod 04.06.2021 um 10:52:08 Uhr
Goto Top
Moin,

danke eure für die Rückmeldungen!


Zitat von @aqui:
Unter System -> SNTP Client diesen aktivieren und einen Uplink NTP einstellen, damit der MT sich selber die korrekte Zeit ziehen kann. Öffentliche NTP Server findest du HIER.

SNTP und NTP Client parallel geht glaube ich nicht? Ich habe habe es noch nicht probiert, aber die Dokumentation liest sich so, dass die Funktion automatisch deaktiviert wird, sobald man das NTP package installiert.


Zitat von @aqui:
Dann konfigurierst du den MT so das er selber auch NTP Server im Netz ist. Wie das geht steht HIER.

OK, d.h. man nimmt nur einen NTP Server für alle Segmente (und muss die FW Regeln bzgl. Port 123 durchlässig machen). Je Segment einen NTP Server ist vermutlich oversized.
Tripod
Tripod 04.06.2021 um 10:53:02 Uhr
Goto Top
Moin,

danke eure für die Rückmeldungen!

Zitat von @colinardo:
Die Option muss man nicht zusätzlich definieren den gibt es schon fertig als Option in den DHCP Network Definitions.

OK, das war auch eine meiner Fragen, wo der Unterschied zwischen den Dialogen zur "manuellen" Eingabge der Option 42 und genau dieser Einstellmöglichkeit liegt.
colinardo
colinardo 04.06.2021 aktualisiert um 13:27:32 Uhr
Goto Top
Zitat von @Tripod:
SNTP und NTP Client parallel geht glaube ich nicht? Ich habe habe es noch nicht probiert, aber die Dokumentation liest sich so, dass die Funktion automatisch deaktiviert wird, sobald man das NTP package installiert.
Doch das ist kein Problem, läuft hier seit Jahren einwandfrei face-smile. Irgendwoher muss der Mikrotik ja seine eigene Zeit beziehen...
Das ist in der Hilfe nur etwas missverständlich geschrieben. Damit ist gemeint das die SNTP-Client Implementierung aus dem Default-Package deaktiviert wird, aber im zusätzlichen NTP Package ist auch ein SNTP-Client enthalten der genutzt werden kann.

OK, d.h. man nimmt nur einen NTP Server für alle Segmente (und muss die FW Regeln bzgl. Port 123 durchlässig machen). Je Segment einen NTP Server ist vermutlich oversized.
Richtig.
Tripod
Tripod 05.06.2021 aktualisiert um 17:34:14 Uhr
Goto Top
Also ich habe nun ...
  • das NTP Package installiert
  • NTP-Client konfiguriert
  • NTP-Server konfiguriert
  • in den DHCP-Server-Konfigurationen für jedes Segment jeweils die IP des MT als NTP-Server eingetragen
  • an der FW habe ich nix geändert, sondern mir die Logs angeschaut. Der NTP-Client kommt ins WAN.

Dummerweise habe ich nun nach der Konfiguration festgestellt, dass
  • die Shelly-Wifi-Schalter ausschließlich mit einem SNTP-Server sprechen (und offenbar nicht mit einem NTP-Server?) face-sad
  • die IP-Cams lediglich eine vordefinierte Auswahlliste öffentlicher NTP-Server einstellbar haben (und nicht eine individuelle IP zulassen) face-sad

Wie kann ich die gesamte Konfiguration am besten testen?

Hinweis: Die Winbox scheint bzgl. der Konfiguration des NTP Clients einen Fehler aufzuweisen: Der Status bleibt immer auf "stopped". Wenn man sich den Status per Console mittels system ntp client print, dann steht dieser aber auf "synchronized".
colinardo
Lösung colinardo 05.06.2021 aktualisiert um 22:39:55 Uhr
Goto Top
Nun wenn du intern nur bestimmte Ports in der INPUT Chain freigibst dann musst du dort auch Port 123 UDP/TCP in der Firewall freigeben.
/ip firewall filter
add chain=input in-interface=ether8 protocol=udp dst-port=123 action=accept
add chain=input in-interface=ether8 protocol=tcp dst-port=123 action=accept
(natürlich nur ein Beispiel mit Interface Angabe und ohne Berücksichtigung der Filter-Position in deinen Chains, das musst du bei dir selbstredend anpassen!)
Dummerweise habe ich nun nach der Konfiguration festgestellt, dass
  • die Shelly-Wifi-Schalter ausschließlich mit einem SNTP-Server sprechen (und offenbar nicht mit einem NTP-Server?) face-sad
Ein NTP Server beantwortet auch SNTP Anfragen das Basis-Protokoll ist das gleiche, das ist also kein Problem.
https://de.wikipedia.org/wiki/Network_Time_Protocol
Zitat:
Der Aufbau des Protokolls ist mit dem von NTP identisch. SNTP-Clients können damit die Zeit auch von NTP-Servern beziehen.

* die IP-Cams lediglich eine vordefinierte Auswahlliste öffentlicher NTP-Server einstellbar haben (und nicht eine individuelle IP zulassen) face-sad
Wenn du dort keine anderen Server eintragen kannst du dir einfach behelfen indem du am Mikrotik per DSTNAT Anfragen auf Port 123 auf den Mikrotik umbiegst.

Beispiel (Interface natürlich anpassen)
/ip firewall nat 
add action=redirect chain=dstnat dst-port=123 in-interface=ether8 protocol=udp to-ports=123
add action=redirect chain=dstnat dst-port=123 in-interface=ether8 protocol=tcp to-ports=123
Damit werden dann sämtliche Anfragen auf TCP/UDP Port 123 aus dem jeweiligen Interface auf den NTP-Server des Mikrotik umgebogen, d.h. dieser beantwortet die NTP Anfragen anstatt die ursprünglich angefragten öffentlichen IPs.

Hier siehst du das im Testlab umgesetzte:

Ein Archlinux mit IP 192.168.200.2/24 hat durch die Mikrotik (IP 192.168.200.1) Firewall keinen Internetzugang, NTP-Anfragen werden wie oben beschrieben per DSTNAT auf den Mikrotik selbst umgeleitet und von diesem beantwortet

screenshot

Hier siehst du wie der Mikrotik dann selbst die NTP Anfrage beantwortet im Wireshark-Protokoll (dieser "faked" ja durch das NAT die externe IP, lässt es also für den Client so aussehen als käme die Antwort tatsächlich von der externen IP).

screenshot

Wie kann ich die gesamte Konfiguration am besten testen?
Nimm dir z.B. eine Linux Büchse und lass diese mit dem Router synchronisieren (z.B. mittels timedatectl).
In der /etc/systemd/timesyncd.conf gewünschten NTP-Server in der NTP= Direktive hinterlegen und dann

sudo timedatectl set-ntp 1
sudo systemctl restart systemd-timesyncd
timedatectl show-timesync
timedatectl timesync-status

Hinweis: Die Winbox scheint bzgl. der Konfiguration des NTP Clients einen Fehler aufzuweisen: Der Status bleibt immer auf "stopped". Wenn man sich den Status per Console mittels system ntp client print, dann steht dieser aber auf "synchronized".
Hmm also hier zeigt die Winbox auch Synchronized an, fahr mal ein Update deiner Winbox. Wird nur ein Anzeigefehler sein wenn die Shell Synchronized ausgibt.

Works as designed, wie @aqui immer sagt face-smile.
Tripod
Tripod 05.06.2021 um 22:28:13 Uhr
Goto Top
@colinardo

Vielen Dank für die ausführliche Info!

Ich hatte tatsächlich in FW Regeln in der Input Chain vergessen. Nachdem die drin waren, haben die Shellys, bei denen die IP des MT eingetragen war sich eine Uhrzeit gezogen.

Der Tipp mit dem Redirect ist klasse. Dadurch kann ich mir das Eintragen der IP praktisch sparen! Da wo es geht (Shellys) werde ich sie dennoch eintragen - bei den IP-Cams, also da wo es nicht geht, ist es die Rettung!