1 (edytowany przez jzef 2018-12-21 12:04:14)

Temat: Serwer czasu na OpenWrt w sieci LAN

Chaos Calmer 15.05.1, zainstalowałem pakiety libcap_2.24-1_brcm63xx.ipk ntpd_4.2.8p6-1_brcm63xx.ipk, wykonałem polecenia:

/etc/init.d/sysntpd disable
/etc/init.d/ntpd enable
/etc/init.d/ntpd start

Próbuję synchronizować czas na komputerze PC (Windows) w sieci lokalnej ale pojawia się błąd:

Przykład godziny został odrzucony, ponieważ: Warstwa końcówki jest mniejsza od warstwy hosta.

2

Odp: Serwer czasu na OpenWrt w sieci LAN

1. sysntpd w openwrt też umie robić za serwer czasu. Wystarczyło tylko go włączyć w /etc/config/system
2. kocham windowsa za te komunikaty. Na szybko google: https://forum.idg.pl/topic/21123-serwer … indows-xp/ https://support.microsoft.com/pl-pl/hel … ows-server

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Serwer czasu na OpenWrt w sieci LAN

Cezary napisał/a:

2. kocham windowsa za te komunikaty.

No patrz Pan. Windows 95 lokalizowała na Polskę pewna firma z Wrocławia. Dziś chłopcy z Redmond chyba używają do tego Google Translate. smile

GUI jest przereklamowane

ASUS WL-500gP v2, TP-Link TL-MR3420 v2, TP-Link TL-WR1043ND v3, TP-Link TL-WDR4300 v1, D-Link DWR-921 C3,
Netgear R6220

4

Odp: Serwer czasu na OpenWrt w sieci LAN

Zrobiłem to:

  • zmieniłem w rejestrze Windows wartość SpecialPollInterval na 1 w HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient i restartowałem system

Na OpenWrt zrobiłem to:

/etc/init.d/ntpd stop
/etc/init.d/ntpd disable
opkg remove ntpd
opkg remove libcap
nano /etc/config/system
dodałem linię: option enable_server '1'
/etc/init.d/sysntpd reload
/etc/init.d/sysntpd restart
netstat -apntu | grep 123
udp 0 0 :::123 :::*
4294/ntpd

ale nadal ten sam błąd w Windows przy próbie ręcznej aktualizacji czasu :-(

Czy dobrze uruchomiłem serwer NTP? Router nie ma dostępu do Internetu, ma serwować tylko czas w sieci lokalnej.

5

Odp: Serwer czasu na OpenWrt w sieci LAN

Gr4nd0 napisał/a:
Cezary napisał/a:

2. kocham windowsa za te komunikaty.

No patrz Pan. Windows 95 lokalizowała na Polskę pewna firma z Wrocławia. Dziś chłopcy z Redmond chyba używają do tego Google Translate. smile

To też pewna sztuka tak napisać komunikat żeby nikt nie zrozumiał (vide pisma prawnicze) smile

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

6

Odp: Serwer czasu na OpenWrt w sieci LAN

To jak w końcu mam ustawić aby działało bo podajecie linki do G....e ale nie sprawdzicie nawet co i jak a to nie działa. Sprawdziłem na angielskim Windows. Mam dwa połączenia sieciowe - na jednym Internet przez USB tethering ze smartfona i drugie Wifi do sieci lokalnej - połączenie z OpenWrt. Jak ręcznie próbuję aktualizować czas z serwera time.windows.com to działa OK bez żadnych modyfikacji w rejestrze. Jak podam adres lokalny routera OpenWrt 192.168.0.1 to mam błąd:

An error occurred while Windows was synchronizing with 192.168.0.1.

7

Odp: Serwer czasu na OpenWrt w sieci LAN

Moment - ja nie jestem windowsowy, ale czy windows korzysta z ntp czy z rdate do synchronizacji? Mamy tu kogoś obytego z windowsem?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8

Odp: Serwer czasu na OpenWrt w sieci LAN

Windows korzysta z NTP - tak pisze w centrum pomocy:

If time synchronization fails
When you click the Update Now button, your clock should be synchronized immediately. If it fails, it might be for one of the following reasons:

You are not connected to the Internet. Establish an Internet connection before you attempt to synchronize your clock.
Your personal or network firewall prevents clock synchronization. Most corporate and organizational firewalls will block time synchronization, as do some personal firewalls. Home users should read the firewall documentation for information about unblocking network time protocol (NTP). You should be able to synchronize your clock if you switch to Windows Firewall.
The Internet time server is too busy or is temporarily unavailable. If this is the case, try synchronizing your clock later, or update it manually by double-clicking the clock on the taskbar. You can also try using a different time server.
The time shown on your computer is too different from the current time on the Internet time server. Internet time servers might not synchronize your clock if your computer's time is off by more than 15 hours. To synchronize the time properly, ensure that the date and time settings are set close to your current time in the Date and Time Properties in Control Panel.

Może to Firewall blokuje - jak wyłączyć całkowicie firewall na OpenWrt?

9

Odp: Serwer czasu na OpenWrt w sieci LAN

Od strony lan całkowicie jest wszystko dostępne.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

10

Odp: Serwer czasu na OpenWrt w sieci LAN

Zrobiłem test NTP z dwoma Windowsami - jeden serwer a drugi klient. W Windows usługa NTP działa domyślnie tylko jako klient ale można ją przestawić aby działała również jako serwer. Trzeba zmienić dwie opcje w rejestrze: AnnounceFlags z a na 5 i Enabled z 0 na 1:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config]
"AnnounceFlags"=dword:00000005

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer]
"Enabled"=dword:00000001

