PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : dhcpd loggt nicht mehr



michel_vaclav
11.03.12, 10:03
Hallo zusammen,

in meinem kleinen Heimnetzwerk sorgt ein dhcpd auf dem zentralen Rechner (openSUSE 11.4) für die Vergabe von IP-Adressen. Bis vor nicht all zu langer Zeit hatte ich in /var/log/messages Einträge in der Art:
DHCPREQUEST for 192.168.2.7
DHCPOFFER on 192.168.2.7 to 00:17:42:2d:e8:90 via eth1Diese Einträge tauchen neuerdings nicht mehr auf.

Wo wird sowas geregelt?
Ich habe festgestellt, dass, wenn man den dhcpd manuell mit der Option -d startet, diese Einträge wieder auftauchen. Allerdings gelingt es mir nicht, diese Option im Startskript zu verankern:
DHCPDv_OPT=-4 ist offensichtlich die Zeile, in der die Optionen zum Start mitgegeben werden. Füge ich da allerdings ein "-d" hinzu, dann bekomme ich die Meldung
/etc/init.d/dhcpd: Zeile 50: -d: Kommando nicht gefunden. In Anführungszeichen gesetzt "-4 -d" bleibt das Sktript kommentarlos hängen.
Wie mache ich es richtig?

Danke

michel_vaclav

heatwalker
11.03.12, 11:03
Mahlzeit,
bei der SuSE kannst du Optionen über die Datei

/etc/sysconfig/dhcpd
mitgeben.

Das was du in dem Startscript versucht hast, kann nicht funktionieren weil diese variable einzig und allein der Abfrage nach TCP v4 oder v6 dient. ;)

Allerdings wundert mich das du überhaupt ein "-d" mitgeben musst.
Normalerweise loggt der dhcpd unter SuSE in

/var/log/localmessages

Die normalen Requests sollte er eigentlich auch so mitloggen. Den logging eintrag findest du in der "dhcpd.conf"

Aqualung
11.03.12, 11:40
Indem Du die Zeile


DHCPD_OTHER_ARGS=""

in


/etc/sysconfig/dhcpd

editierst.

Edit:
zu spät ...

michel_vaclav
11.03.12, 13:40
Hallo,

danke für Eure Antworten, aber das bringt noch nicht die Lösung.

Euer Vorschlag mit /etc/sysconfig/dhcpd ist zwar richtig, allerdings löst der auch nicht das Problem. Die Option -d wird dort angezogen, allerdings bewirkt die, dass der DHCP nicht als Daemon gestartet wird sondern im Vordergrund bleibt. Somit hängt das Startskript dann wieder an der Stelle.

