dnsmasq Problem mit freetz trunk oder labor firmware

elohmann

Neuer User
Mitglied seit
19 Feb 2007
Beiträge
27
Punkte für Reaktionen
0
Punkte
1
Hi,

ich habe aktuell auf meiner Fritz!Box 7170 ein freetz trunk 9.04.63-11945--11945-freetz-devel-2424 mit dem "all in one" Image.
Das Problem ist mir bereits beim aktuellen Labor DSL Image (29.04.99-11500) aufgefallen.

Problem:
Aug 18 13:46:39 fritzbox dnsmasq[4075]: exiting on receipt of SIGTERM

Diese Problem tritt mind. alle 24h einmal auf oder wenn in der AVM WebGui an den Netzwerkgeräten etwas geändert wird, Namesänderung des PC etc.

Ich nutze mit dnsmasq einen dhcp Range von x.x.x.200-240 und habe 6Einträge in der hosts Datei. Funktionieren tut dnsmasq, wenn er nicht grade abgestürtzt ist.
Der AVM dhcp Dienst ist nicht aktiviert!

Schöne Grüße,

Eike
 
SIGTERM ist ein Signal, das mit Absicht an den Prozeß gesendet wird, um ihn zu beenden. Vermutlich kommt das Signal aus den Skript, das zum Starten und Stoppen verwendet wird.

Nach Deiner Beschreibung würde ich vermuten, daß dnsmasq immer dann gestoppt (und anschließend neu gestartet wird), wenn etwas an der Konfiguration verändert wurde, oder wenn nach einer neuen DSL-Einwahl.
 
Leider startet aber nix den dnsmasq danach wieder an und dhcp ist dann vorerst tot.
Ich habe schon einen cron aufgesetzt der stündlich ein restart macht.

Gruß Eike
 
N'abend!

Habs gleiche Problem auf meiner 7170!

Aktuelle Beta (all in) mit dem aktuellen Trunk heute gebaut. dnsmasq gestartet und kurze Zeit später ist er weg und lässt sich auch im Freetz Webmenue nicht mehr per "START" Button aktivieren. Kann man dnsmasq auf der Konsole mit einem "Log" Schalter starten?

Ich hab nichts gefunden.



Gruss
 
Allgemeiner "Log Schalter"
Code:
sh -x /etc/init.d/rc.dnsmasq start
 
restarten läßt dnsmasq sich bei mir immer über die Freetz WebGUI, dhcp funktioniert dann auch wieder aber DNS scheint gelegentlich danach tot zu sein, da hilt dann nur ein Box restart.

cron:
Code:
5 * * * * /etc/init.d/rc.dnsmasq restart
 
Hier mal die Ausgabe nach sh -x /etc/init.d/rc.dnsmasq restart

