[linux-l] NTP-Client mit Dial-Up

Axel Weiß aweiss at informatik.hu-berlin.de
So Mai 2 20:47:34 CEST 2004


Am Freitag, 30. April 2004 04:58 schrieb Peter Ross:
> Hi Axel,
>
> On Thu, 29 Apr 2004, Axel [iso-8859-1] Weiß wrote:
> > Damit das nicht zu teuer wird, möchte ich, daß der Router seinen
> > NTP-Server nur dann abfragt, wenn eine DSL-Verbindung steht. Falls kein
> > Internet-Verkehr stattfindet, z.B. weil ich schlafe, soll der NTP-Client
> > des Routers schweigen.
>
> Wie waere es denn, das jedes Mal, wenn die ADSL-Verbindung aufgebaut wird,
> zu tun?
>
> Mangels vergleichbarer Konfiguration habe ich ein wenig die Man-Pages
> durchforstet. Hier gerade SuSE 8.2, ich weiss nicht, ob die Dokumentation
> Deiner Distribution entspricht.
>
> Danach ist es letztendlich das Skript adsl-connect, welches die Verbindung
> herstellt.
>
> Wenn die Verbindung verloren geht, wird, wenn vorhanden, das Skript
> /etc/ppp/adsl-lost aufgerufen, aber ein Aequivalent beim Aufbau der
> Verbindung habe ich nicht gesehen, auch keine Option in pppoe.conf. Wenn
> dem so ist, koennte man adsl-connect um einen Aufruf von.. sagen wir
> /etc/ppp/adsl-connect-addon .. erweitern.
>
> Vielleicht gibt es aber was huebscheres (verleichbar zu
> /etc/ppp/ppp-linkup in FreeBSD)

Hi, belug,

Danke an alle, die mir geholfen haben. Jetzt läuft der Time-Server lokal in 
meinem Heimnetz und zieht sich die Synchronisierung von tick.fh-augsburg.de. 
Und zwar nur dann, wenn eine Verbindung ohnehin besteht (es also 'nichts' 
kostet;).

Die beste Lösung ist wie (fast) immer einfach. Ich teile mal meine 
Erkenntnisse an alle interessierte. 

1. Der ntp-Server (ist zugleich Client) wird mit /etc/ntp.conf aufgesetzt:
# -- Client-Konfiguration --
# Zugriff auf die CMOS-Uhr (niedrige Prioritaet):
server 127.127.1.0
fudge 127.127.1.0 stratum 10
# Zugriff auf den öffentlichen Server:
# minpoll 8 sorgt dafür, dass die Anfrage-Intervalle mindestens 2^8 s (=256 s)
# betragen. Das Timeout der dsl-Verbindung betraegt 100 s (< minpoll), so dass
# das 'Auschecken' von ntp nicht behindert wird.
server tick.fh-augsburg.de minpoll 8 maxpoll 10
# Standard-Files:
driftfile /var/lib/ntp/drift/ntp.drift
logfile /var/log/ntp
# -- Server-Konfiguration --
broadcast 192.168.3.255         # ins lokale Netz
# Authentifizierung der lokalen Clients:
keys /etc/ntp.keys            # hier müssen 2 Passwoerter eingetragen sein
# Keine 'Fernbedienung', nur Zeitabfrage:
trustedkey 1 2

2. Firewall-Einstellung
Die Scripts /etc/ppp/ip-[up|down] rufen nach getaner Arbeit ein lokales 
Skript /etc/ppp/ip-[up|down].local auf, wenn es existiert. Beim 
Verbindungsabbau (ip-down) wird eine Regel in die Firewall geladen, die 
verhindert, dass udp-Pakete am Port 123 zum Dial-Up führen. Beim regulären 
Verbindungsaufbau wird diese Regel wieder entfernt, damit die 
Zeitsynchronisierung funktioniert.

/etc/ppp/ip-down.local:
# block outgoing udp-packages, but not for the local network:
/usr/sbin/iptables -I OUTPUT -j DROP -p udp --source-port 123 -d ! 
192.168.3.0/24

/etc/ppp/ip-up.local:
# remove blocking rule set by /etc/ppp/ip-down.local:
/usr/sbin/iptables -D OUTPUT -j DROP -p udp --source-port 123 -d ! 
192.168.3.0/24

Beim Blockieren der udp-Pakete muss man aufpassen, daß die lokalen 
udp-Nachrichten rausgehen.

Die Aktion hat mich ein paar Stunden | Nerven gekostet, aber mit Eurer Hilfe 
habe ich wieder einiges dazugelernt. Danke,

Axel



Mehr Informationen über die Mailingliste linux-l