Bei mir loggt die Kiste seit ein paar Wochen grundsätzlich nur noch in /var/log/dhcpd folgenden Inhalt beim (Re-)Start:
Mar 11 14:29:32 firewall dhcpd: Internet Systems Consortium DHCP Server 4.2.1
Mar 11 14:29:32 firewall dhcpd: Copyright 2004-2011 Internet Systems Consortium.
Mar 11 14:29:32 firewall dhcpd: All rights reserved.
Mar 11 14:29:32 firewall dhcpd: For info, please visit https://www.isc.org/software/dhcp/
Mar 11 14:29:32 firewall dhcpd: WARNING: Host declarations are global. They are not limited to the scope you declared them in.
Mar 11 14:29:32 firewall dhcpd: Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file
Mar 11 14:29:32 firewall dhcpd: Internet Systems Consortium DHCP Server 4.2.1
Mar 11 14:29:32 firewall dhcpd: Copyright 2004-2011 Internet Systems Consortium.
Mar 11 14:29:32 firewall dhcpd: All rights reserved.
Mar 11 14:29:32 firewall dhcpd: For info, please visit https://www.isc.org/software/dhcp/
Mar 11 14:29:32 firewall dhcpd: WARNING: Host declarations are global. They are not limited to the scope you declared them in.
Mar 11 14:29:32 firewall dhcpd: Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file
Mar 11 14:29:32 firewall dhcpd: Wrote 0 deleted host decls to leases file.
Mar 11 14:29:32 firewall dhcpd: Wrote 0 new dynamic host decls to leases file.
Mar 11 14:29:32 firewall dhcpd: Wrote 2 leases to leases file.
Mar 11 14:29:32 firewall dhcpd: Listening on LPF/wlan0/00:1f:1f:2c:2b:98/192.168.3.0/24
Mar 11 14:29:32 firewall dhcpd: Sending on LPF/wlan0/00:1f:1f:2c:2b:98/192.168.3.0/24
Mar 11 14:29:32 firewall dhcpd: Listening on LPF/eth1/00:e0:7d:b7:b7:2c/192.168.2.0/24
Mar 11 14:29:32 firewall dhcpd: Sending on LPF/eth1/00:e0:7d:b7:b7:2c/192.168.2.0/24
Mar 11 14:29:32 firewall dhcpd: Sending on Socket/fallback/fallback-net
Ich habe das Logging letztes Jahr umgestellt in eine eigene Datei (vielleicht liegt hier ja auch der Fehler) durch Konfiguration in /etc/syslog-ng/syslog-ng.conf. Dort habe ich folgende Einträge hinzugefügt:
filter f_dhcpd { match('^dhcpd:'); };
filter f_messages { not facility(news, mail, cron) and not filter(f_iptables) and not filter(f_dhcpd); };
destination dhcpd { file("/var/log/dhcpd"); };
log { source(src); filter(f_dhcpd); destination(dhcpd); };
Der letzte Eintrag, der auch auf eine Zuweisung von IP-Adressen schließen lässt, war am 23.02.2012. Ich kann mich nicht erinnern, dass ich an der Konfiguration seitdem was geändert hätte.
Zwischen 23.02. und 9.03.12 tauchen in /var/log/dhcpd überhaupt keine Einträge auf. Schau ich mir an, wann welches Paket aktualisiert wurde, so fällt auf, dass am 9.03.12 zeitgleich mit dem SuSE-Update auf "dhcp-server-4.2.1-0.13.1" diese abgespeckten Einträge erscheinen. Aber eben nicht die Requests.
Ich habe stark das Gefühl, dass an irgend einer Stelle jetzt noch was fehlt.

michel_vaclav

PS.: Kann man auf openSUSE auch die Update-Historie eines Paketes rausfinden? Mit rpm -qa --last bekomme ich nur die letzte Änderung. Vielleicht hat ja am 23.02. auch schon eine Änderung an diesem fraglichen Paket stattgefunden.

Aqualung
11.03.12, 16:30
dass der DHCP nicht als Daemon gestartet wird sondern im Vordergrund bleibt. Somit hängt das Startskript dann wieder an der Stelle.

Wenig schön, könnte aber helfen:

Im Skript "/etc/init.d/dhcpd" den Aufruf in den Hintergrund bringen


nohup $DAEMON_BIN $DHCPDv_OPT -cf $DAEMON_CONF -pf $PID_FILE_ARG $DHCPD_ARGS $DHCPD_OTHER_ARGS $DHCPD_INTERFACE &> $STARTPROC_LOGFILE &

heatwalker
11.03.12, 17:18
Möglicherweise liegt der Fehler in deinem Filter.

Ersetze doch einfach mal

filter f_dhcpd { match('^dhcpd:'); };
gegen

filter f_dhcpd { program(dhcpd); };

Möglicherweise greift das Matching nicht mehr so wie es sollte? :confused:

Ach ja, die Manpage zu dhcpd sagt übrigens, wenn du "-d" setzt musst du auch "-f" setzen damit der server im hintergrund verschwindet. :)

michel_vaclav
12.03.12, 17:26
Hallo zusammen,


filter f_dhcpd { program(dhcpd); };ändert nichts.