Code:
/var/mod/root # sh -x /etc/init.d/rc.dnsmasq restart
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin
+ export LD_LIBRARY_PATH=/mod/lib
+ DAEMON=dnsmasq
+ . /etc/init.d/modlibrc
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin
+ export LD_LIBRARY_PATH=/mod/lib:/mod/usr/lib
+ [ -n dnsmasq ]
+ [ ! -r /mod/etc/conf/dnsmasq.cfg ]
+ . /mod/etc/conf/dnsmasq.cfg
+ export DNSMASQ_DHCP=yes
+ export DNSMASQ_DHCP_BOOT=no
+ export DNSMASQ_DHCP_BOOTFILE=
+ export DNSMASQ_DHCP_RANGE=192.168.0.200,192.168.0.220,12h
192.168.0.215 00:15:00:0f:fd:81
192.168.0.201 00:08:0d:53:b3:cd
+ export DNSMASQ_DNS_PORT=53
+ export DNSMASQ_DOMAIN=fritz.box
+ export DNSMASQ_ENABLED=yes
+ export DNSMASQ_ETHERS=yes
+ export DNSMASQ_OPTIONS=
+ export DNSMASQ_TFTP=no
+ export DNSMASQ_TFTP_TFTPROOT=
+ which igdd
+ basename /sbin/igdd
+ _igdd=igdd
+ grep upnp
+ /sbin/multid -?
+ _multid_upnp=  -u                 - do not start basic upnp-device. (NOTSET)
+ [   -u                 - do not start basic upnp-device. (NOTSET) ]
+ [ ! igdd ]
+ [ ! -r /mod/etc/conf/dnsmasq.cfg ]
+ . /mod/etc/conf/dnsmasq.cfg
+ export DNSMASQ_DHCP=yes
+ export DNSMASQ_DHCP_BOOT=no
+ export DNSMASQ_DHCP_BOOTFILE=
+ export DNSMASQ_DHCP_RANGE=192.168.0.200,192.168.0.220,12h
192.168.0.215 00:15:00:0f:fd:81
192.168.0.201 00:08:0d:53:b3:cd
+ export DNSMASQ_DNS_PORT=53
+ export DNSMASQ_DOMAIN=fritz.box
+ export DNSMASQ_ENABLED=yes
+ export DNSMASQ_ETHERS=yes
+ export DNSMASQ_OPTIONS=
+ export DNSMASQ_TFTP=no
+ export DNSMASQ_TFTP_TFTPROOT=
+ multid -s
+ stop nomultid
+ echo -n Stopping dnsmasq...
Stopping dnsmasq...+ [ nomultid != nomultid ]
+ killall dnsmasq
+ exitval=1
+ [ nomultid != nomultid ]
+ rm -f /mod/etc/dnsmasq.conf
+ [ -L /var/flash/multid.leases ]
+ grep tffs /proc/devices
+ major=240 tffs
+ rm -f /var/flash/multid.leases
+ mknod /var/flash/multid.leases c 240 112
+ [ 1 -eq 0 ]
+ echo failed.
failed.
+ exit 1
/var/mod/root #


Wieso werden einige export Anweisung eigentlich doppelt ausgefuehrt?

Gruss
 
Code:
+ rm -f /var/flash/multid.leases
+ [B]mknod /var/flash/multid.leases c 240 112[/B]
+ [ [B]1[/B] -eq 0 ]
+ echo failed.
failed.
+ exit 1
/var/mod/root #

Das Problem liegt in dem fehlgeschlagenen Aufruf von mknod. Was passiert, wenn Du mknod von Hand aufrufst? Kommt dann eine Fehlermeldung? Wenn nicht, kannst Du strace mit auf die Box bringen und mknod mit strace ausführen?

Wieso werden einige export Anweisung eigentlich doppelt ausgefuehrt?

Weil sie einmal von /etc/init.d/modlibrc eingelesen werden und dann (unnötigerweise) nochmal von /etc/init.d/rc.dnsmasq selbst. Das ist nicht elegant, stört aber nicht.
 
Weil sie einmal von /etc/init.d/modlibrc eingelesen werden und dann (unnötigerweise) nochmal von /etc/init.d/rc.dnsmasq selbst. Das ist nicht elegant, stört aber nicht.
Und ist im aktuellen Trunk behoben (r2450).
 
Hallo!

Wenn ich
mknod /var/flash/multid.leases c 240 112
so in der shell ausfuehre wird die Gerätedatei einwandfrei angelegt.


Gruss
 
... ist das "rm" da vielleicht noch nicht "fertig", wenn die Datei angelegt werden soll?? Wenn ja, könnte ein "sleep 1" davor schon helfen...

Jörg
 
Ich habe mal im svn nachgeschaut, der code bez. des löschens und neu anlegens hat sich in den letzten 5 Monaten nicht geändert.
Ein sleep kann man aber trotzdem mal ausprobieren, evtl. hat die Box nur mehr zu tun mittlerweile und wird nicht rechtzeitig fertig.

Code:
start:
56            if [ ! -L "/var/flash/multid.leases" -a "$DNSMASQ_DHCP" = "yes" ]; then
57	                rm -f /var/flash/multid.leases
58	                touch /var/tmp/multid.leases
59	                ln -s /var/tmp/multid.leases /var/flash/multid.leases
60	        fi
stop:
92	        if [ -L "/var/flash/multid.leases" ]; then
93	                major="$(grep tffs /proc/devices)"
94	                rm -f /var/flash/multid.leases
95	                mknod /var/flash/multid.leases c ${major%%tffs} $((0x70))
96           fi
 