Następnie wykonać polecenia w CMD:

w32tm /config /update
net stop w32time && net start w32time

Działa bez zająknięcia jak podamy IP serwera w sieci lokalnej (drugiego Windows) i klikniemy przycisk Aktualizuj teraz:
https://obrazki.elektroda.pl/9945366700_1545410015_thumb.jpg

To wina routera OpenWrt, że Windows nie chce pobrać z niego czasu :-(

11

Odp: Serwer czasu na OpenWrt w sieci LAN

A router pobierze czas z Windowsa?

12

Odp: Serwer czasu na OpenWrt w sieci LAN

9tysiecy napisał/a:

A router pobierze czas z Windowsa?

Jak to sprawdzić?

13

Odp: Serwer czasu na OpenWrt w sieci LAN

No ustaw IP tego komputera jako serwer NTP w routerze, zrestartuj i zobacz czy pobierze czas?

14

Odp: Serwer czasu na OpenWrt w sieci LAN

Zainstalowałem na OpenWrt dwie paczki: libcap_2.24-1_brcm63xx.ipk ntpdate_4.2.8p6-1_brcm63xx.ipk, zmieniłem czas na jakiś inny poleceniem:

date -s 05:23
Fri Dec 21 05:23:00 CET 2018

odpaliłem to:

ntpdate 192.168.0.1
21 Dec 18:17:50 ntpdate[1580]: step time server 192.168.0.1 offset 46466.903616 sec

i to aby sprawdzić czy pobrał czas:

date
Fri Dec 21 18:17:56 CET 2018

i działa, OpenWrt bez problemu bierze czas z Windows a ja chcę odwrotnie.

15 (edytowany przez jzef 2018-12-22 08:18:29)

Odp: Serwer czasu na OpenWrt w sieci LAN

Udało się w końcu za pomocą serwera ntpd (ntpd_4.2.8p6-1_brcm63xx.ipk)

Lubię Windows ale faktycznie chłopcy z Redmond używają (używali) translatora smile

Sprawdziłem o co chodzi w angielskiej wersji Windows i brzmi to tak:

The time sample was rejected because: The peer's stratum is less than the host's stratum.

Kluczowym słowem jest stratum. Po wrzuceniu w g....e znalazłem szybko rozwiązanie. Tak musi wyglądać plik /etc/ntp.conf aby Windows pobrał czas przez NTP:

# use a random selection of 4 public stratum 2 servers
# see http://twiki.ntp.org/bin/view/Servers/NTPPoolServers

restrict 127.0.0.1
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap

driftfile  /var/lib/ntp/ntp.drift

server 127.127.1.0 prefer
fudge  127.127.1.0 stratum 0

Nie jestem pewien czy linijki restrict są potrzebne ale zdaje się iż pomogła ostatnia linijka fudge gdzie jest opcja stratum 0

Ciekawe jak to samo uzyskać na standardowym demonie NTP sysntpd ???

Jest jeszcze jedna ważna sprawa jeśli chodzi o Windows. Jeśli mamy wyczerpaną baterię CMOS lub jej brak wtedy BIOS często ustawia domyślną datę i czas np. na 1980 0:00 a wtedy synchronizacja nie zadziała. Trzeba w systemie ustawić dwie opcje w rejestrze, zrestartować usługę Czas systemu Windows lub zrestartować system i dopiero wtedy synchronizacja zadziała:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config]
"MaxNegPhaseCorrection"=dword:ffffffff
"MaxPosPhaseCorrection"=dword:ffffffff