Ach ja, die Manpage zu dhcpd sagt übrigens, wenn du "-d" setzt musst du auch "-f" setzen damit der Server im Hintergrund verschwindet.Und das habe ich in der manpage auch gelesen, aber ich übersetze das anders: Das Setzen von -d bewirkt automatisch auch das Setzen von -f. Und -f bedeutet, dass dhcpd zwingend im Vordergrund bleibt. Damit habe ich auf direktem Weg gar keine Chance, mit -d und dem Skript. Außer wie Aqualung vorschlägt.

michel_vacav

heatwalker
12.03.12, 18:00
du hast recht. da hab ich zu schnell gelesen. Mein Fehler.

Aber so langsam bleiben mir die Ideen weg. :confused:

Hast du mal die Filter komplett auskommentiert um zu sehen ob der dhcpd dann die anfragen loggt?

...und nur mal ganz blöd gefragt. Der syslog-ng ist auch noch installiert? nicht das da bei einem Update oder Upgrade was durcheinander gekommen ist.

Wegen deiner Frage nach der history. Wenn du mit zypper installierst kannst du z.b. in

/var/log/zypp
grep dhcp-server *
die history rausfinden.

für rpm gibt es etwas ähnliches (-:

rpmquery --changelog dhcpd-server
Da kannst du zumindest sehen wann die letzten änderungen am paket gemacht wurden und somit sollte es zumindest nachvollziehbar sein wann das letzte Update gekommen ist.

michel_vaclav
12.03.12, 18:33
Hast du mal die Filter komplett auskommentiert um zu sehen ob der dhcpd dann die anfragen loggt?

...und nur mal ganz blöd gefragt. Der syslog-ng ist auch noch installiert? nicht das da bei einem Update oder Upgrade was durcheinander gekommen ist.
Also: wenn ich alles, was zum dhcpd-Filtern in der syslog-ng.conf auskommentiere und dann von einem Rechner eine Adresse anfordern lasse, erscheint in keiner Datei unter /var/log ein diesbezüglicher Eintrag. Früher, bevor ich das mittels Filter auf /var/log/dhcpd gebogen hatte, gingen alle Einträge nach /var/log/messages.

Des syslog-ng ist installiert, weil alle anderen Einträge funktionieren, als da beispielsweise wären sshd, ftp und hostapd. Somit glaube ich, dass das soweit passt.
Mir scheint es so, als ob dhcpd einfach nichts mehr loggt.

Aber danke für Deine Überlegungen und Tipps.

Die Zypper-Historie werde ich mir jetzt als nächstes vornehmen.

michel_vaclav

michel_vaclav
12.03.12, 18:58
Hallo heatwalker,

das Problem ist gelöst. Der Tipp mit der Historie von zypper war der entscheidende Hinweis.
Dort findet sich für den 9.03.12 folgender Eintrag:
# 2012-03-09 17:07:28 dhcp-server-4.2.1-0.13.1.i586.rpm installed ok
# Additional rpm output:
# Updating /etc/sysconfig/dhcpd...
# Updating /etc/sysconfig/syslog...

In der Datei /etc/sysconfig/syslog wiederum steht folgendes:
## Type: string
## Default: "/var/lib/dhcp/dev/log"
## ServiceRestart: syslog
#
# The filename mentioned here will be added with the "-a ..." option as
# additional socket via SYSLOGD_PARAMS when syslogd is started or used
# to generate an include file for another syslog daemons.
#
# This additional socket is needed in case that syslogd is restarted.
# Otherwise a chrooted dhcpd won't be able to continue logging.
#
SYSLOGD_ADDITIONAL_SOCKET_DHCP="/var/lib/dhcp/dev/log"
Daraus schließe ich, dass der dhcp es nicht mag, wenn der syslog neu gestartet wird. Am 9.03.12 wurde der syslog neu gestartet, aber offensichtlich hat der dhcpd das nicht korrekt mitbekommen. Nachdem ich die ganze Kiste jetzt neu gestartet habe, läuft auch das Logging wieder.

Das nimmt ja fast Windows-artige Züge an...

Danke an alle Mitdenkenden

michel_vaclav

heatwalker
12.03.12, 19:06
Na ist doch prima. da muss man auch erstmal draufkommen.