Naja, das "rm" muss doch per Rückgabewert mitteilen, ob die Operation erfolgreich war und deshalb ist es nicht möglich, dass die Datei "irgendwann" mal gelöscht wird. Entweder es funktioniert oder eben nicht
 
Anhand der Fehlermeldung muss rm ja kein Problem gehabt haben, dann stellt sich also nur die frage wieso konnte das Device nicht mit mknod angelegt werden aber manuell dann doch.
 
ist das "rm" da vielleicht noch nicht "fertig", wenn die Datei angelegt werden soll

Das kann nicht sein.

Entweder kommt eine Fehlermeldung (vielleicht sichtbar, wenn man "/etc/init.d/rc.dnsmasq restart" ohne "sh -x" aufruft), oder man muß mit strace feststellen, was tatsächlich passiert.

Statt einem sleep würde ich eher zum Testen ein "ls -l /var/flash/multid.leases" vor und nach dem "rm" Befehl einfügen.
 
OK, das Problem von Schussel kann ich bei mir nicht nachvollziehen.
Bei mir verabschiedet sich dnsmasq nach Änderungen in der AVM WebGUI unter Network und startet nicht wieder.

Mache ich einen restart oder start/stop/start des dnsmasq geht zwar dhcp wieder aber DNS Abfragen an die Box werden nicht mehr beantwortet.
Da hilft dann nur noch ein reboot.

(nicht wundern an der IP habe ich etwas ausgexxxxt.)
Code:
/var/tmp # sh -x /var/tmp/rc.dnsmasq start
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin
+ export LD_LIBRARY_PATH=/mod/lib
+ DAEMON=dnsmasq
+ . /etc/init.d/modlibrc
+ export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin
+ export LD_LIBRARY_PATH=/mod/lib:/mod/usr/lib
+ [ -n dnsmasq ]
+ [ ! -r /mod/etc/conf/dnsmasq.cfg ]
+ . /mod/etc/conf/dnsmasq.cfg
+ export DNSMASQ_DHCP=yes
+ export DNSMASQ_DHCP_BOOT=no
+ export DNSMASQ_DHCP_BOOTFILE=
+ export DNSMASQ_DHCP_RANGE=192.168.xxx.200,192.168.xxx.240,24h
+ export DNSMASQ_DNS_PORT=53
+ export DNSMASQ_DOMAIN=heimnetz
+ export DNSMASQ_ENABLED=yes
+ export DNSMASQ_ETHERS=yes
+ export DNSMASQ_OPTIONS=
+ export DNSMASQ_TFTP=no
+ export DNSMASQ_TFTP_TFTPROOT=
+ which igdd
+ basename /sbin/igdd
+ _igdd=igdd
+ /sbin/multid -?
+ grep upnp
+ _multid_upnp=  -u                 - do not start basic upnp-device. (NOTSET)
+ [   -u                 - do not start basic upnp-device. (NOTSET) ]
+ [ ! igdd ]
+ [ ! -r /mod/etc/conf/dnsmasq.cfg ]
+ . /mod/etc/conf/dnsmasq.cfg
+ export DNSMASQ_DHCP=yes
+ export DNSMASQ_DHCP_BOOT=no
+ export DNSMASQ_DHCP_BOOTFILE=
+ export DNSMASQ_DHCP_RANGE=192.168.xxx.200,192.168.xxx.240,24h
+ export DNSMASQ_DNS_PORT=53
+ export DNSMASQ_DOMAIN=heimnetz
+ export DNSMASQ_ENABLED=yes
+ export DNSMASQ_ETHERS=yes
+ export DNSMASQ_OPTIONS=
+ export DNSMASQ_TFTP=no
+ export DNSMASQ_TFTP_TFTPROOT=
+ start
+ local lease
+ modlib_addgroup nobody
+ local group=nobody
+ shift
+ echo -n Looking for group 'nobody' ... 
Looking for group 'nobody' ... + grep -q ^nobody: /etc/group
+ echo found
found
+ modlib_adduser nobody -s /bin/false -D -S -H -G nobody -g nobody
+ local user=nobody
+ shift
+ echo -n Looking for user 'nobody' ... 
Looking for user 'nobody' ... + grep -q ^nobody: /etc/passwd
+ echo found
found
+ return 0
+ [ -x /tmp/flash/dnsmasq_conf ]
+ /mod/etc/default.dnsmasq/dnsmasq_conf
+ [ -r /tmp/flash/dnsmasq.extra ]
+ echo -n Starting dnsmasq...
Starting dnsmasq...+ [  != nomultid ]
+ multid -s
+ OPTIONS=
+ [ 53 ]
+ OPTIONS= -p "53"
+ eval dnsmasq  -p "53"
+ dnsmasq -p 53
+ exitval=0
+ [  != nomultid ]
+ multid
+ [ -f /var/tmp/avm-resolv.conf -a ! -L /var/tmp/avm-resolv.conf ]
+ mv /var/tmp/avm-resolv.conf /var/tmp/resolv.conf
+ ln -s resolv.conf /var/tmp/avm-resolv.conf
+ [ ! -L /var/flash/multid.leases -a yes = yes ]
+ rm -f /var/flash/multid.leases
+ touch /var/tmp/multid.leases
+ ln -s /var/tmp/multid.leases /var/flash/multid.leases
+ [ -f /var/tmp/multid.leases ]
+ chmod 0664 /var/tmp/multid.leases
+ chown root:nobody /var/tmp/multid.leases
+ [ -f /var/tmp/dnsmasq.leases ]
+ chmod 0664 /var/tmp/dnsmasq.leases
+ chown root:nobody /var/tmp/dnsmasq.leases
+ [ 0 -eq 0 ]
+ echo done.
done.
+ exit 0
 
