ntpd: Server stecken auf .INIT

9

Ich versuche, einen NTP-Server für mein lokales Netzwerk einzurichten, aber ntpd weigert sich, mit externen Servern zu synchronisieren.

# ntptrace
localhost: stratum 16, offset 0.000000, synch distance 0.396285

# ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 31.135.95.60    .INIT.          16 u    - 1024    0    0.000    0.000   0.000
 31.131.249.26   .INIT.          16 u    - 1024    0    0.000    0.000   0.000
 91.122.42.73    .INIT.          16 u    - 1024    0    0.000    0.000   0.000
 194.190.168.1   .INIT.          16 u    - 1024    0    0.000    0.000   0.000

Die Konfiguration, die ich benutze, ist so ziemlich Standard:

# grep ^[^#] /etc/ntp.conf 
server 0.gentoo.pool.ntp.org
server 1.gentoo.pool.ntp.org
server 2.gentoo.pool.ntp.org
server 3.gentoo.pool.ntp.org
driftfile       /var/lib/ntp/ntp.drift
restrict default nomodify nopeer noquery limited kod
restrict 127.0.0.1
restrict [::1]
restrict 192.168.0.0 mask 255.255.255.0 nomodify nopeer notrap
disable monitor

Seltsamerweise habe ich einen anderen NTP-Server im LAN, der gut funktioniert und synchronisiert. Ich habe also nicht den 123 UDP-Port beschuldigt, aber um sicherzugehen, dass ich ihn explizit auf dem Gateway geöffnet habe, auf dem ich aufstehen möchte ntpd.

# iptables -L -n -v
Chain INPUT (policy ACCEPT 839K packets, 836M bytes)
 pkts bytes target     prot opt in     out     source               destination         
31696 3023K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
 3435  273K ACCEPT     all  --  br0    *       0.0.0.0/0            0.0.0.0/0           
    0     0 REJECT     udp  --  !br0   *       0.0.0.0/0            0.0.0.0/0            udp dpt:67 reject-with icmp-port-unreachable
    0     0 REJECT     udp  --  !br0   *       0.0.0.0/0            0.0.0.0/0            udp dpt:53 reject-with icmp-port-unreachable
    0     0 ACCEPT     tcp  --  br1    *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     tcp  --  br1    *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  br1    *       0.0.0.0/0            0.0.0.0/0            tcp dpt:21
    0     0 ACCEPT     tcp  --  br1    *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443
    0     0 ACCEPT     tcp  --  br1    *       0.0.0.0/0            0.0.0.0/0            tcp dpt:123
    0     0 DROP       tcp  --  br1    *       0.0.0.0/0            0.0.0.0/0            tcp dpts:0:1023
  204 15504 DROP       udp  --  br1    *       0.0.0.0/0            0.0.0.0/0            udp dpts:0:1023
    0     0 DROP       tcp  --  br1    *       0.0.0.0/0            0.0.0.0/0            tcp dpt:2049
    0     0 DROP       udp  --  br1    *       0.0.0.0/0            0.0.0.0/0            udp dpt:2049
    0     0 DROP       tcp  --  br1    *       0.0.0.0/0            0.0.0.0/0            tcp dpts:32765:32768
    0     0 DROP       udp  --  br1    *       0.0.0.0/0            0.0.0.0/0            udp dpts:32765:32768

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  br0    *       0.0.0.0/0            192.168.0.0/16      
21579 1859K ACCEPT     all  --  br0    *       192.168.0.0/16       0.0.0.0/0           
21307 6910K ACCEPT     all  --  br1    *       0.0.0.0/0            192.168.0.0/16      

Chain OUTPUT (policy ACCEPT 762K packets, 151M bytes)
 pkts bytes target     prot opt in     out     source               destination

br0 ist LAN und br1 ist WAN.

Ein Versuch, eine Verbindung zu einem Stratum 2-Server herzustellen (der auf dem anderen Server angezeigt wird, auf dem ntpd einwandfrei funktioniert):

# ntpdate -d 95.213.132.250                                            
 2 May 07:35:30 ntpdate[9987]: ntpdate [email protected] Fri May  1 20:36:27 UTC 2015 (1)
transmit(95.213.132.250)
receive(95.213.132.250)
transmit(95.213.132.250)
receive(95.213.132.250)
transmit(95.213.132.250)
receive(95.213.132.250)
transmit(95.213.132.250)
receive(95.213.132.250)
server 95.213.132.250, port 123
stratum 2, precision -21, leap 00, trust 000
refid [95.213.132.250], delay 0.03688, dispersion 0.00314
transmitted 4, in filter 4
reference time:    d8eeccd9.08f19253  Sat, May  2 2015  7:11:05.034
originate timestamp: d8eed298.9d09bba6  Sat, May  2 2015  7:35:36.613
transmit timestamp:  d8eed298.9ae29d48  Sat, May  2 2015  7:35:36.605
filter delay:  0.04114  0.04720  0.04874  0.03688 
         0.00000  0.00000  0.00000  0.00000 