16

Odp: Serwer czasu na OpenWrt w sieci LAN

Chciałem dodać dwie informacje:

1. W Windows domyślny czas synchronizacji jest ustawiony na 7 dni (604800 sekund dziesiętnie) za pomocą wartości rejestru SpecialPollInterval w kluczu:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient

Zmiana tej wartości wymaga restartu usługi w32time:

net stop w32time && net start w32time

2. Jeśli odpalimy Windows w maszynie wirtualnej, która korzysta z tej samej karty sieciowej (w trybie bridged) co system Windows hosta to wówczas synchronizacja czasu na systemie hosta nie będzie działać i pojawi się błąd:

An error occurred while Windows was synchronizing with 192.168.0.1. The time sample was rejected because: Duplicate timestamps were received from this peer.

Po wyłączeniu maszyny wirtualnej wszystko wraca do normy. Testowane z MS Virtual PC 2007.

17

Odp: Serwer czasu na OpenWrt w sieci LAN

Cezary napisał/a:

1. sysntpd w openwrt też umie robić za serwer czasu. Wystarczyło tylko go włączyć w /etc/config/system

Chciałbym odpalić serwer NTP na sysntpd zamiast instalować ntpd. Jak go uruchomić tak aby działał jak opisany tutaj ntpd?

18

Odp: Serwer czasu na OpenWrt w sieci LAN

uci system.ntp.enable_server='1'
uci commit
reboot

Na nowym openwrt. Nie pamiętam czy na starym to było.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

19

Odp: Serwer czasu na OpenWrt w sieci LAN

No tak zrobiłem ale zapomniałem w Windows zrobić to:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config]
"MaxNegPhaseCorrection"=dword:ffffffff
"MaxPosPhaseCorrection"=dword:ffffffff

Nie trzeba restartować Windowsa i działa smile

Nie wiem czemu kiedyś męczyłem się z demonem ntpd gdzie trzeba było wprowadzać jakieś opcje prefer, stratum itp. - przecież użycie demona sysntpd jest o wiele prostsze.

20 (edytowany przez jzef 2024-02-09 11:21:38)

Odp: Serwer czasu na OpenWrt w sieci LAN

Chciałem dopisać jeszcze raz iż kluczową czynnością jest restart OpenWrt po włączeniu serwera NTP czy to przez UCI czy LuCI bo dziś siadłem do retro PC z WinXP, klikam aktualizuj czas wpisując IP OpenWrt i nie działa. W rejestrze opcje na fff... ale miałem wyłączony serwer więc włączyłem przez LuCI > System > Time Synchronization > Provide NTP server tylko iż zapomniałem restartować OpenWrt.

P.S. Wszystko przez to, że zawsze zapominam zrobić kopię ustawień lub obraz systemu OpenWrt (partycja mtd) z włączonym NTP i później przywracam obraz z wyłączonym serwerem i znowu mi nie działa, eh ...