@elohmann: Bei dir siehts es doch gut aus. Was wird denn per Syslog beim starten ausgegeben?
 
Nichts was auf irgendwelche Probleme deuten könnte, mal sehen ob ich mit strace mehr machen kann.
Das Problem läßt sich auch nur repoduzieren, wenn über die AVM webgui am
netzwerk Änderungen gemacht werden.
Restarte ich den dnsmasq nach einen reboot, gehen dns und dhcp einwandfrei.

Da muss irgendetwas von AVM mir die Suppe versalzen.
 
Ich hätte da aber auch ein Problem..
Wenn ich eine Einstellung des dnsmasq ändere startet dieser neu und die Box ist weg. Keine Weboberfläche, kein Ping, kein Reboot. Deshalb änder ich nach Mögluchkeit nichts an der Konfiguration und falls doch zieh ich danach kurz den Stromstecker. Ich bin auch nicht dahintergekommen, woran das liegen könnte
 
Hallo,

bei meiner 7270 mit (Firmware-Version 54.04.63-12043-freetz-devel-2473) ist das Problem ebenfalls, dass dnsmasq gelegentlich automatisch beendet wird.
nach Starten und dann nochmaligem Restart des Dienstes scheint alles wieder normal zu funktionieren. (IP-Vergabe wie auch Namensauflösung)

Gibt es eigentlich eine allgemeine Lösung oder muss man sich mit Cron-Jobs oder ähnlichem helfen??

Reproduzieren kann man das Beenden des Dienstens z.B. auch durch Umbenennen der Rechnernamen in der Kindersicherung...

#
#!/bin/sh
# dnsmasq restart für die Fritzbox7270 mit Freetz
if ! pidof dnsmasq ; then
/etc/init.d/rc.dnsmasq start
/etc/init.d/rc.dnsmasq restart
fi

damit startet dnsmasq bei mir wieder funktionstüchtig - nur wie binde ich das jetzt sinnvoll ein, damit es automatisch ausgeführt wird?
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.