filter offset: 0.004748 0.008231 0.008865 0.002733
         0.000000 0.000000 0.000000 0.000000
delay 0.03688, dispersion 0.00314
offset 0.002733

 2 May 07:35:36 ntpdate[9987]: adjust time server 95.213.132.250 offset 0.002733 sec

Ich versuche, eine Ausgabe von ntpd zu bekommen

# ntpd -gqd
 2 May 07:45:35 ntpd[20292]: ntpd [email protected] Fri May  1 20:36:26 UTC 2015 (1): Starting
 2 May 07:45:35 ntpd[20292]: Command line: ntpd -gqd
 2 May 07:45:35 ntpd[20292]: proto: precision = 0.051 usec (-24)
 2 May 07:45:35 ntpd[20292]: Listen and drop on 0 v4wildcard 0.0.0.0:123
 2 May 07:45:35 ntpd[20292]: Listen normally on 1 lo 127.0.0.1:123
 2 May 07:45:35 ntpd[20292]: Listen normally on 2 br0 192.168.0.1:123
 2 May 07:45:35 ntpd[20292]: Listen normally on 3 br0 192.168.0.9:123
 2 May 07:45:35 ntpd[20292]: Listen normally on 4 br0 192.168.0.17:123
 2 May 07:45:35 ntpd[20292]: Listen normally on 5 br1 192.168.42.250:123
 2 May 07:45:35 ntpd[20292]: Listening on routing socket on fd #22 for interface updates
 2 May 07:45:35 ntpd[20292]: restrict: ignoring line 51, address/host '[::1]' unusable.
^C 2 May 07:45:44 ntpd[20292]: ntpd exiting on signal 2 (Interrupt)
 2 May 07:45:44 ntpd[20292]: 46.8.40.31 local addr 192.168.42.250 -> <null>
 2 May 07:45:44 ntpd[20292]: 217.70.19.12 local addr 192.168.42.250 -> <null>
 2 May 07:45:44 ntpd[20292]: 89.208.145.140 local addr 192.168.42.250 -> <null>
 2 May 07:45:44 ntpd[20292]: 31.135.95.60 local addr 192.168.42.250 -> <null>

Wie ^Cam Anfang zu sehen ist , wurde der Dämon manuell unterbrochen, da er nicht wie gewünscht beendet wird (auf der anderen Seite wird ntpd beendet, nachdem die Nachricht mit der Zeitverschiebung der Berichterstellung eingeschränkt wurde).

Was auch immer ich tue, nach vielen Neustarts ändert sich die Drift nicht:

# cat /var/lib/ntp/ntp.drift 
-7.037
Tijagi
quelle
Klingt nach einem Firewall-Problem an Ihrem Standort. Möglicherweise möchten Sie dieses Problem mit Ihren Netzwerkmitarbeitern besprechen.
mdpc
1
Sie haben noch nicht gezeigt, dass die Host-Firewall nicht das Problem ist, da die iptables-Regeln auftragsabhängig sind. Könnten Sie die gesamte Ausgabe von iptables -L -n -vin Ihre Frage einfügen ? Außerdem ist die Konfigurationszeile restrict [::1]fehlerhaft und sollte lauten restrict -6 ::1.
MadHatter
Können Sie bestätigen, dass sich der erfolgreiche Lauf von ntpdate auf demselben Computer befindet, auf dem ntpd fehlschlägt? Ich bin mir Ihrer Formulierung nicht ganz sicher.
Paul Haldane
@mdpc Darüber gibt es keine Firewall, und ich bezweifle, dass der Anbieter den 123-Port blockiert.
Tijagi
@MadHatter das wäre der Fall, wenn ntp mit IPv6-Unterstützung erstellt würde. Aber es war nicht so. Und ntpd sagt eindeutig, dass es die Zeile ignoriert hat . Beide Maschinen haben ntp ohne ipv6 erstellt und Kernel mit CONFIG_IPV6 nicht gesetzt. Ersetzte auch iptables Ausgabe durch die voniptables -L -n -v.
tijagi

Antworten:

7

Ihre Firewall-Regeln erlauben kein NTP. Die Linie

0     0 ACCEPT     tcp  --  br1    *       0.0.0.0/0            0.0.0.0/0            tcp dpt:123

ist alles sehr gut, aber NTP ist ein UDP-Dienst. Ändern Sie das Protokoll, und die Dinge sollten besser werden. Ihre FORWARDRegeln sind (im Wesentlichen permit any any) viel entspannter, weshalb der Host im LAN OK synchronisiert.

MadHatter
quelle
Die Regel für ntp sollte ausgehenden Verkehr zulassen. Antworten sollten durch eine ctstate RELATED,ESTABLISHEDEingaberegel abgedeckt sein .
BillThor
1
@ BillThor das wäre sicherlich so - wenn es eine solche INPUTRegel in der Kette oben gäbe .
MadHatter