DHCP erstaunlich undynamisch?
- habichthugo
- Closed
-
-
deswegen meinte ich auch dhcp3 und nicht dhcp. Nach dem, was ich da so gegoogelt habe soll dieser client besser mit fehlenden Servern zurechtkommen.
Gruß
beagle -
Also, der dhclient reagiert schon auf die Einträge in der .conf, zumindest beim booten, denn er bricht jetzt schon wie gewünscht nach 15 Sek. ab, statt 1 Min. zu warten, wenn der Router nicht an ist. Blöd nur, dass sich der dhclient-Prozess dann aber beendet, denn er wird mit der Option -e gestartet, wie mir ps nach Start mit Netzverbindung verraten hat! Wie/Wo wird der dhclient-Prozess gestartet (damit ich -e rausnehmen kann)?
-
-
Niente!
Code
Display Morevdr:/etc/init.d# grep '\-e' * atd: start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $ARGS atd: start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON bootclean.sh: -type d -depth -empty -exec rmdir \{\} \; bootclean.sh: ( cd /var/lock && find . ! -type d -exec rm -f -- {} \; ) bootclean.sh: -exec rm -f -- {} \; ) bootlogd:## set -e # not needed bootlogd: --exec $DAEMON -- -r bootlogd: start-stop-daemon --stop --quiet --exec $DAEMON bootlogd: start-stop-daemon --stop --quiet --exec $DAEMON bootlogd: start-stop-daemon --start --quiet --exec $DAEMON bootmisc.sh:if [ ! -e /dev/.devfsd ] && [ -c /dev/ttyp0 ] bootmisc.sh: chmod -f 666 /dev/tty[p-za-e][0-9a-f] bootmisc.sh: chown -f root:tty /dev/tty[p-za-e][0-9a-f] console-screen.sh:if [ `uname -r | cut -f 2 -d .` = 6 ] && [ -e /dev/.devfsd ]; then console-screen.sh: readlink /proc/self/fd/0 | grep -q -e /dev/vc -e '/dev/tty[^p]' -e /dev/console console-screen.sh: if [ $? -eq 0 ] ; then console-screen.sh: if [ "$vc" -eq 6 ]; then echo " done."; fi discover:set -e discover: echo "--enable=$module" discover: *) MODULES=$(echo $MODULES | sed -e 's/ide-scsi //' -e 's/-/_/g');; discover: echo "$SKIPLIST" | grep -wq -e "$1" discover: searchmod="$(echo $1 | sed -e 's#\(-\|_\)#(-|_)#g')" discover: if [ -e "/etc/modprobe.conf" ]; then search="$search /etc/modprobe.conf"; fi discover: if [ -e "/etc/modules.conf" ]; then search="$search /etc/modules.conf"; fi discover: if [ ! -e $CDROM ] && [ ! -e $ALTCDROM ] discover: elif [ ! -b $CDROM ] && [ ! -e $ALTCDROM ] discover: elif [ -e /dev/cdrom$CDNUM ] && [ ! -L /dev/cdrom$CDNUM ] discover: if [ -e /dev/cdrom0 ] discover: if [ -L /dev/cdrom ] || [ ! -e /dev/cdrom ] exim4:set -e exim4: UPEX4CONF="update-exim4.conf" exim4: --exec $DAEMON -- -bd -q${QFLAGS}${QUEUEINTERVAL} \ exim4: --exec $DAEMON -- -bd ${SMTPLISTENEROPTIONS} ${COMMONOPTIONS} exim4: --exec $DAEMON -- -oP /var/run/exim4/eximqr.pid \ exim4: --exec $DAEMON -- -oP /var/run/exim4/eximqr.pid \ exim4: --exec $DAEMON -- -bd ${SMTPLISTENEROPTIONS} exim4: --oknodo --retry 30 --exec $DAEMON exim4: --oknodo --retry 30 --exec $DAEMON exim4: --signal 1 --exec $DAEMON exim4: --signal 1 --exec $DAEMON exim4: --signal 1 --exec $DAEMON hdparm:set -e hdparm:if [ -e /proc/mdstat ]; then hdparm:elif [ -e /proc/rd/status ]; then hotplug:#!/bin/sh -e hotplug:[ -e /etc/default/hotplug ] && . /etc/default/hotplug hotplug: set -e ifupdown:#!/bin/sh -e ifupdown: if [ -e /etc/network/ifstate ]; then inetd: echo -n " inetd" ; start-stop-daemon --start --quiet --pidfile /var/run/inetd.pid --exec /usr/sbin/inetd inetd: echo -n " inetd" ; start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/inetd.pid --exec /usr/sbin/inetd inetd: start-stop-daemon --start --quiet --pidfile /var/run/inetd.pid --exec /usr/sbin/inetd klogd: start-stop-daemon --start --quiet --exec $binpath -- $KLOGD klogd: start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile klogd: start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile klogd: start-stop-daemon --start --quiet --exec $binpath -- $KLOGD libdevmapper1.00:set -e libdevmapper1.00: major=$(grep "[0-9] misc$" /proc/devices | sed -e 's/[ ]\+misc//' -e's/ //g') libdevmapper1.00: minor=$(grep "[0-9] device-mapper$" /proc/misc | sed -e 's/[ ]\+device-mapper//' -e's/ //g') lirc: start-stop-daemon --start --quiet --exec /usr/sbin/lircd -- $LIRCD_ARGS \ lirc: start-stop-daemon --start --quiet --exec /usr/sbin/lircmd \ lirc: start-stop-daemon --stop --quiet --exec /usr/sbin/lircmd lirc: start-stop-daemon --stop --quiet --exec /usr/sbin/lircd lirc: start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircd lirc: start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircmd makedev:set -e makedev: if [ ! -e /dev/.devfsd ]; then module-init-tools:#!/bin/sh -e module-init-tools:if [ -e /etc/modules-$KVER ]; then module-init-tools:elif [ -e /etc/modules-$KMAJ ]; then modutils:[ -e /sbin/depmod ] || exit 0 mountnfs.sh: start-stop-daemon --start --quiet --exec /sbin/portmap mountvirtfs:# so we're not setting the "-e" flag. mountvirtfs:#set -e networking: if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then networking: if [ -e /proc/sys/net/ipv4/ip_forward ]; then networking: if [ -e /proc/sys/net/ipv4/tcp_syncookies ]; then ppp:#!/bin/sh -e pppd-dns:#!/bin/sh -e samba: start-stop-daemon --start --quiet --exec /usr/sbin/nmbd -- -D samba: start-stop-daemon --start --quiet --exec /usr/sbin/smbd -- -D setserial: if [ -e ${etcconfig} ]; then skeleton:set -e skeleton: --exec $DAEMON ssh:set -e ssh: if [ -e /etc/ssh/sshd_not_to_be_run ]; then ssh: if [ ! -e /etc/ssh/sshd_not_to_be_run ]; then ssh: start-stop-daemon --start --quiet --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS ssh: start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd ssh: start-stop-daemon --start --quiet --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS stop-bootlogd:## set -e # not needed stop-bootlogd: --exec $DAEMON -- -r stop-bootlogd: start-stop-daemon --stop --quiet --exec $DAEMON stop-bootlogd: start-stop-daemon --stop --quiet --exec $DAEMON stop-bootlogd: start-stop-daemon --start --quiet --exec $DAEMON sudo:set -e sysklogd: if [ ! -e /dev/xconsole ]; then sysklogd: start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD sysklogd: start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile sysklogd: start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile sysklogd: start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile sysklogd: start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD sysklogd: start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile sysklogd: start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD vdr: if [ -e "/var/run/lircd.pid" ]; then vdr: if [ -e "$PLUGIN_CFG_DIR/plugin.remote.conf" ]; then vdr: REMOTES="$REMOTES remote-event" vdr: if [ -e "$CFG_DIR/remote.$i.conf" ]; then vdr:set -e vdr: start-stop-daemon --start --quiet --exec $DAEMON \ vdr: start-stop-daemon --stop --exec $VDRPRG --retry 5 2> /dev/null > /dev/null || WASRUNNING="nein" vdr-addon-vdrconvert: --exec $DAEMON \ vdradmin:set -e vdradmin: start-stop-daemon --start --quiet --exec $DAEMON vdradmin: # /var/run/$NAME.pid --exec $DAEMON vdradmin: start-stop-daemon --start --quiet --exec $DAEMON vdr-plugin-vdrrip:set -e vdr-plugin-vdrrip: # use --startas (--exec don't find the process) xfree86-common:set -e xfree86-common: if [ -e $SOCKET_DIR -a ! -d $SOCKET_DIR ]; then xfree86-common: if [ -e $ICE_DIR -a ! -d $ICE_DIR ]; then
-
am ehesten über /etc/init.d/networking
-
Nix zu machen, der Aufruf von dhclient ist nicht zu lokalisieren!
Ich werd' noch bescheuert! -
Hallo,
wie wäre es die lease Zeiten hochzusetzen? Dann sollte der rechner auch ohne DHCP kontakt mit der letzten IP wieder hochfahren (wenn die lease noch nicht abgelaufen ist).
Und ifconfig eth0 down / up wird denke ich auch nix helfen weil damit nur das device gestopt und gestartet wird. Aber nicht dhclient.
-
Quote
Original von habichthugo
Also, der dhclient reagiert schon auf die Einträge in der .conf, zumindest beim booten, denn er bricht jetzt schon wie gewünscht nach 15 Sek. ab, statt 1 Min. zu warten, wenn der Router nicht an ist. [/B]Hm, irgendwie schnall ich das nicht (wahrscheinlich zu blond), aber was soll das bezwecken weiter zu warten, wenn der Router aus ist. Wer soll dem Client denn die IP flüstern. Wahrscheinlich hat der dhcp-client auch vielleicht schon KI
Wenn ich mit dem Kompromiss leben müsste, das der Router (DHCP Server) nicht erreichbar ist, würde ich mir doch nicht so einen Stress machen. Wäre mir ehrlich gesagt zuviel Aufwand wenn ich für die Netzwerkfunktionalität des VDR auch noch den Router extra dafür starten müsste.
Gruß Fr@nk
-
Ich muss nur noch erreichen, dass der dhclient ohne die Option -e aufgerufen wird. Dann mach er genau das, was ich mir vorstelle: Wenn keine IP zu beziehen ist, nach 15 Sek. abbrechen, 15 Sek. warten und es dann erneut versuchen. Nur bin ich einfach zu dähmlich herauszufinden, wo der dhclient gestartet wird!
-
wie wäre es denn mit einem
> grep -r -e dhclient /etc/*Gruß
beagle -
Ich habe mit find + grep schon die ganze Platte gescant und damit nix passendes gefunden! Wenn mir nach einem Start mit Netzverbindung ps nicht eindeutig zeigen würde, dass es den Prozess dhclient gibt, müsste ich daher annehmen, dass dhclient gar nicht gestartet wird...
Es muss doch irgend jemanden geben, der weiss, wie/wo der dhclient gestartet wird!? Das ist übrigens bei beiden c't-VDR-Versionen (3.06 + 4.5) gleich... -
Ach ja, die Zeichenkette dhclient wird jedoch in mehreren Binärdateien gefunden, u.a. in ifup...
-
dhclient wird durch /sbin/ifup aufgerufen; /sbin/ifup ist ein executable.
-- sigma7
-
Irgendwie kapier' ich das Ganze nicht. Ich kann in der dhclient.conf die Zeit konfigurieren, nachdem der Versuch beendet wird, eine IP-Adresse zu beziehen. Dann kann ich noch angeben, nach welcher Zeit ein erneuter Versuch gestartet wird. Standardmässig wird der dhclient aber so aufgerufen, dass er sich nach dem ersten Fehlversuch beendet, was ich nicht beeinflussen kann. Kann mir mal irgend jemand denn Sinn dieses Verhaltens nahe bringen?
-
Nein der Sinn erschliesst sich mir auch nicht, ebenso wie konfigurierte DHCP Clients ohne Server , aber das hatten wir ja schon
Manchmal schaffen Computer Probleme die ohne ihresgleichen gar nicht da waeren. Was versprichst Du Dir eigentlich davon?
Welchen Vorteil siehst Du darin Deinem VDR eine DHCP Adresse zu geben.
(und den Router aus zu lassen )
Ich verstehs nicht 2 Seiten für ein hausgemachtes Problem.
Ob ich nun LinVDR oder192.168.x.x in die Adresszeile eingebe, wobei letzteres auch noch ohne funktionierende Namensauflösüung auskommt, die fehlt Dir ohne Router sicher auch ;D.
Kannst Du mir erklären warum Du seit geraumer Zeit Dich daran festbeisst,
ich bin wie gesagt auch ein Fan von DHCP, nutze es aber nur beim Notebook und SurfPC für Besuch. Server und dazu zähl ich den VDR auch bekommen feste Adressen. Wo siehst Du da Nachteile. -
Quote
Original von habichthugo
Irgendwie kapier' ich das Ganze nicht. Ich kann in der dhclient.conf die Zeit konfigurieren, nachdem der Versuch beendet wird, eine IP-Adresse zu beziehen. Dann kann ich noch angeben, nach welcher Zeit ein erneuter Versuch gestartet wird. Standardmässig wird der dhclient aber so aufgerufen, dass er sich nach dem ersten Fehlversuch beendet, was ich nicht beeinflussen kann. Kann mir mal irgend jemand denn Sinn dieses Verhaltens nahe bringen?Kannst du doch beeinflussen. Benenn einfach das binary dhclient um (z.B. my.dhclient) und schreib dir ein script das dhclient heisst. Da kannst du dann nach herzenslust dein -e ignorieren und letztendlich das "echte" my.dhclient mit den gewünschten parametern aufrufen. Ist zwar rückwärts mit der linken Hand durchs rechte Knie geschossen (wie das gesamte Problem überhaupt) aber was solls. Wer exotische Wünsche hat kriegt exotische Lösungen.
So ganz kapier ich nicht, warum du dienen Clients unbedingt DHCP aufdrücken willst und dann
1. Einen Router als DHCP-Server nimmst
2. Diesen Router auch noch abschaltest
Aber wie gesagt - exotische Wünsche sollen auch nicht ubefriedigt bleiben. Lösungen gibt es immer. -
Mr.N!ce
Du, ich bin einfach dumm, möchte aber nicht so sterben!
Natürlich kann ich meinem VDR wieder ne statische IP verpassen - und gut. Nur, es gibt DHCP - Sinn hin und her - und im dhclient offensichtlich auch die Möglichkeiten das so zu konfigurieren, wie ich mir das vorstelle. Das klappt aber aus für mich nicht nachvollziehbaren Gründen nicht und ich möchte nun einfach wissen warum!
Wenn Du's genau wissen willst: Mein DHCP-Server ist mein DSL-WLAN-Router. Der ist (über Funk) mit einem WLAN-Acces-Point verbunden, an dem der VDR hängt. Nun habe ich die dumme Angewohnheit, mein WLAN nur dann zu aktivieren, wenn ich tatsächlich was damit mache... -
Quote
Original von Mr.N!ce
ich bin wie gesagt auch ein Fan von DHCP, nutze es aber nur beim Notebook und SurfPC für Besuch. Server und dazu zähl ich den VDR auch bekommen feste Adressen. Wo siehst Du da Nachteile.Und selbst bei den Servern sind statische IPs nicht notwendig. Bei mir kriegt sogar einer der Server im Keller eine DHCP-Adresse - nur eben per MAC Adresse kontrolliert immer die gleiche. Wurde weiter oben im Thread schon erwähnt. Der Vorteil von DHCP liegt auf der Hand. Eine Zentrale Instanz, welche die IPs im Netz kontrolliert. Eine Konfigurationsdatei hat alles in der Hand. Wenn das dann auch noch mit dem DNS synchron läuft (und so sollte es schon sein) dann muss eigentlich nur noch eins gewährleistet sein:
DER DHCP SERVER DARF NIE ABGESCHALTET WERDEN!!!! -
xnalpf
...Auf die Ide mit dem überscripten bin ich auch schon gekommen. Das kann aber doch wohl so nicht im Sinne des Erfinders sein - oder? Wenn Pragmatismus, dann aber einfach wieder ne statische IP!@All
Warum fragen überhaut alle nach dem Wieso? Können wir nicht einfach mal - nur so zum Spass, aus Forscherdrang... - die Frage klären, warum ich in der dhclient.conf ganz tolle Dinge konfigurieren kann, bei denen sich der Schöpfer sicher was gedacht hat, die aber dann standardmässig ausgehebelt sind, sodass sie sich - wenn überhaupt - nur mit Trick 17 anschleichen lassen?
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!