Een lokale NTP-server configureren op MikroTik RouterOS
RouterOS synchroniseren met meerdere bronnen, de tijd via DHCP distribueren naar het LAN, UDP 123 beveiligen en optioneel koppige clients omleiden.
Een exacte tijd is geen cosmetisch detail. De logs van een firewall, TLS-certificaten, authenticatie, geplande taken, back-ups en incidentcorrelatie zijn allemaal afhankelijk van consistente klokken. Wanneer elke camera, NAS, server en verbonden apparaat zijn eigen dienst op internet bevraagt, verliest de beheerder zowel zicht als controle.
RouterOS 7 kan dit probleem oplossen door twee rollen te vervullen : NTP-client naar meerdere externe bronnen, en vervolgens unicast NTP-server voor het lokale netwerk. De clients gebruiken dan het adres van de MikroTik als referentie. Een omleidingsregel kan ook de UDP 123-verzoeken die naar buiten worden gestuurd opvangen, maar deze maatregel moet facultatief en gecontroleerd blijven.
Architectuur en beperkingen
De aanbevolen stroom is eenvoudig : meerdere NTP-bronnen voeden RouterOS, RouterOS kondigt zijn adres aan via DHCP, en vervolgens bevragen de clients hem via unicast. De firewall staat UDP 123 vanaf het LAN toe en weigert verzoeken die vanuit het WAN binnenkomen.
De voorbeelden gebruiken :
- het netwerk
192.168.88.0/24; - de router
192.168.88.1; - de interfacelijsten
LANenWAN; - de tijdzone
Europe/Brussels; - vier namen van de Belgische NTP-pool.
Pas de adressen, de WAN-interface en de tijdzone aan. NTP transporteert de tijd in UTC ; de tijdzone verandert alleen de lokale weergave van de router en de tijdstempel die door zijn hulpprogramma's wordt gepresenteerd.
1. Back-up maken en voorwaarden controleren
Werk vanuit het LAN en activeer de Safe Mode met Ctrl+X. Bewaar een export en een binaire back-up voordat u de firewall of DHCP aanpast.
/export file=avant-ntp
/system backup save name=avant-ntp
/system resource print
/system clock print
/system ntp client print
/system ntp client servers print detail
/system ntp server print
/ip dhcp-server network print detail
NTP-servernamen vereisen een functionerende DNS-resolutie. Controleer ook de IP-toegang.
:put [:resolve 0.be.pool.ntp.org]
/ping 1.1.1.1 count=4
2. De tijdzone instellen
/system clock
set time-zone-name=Europe/Brussels
/system clock print
De tijdzone-database van RouterOS past automatisch de zomertijd toe volgens de regels van de tijdzone. Vermijd een vaste UTC-offset : deze zou onjuist worden bij de seizoenswissel.
3. Meerdere NTP-bronnen kiezen
De RFC 8633-best-practicesgids beveelt ten minste vier onafhankelijke bronnen aan wanneer een betrouwbare tijd belangrijk is. Vier bronnen maken het mogelijk om drie meningen te behouden als er een onbeschikbaar of inconsistent wordt.
Voor een netwerk in België publiceert het NTP Pool Project 0.be.pool.ntp.org tot 3.be.pool.ntp.org. Namen zijn te verkiezen boven hardgecodeerde adressen : de pool kan de door DNS geretourneerde servers vernieuwen. Voor een kritieke infrastructuur gebruikt u beter contractueel beheerde bronnen, interne klokken of een specifieke architectuur.
/system ntp client
set enabled=yes mode=unicast
/system ntp client servers
add address=0.be.pool.ntp.org comment="NTP Pool BE 0"
add address=1.be.pool.ntp.org comment="NTP Pool BE 1"
add address=2.be.pool.ntp.org comment="NTP Pool BE 2"
add address=3.be.pool.ntp.org comment="NTP Pool BE 3"
De standaardwaarden min-poll=6, max-poll=10 en iburst=yes zijn over het algemeen geschikt. Verminder de intervallen niet agressief : dit maakt de klok niet magisch nauwkeuriger en verhoogt de belasting van diensten die grotendeels door vrijwilligers worden aangeboden.
Als het WAN ook NTP-servers via DHCP ontvangt, kunnen deze verschijnen als dynamische vermeldingen. Voor een volledig gecontroleerde selectie schakelt u hun import uit op de betreffende DHCP-client nadat u de interface hebt geïdentificeerd.
/ip dhcp-client print detail
/ip dhcp-client
set [find where interface="ether1"] use-peer-ntp=no
Voer dit tweede commando niet uit als het WAN geen DHCP gebruikt of als de interface niet ether1 heet.
4. Controleren of RouterOS daadwerkelijk gesynchroniseerd is
/system ntp client print
/system ntp client servers print detail
/system ntp monitor-peers
Wacht op de status synchronized. Controleer ook synced-server, synced-stratum en system-offset. De peers moeten plausibele vertragingen en offsets vertonen. Een geslaagde DNS-resolutie bewijst niet dat de UDP 123-uitwisselingen daadwerkelijk slagen.
5. De unicast NTP-server activeren
Voor clients die expliciet zijn geconfigureerd met het adres van de router, volstaat het om de server te activeren. De broadcast-, multicast- en manycast-modi zijn in dit scenario niet nodig en voegen onnodig verkeer en een diagnostisch oppervlak toe.
/system ntp server
set enabled=yes broadcast=no multicast=no manycast=no \
use-local-clock=no
/system ntp server print
use-local-clock=no voorkomt dat de router zijn interne oscillator als een geldige referentie presenteert wanneer de upstream verdwijnt. De MikroTik-documentatie herinnert eraan dat deze klok onder andere afhankelijk is van temperatuur, energiebeheer en hardware : het is geen bron van nauwkeurigheid.
6. Het LAN toestaan en het WAN sluiten
De dienst luistert op UDP 123. Voeg een toelating toe voor de vertrouwde netwerken vóór de definitieve afwijzing van de keten input. Een standaard RouterOS-firewall blokkeert al nieuwe verbindingen vanuit het WAN, maar expliciete regels maken de intentie verifieerbaar.
/ip firewall filter
add chain=input action=accept in-interface-list=LAN \
protocol=udp dst-port=123 \
comment="NTP: LAN-clients toestaan"
add chain=input action=drop in-interface-list=WAN \
protocol=udp dst-port=123 \
comment="NTP: WAN-verzoeken weigeren"
Controleer de volgorde met /ip firewall filter print. De LAN-toelating moet voorafgaan aan een algemene afwijzing van het LAN, en de WAN-regel mag de gevestigde beschermingen niet vervangen zonder audit. Een onnodig blootgestelde NTP-server kan informatie verstrekken en, afhankelijk van de implementatie, deelnemen aan versterkingsmisbruik.
7. De router aankondigen met DHCP-optie 42
RouterOS heeft een veld ntp-server in elk DHCP-netwerk. Dit komt overeen met optie 42 en accepteert tot twee adressen.
/ip dhcp-server network
set [find where address="192.168.88.0/24"] \
ntp-server=192.168.88.1
/ip dhcp-server network print detail \
where address="192.168.88.0/24"
De clients moeten hun lease vernieuwen of opnieuw verbinding maken met het netwerk. DHCP legt het gebruik van optie 42 echter niet op : de server stuurt deze normaal alleen door als de client erom vraagt, en sommige systemen behouden hun eigen tijdbeleid. Werkstations die lid zijn van een domein moeten bijvoorbeeld de tijdshiërarchie respecteren die door dat domein is gedefinieerd.
8. UDP 123 omleiden : een optie, geen reflex
Een ingebed apparaat kan DHCP negeren en een hardgecodeerd NTP-adres bevragen. RouterOS kan UDP 123-verzoeken die bestemd zijn voor een niet-lokaal adres omleiden naar zijn eigen dienst.
/ip firewall nat
add chain=dstnat action=redirect to-ports=123 \
in-interface-list=LAN protocol=udp dst-port=123 \
dst-address-type=!local \
comment="NTP: LAN omleiden naar RouterOS"
Plaats deze regel vóór een meer algemene dstnat-regel die het pakket al zou onderscheppen. De test dst-address-type=!local voorkomt dat een verzoek dat al aan de router is gericht, wordt opgepakt.
De omleiding heeft vier belangrijke beperkingen :
- ze corrigeert geen defecte client die duizenden verzoeken verzendt : ze verplaatst de belasting naar de MikroTik ;
- ze maskeert voor de client de werkelijke identiteit van de bron en moet worden gedocumenteerd ;
- ze kan een geauthenticeerd NTP-beleid of een server die een nauwkeurige referentie moet bereiken, breken ;
- ze vervangt niet de configuratie van beheerbare apparaten.
Maak een uitsluitingslijst voor domeincontrollers, NTS-servers, GPS/PTP-apparatuur of laboratoria die een specifieke bron moeten bereiken, en voeg vervolgens src-address-list=!ntp-bypass toe aan de regel.
/ip firewall address-list
add list=ntp-bypass address=192.168.88.10 \
comment="Zelfstandige tijdserver"
/ip firewall nat
set [find where comment="NTP: LAN omleiden naar RouterOS"] \
src-address-list=!ntp-bypass
9. Testen vanaf meerdere systemen
Controleer eerst de RouterOS-tellers.
/ip firewall filter print stats where comment~"NTP:"
/ip firewall nat print stats where comment~"NTP:"
/ip firewall connection print where protocol=udp dst-port=123
/log print where topics~"ntp"
Bevraag vervolgens de router vanaf de clients.
# Linux avec chrony
chronyc sources -v
chronyc tracking
# Windows
w32tm /stripchart /computer:192.168.88.1 /dataonly /samples:5
# macOS
sntp -d 192.168.88.1
De Linux-commando's tonen de bron die daadwerkelijk door de lokale dienst is geselecteerd. Onder Windows en macOS bevestigt de punctuele test dat de MikroTik antwoordt ; het bewijst niet dat het systeem zijn permanente bron heeft gewijzigd. Controleer vervolgens de configuratie van de tijdsdienst die eigen is aan het platform.
Veiligheid en nauwkeurigheid
Klassieke NTP is niet versleuteld en authenticeert de bron zonder gedeelde sleutel niet cryptografisch. Het centraliseren van de clients vermindert de directe uitgangen en vergemakkelijkt de observatie, maar beschermt de route tussen RouterOS en zijn bronnen niet tegen een tegenstander die op het pad is geplaatst.
RouterOS documenteert het gebruik van symmetrische NTP-sleutels. Deze werken alleen als de upstream-server en de client een consistent geconfigureerde sleutel delen. Voor een hoge integriteitsvereiste bestudeert u een interne server die Network Time Security ondersteunt, een correct beveiligde GNSS-referentie of een contractuele tijdsdienst. NTS is gedefinieerd door RFC 8915 en mag niet worden verward met een eenvoudige UDP-omleiding.
Probleemoplossing
| Symptoom | Waarschijnlijke oorzaak | Controle |
|---|---|---|
RouterOS-client in waiting | DNS, route of UDP 123 geblokkeerd | FQDN's oplossen, peers en uitgaande firewall controleren |
| De router antwoordt met een ongeldige tijd | Upstream verloren of use-local-clock=yes | Status en stratum controleren en lokale klok uitschakelen |
| De clients zien optie 42 niet | Oude lease of niet-aangevraagde optie | Lease vernieuwen en NTP-beleid van de client inspecteren |
| De NAT-teller blijft op nul | Client al geconfigureerd op de router of verkeerd geplaatste regel | Test een externe bestemming en controleer de volgorde dstnat |
| De MikroTik ontvangt te veel pakketten | Defect verbonden apparaat of lus | Bronadres identificeren, client isoleren en firmware corrigeren |
| Een applicatie weigert de tijd na omleiding | Authenticatie of strikte bestemming | Voeg het apparaat toe aan ntp-bypass |
| NTP antwoordt vanaf internet | input WAN-regel te soepel | Test van buitenaf en controleer de afwijzingstellers |
Terugdraaien
Verwijder eerst de omleiding, dan de DHCP-aankondiging en de dienst. Verwijder de bronnen alleen als ze uitsluitend voor dit project zijn aangemaakt.
/ip firewall nat remove \
[find where comment="NTP: LAN omleiden naar RouterOS"]
/ip firewall filter remove [find where comment~"NTP:"]
/ip firewall address-list remove [find where list="ntp-bypass"]
/ip dhcp-server network set \
[find where address="192.168.88.0/24"] ntp-server=""
/system ntp server set enabled=no
/system ntp client servers remove [find where comment~"NTP Pool BE"]
Als de NTP-client van de router al bestond vóór deze procedure, laat hem dan actief. De router heeft zelf ook een correcte klok nodig voor zijn logs, certificaten en geplande taken.
Conclusie
Een goede implementatie bestaat er niet in om alle NTP-modi te activeren. RouterOS synchroniseert via unicast op meerdere bronnen, bedient vervolgens het LAN via unicast, kondigt zijn adres aan met DHCP-optie 42 en weigert verzoeken vanuit het WAN. Deze architectuur is eenvoudig, meetbaar en gemakkelijk te documenteren.
De transparante omleiding kan apparaten bevatten die het netwerkbeleid negeren, maar ze moet worden bewaakt en voorzien van uitzonderingen. Het doel blijft een consistente en traceerbare tijd, niet alleen een NAT-teller die oploopt.
Discussie
Reacties
Nog geen reacties. U kunt de discussie openen met een vraag of uw eigen ervaring.