[fli4l] dhcp_client "stirbt", wenn der Link down ist

Hans Bachner Hans at Bachner.priv.at
Do Dez 6 16:24:04 CET 2012


Hallo Robert,

Robert Resch <fli4l at robert.reschpara.de> wrote:

> Am 29.11.2012 00:46, schrieb Hans Bachner:
>> ein fli4l 3.6.2 ist als DHCP Client (Typ dhcpcd) konfiguriert, weil
>> er an einem Kabelmodem hängt. 
>> 
>> Fehlt beim Hochfahren der Netzwerk-Link zum Kabelmodem
>> (Ethernet-Kabel abgezogen oder Kabelmodem ausgeschaltet), kommen
>> diese Meldungen: 
> 
> Mach mal eine bridge dazwischen. Evtl. hilft das, denn dann sieht dein
> dhcp-client den link-down nimmer.

Da ich übers Wochenende weg war und danach noch ausgiebig herumprobiert 
habe, kommt diese Antwort erst recht spät...

Der Tipp mit der Bridge ist genial - auf eine Bridge mit nur einem 
physischen Interface muss man erst einmal kommen :-) 

fli4l 3.6.2 versucht per DHCP eine Adresse für br0 zu bekommen, kriegt 
mangels Kabel natürlich keine, und verpasst sich fürs erste eine Adresse 
aus dem 169.254.0.0/16 Bereich:

br0: dhcpcd 4.0.9 starting
DHCP event 'PREINIT'
    ignoring dhcp event 'PREINIT'
br0: broadcasting for a lease
br0: timed out
br0: probing for an IPV4LL address
br0: checking 169.254.10.81 is available on attached networks
br0: using IPv4LL address 169.254.10.81
DHCP event 'IPV4LL'
new_broadcast_address='169.254.255.255'
new_ip_address='169.254.10.81'
[...]
Event: up, local: '169.254.10.81', remote=''                 

Steckt man dann das Kabel an, schickt der dhcpcd nach gut einer Minute  
erneut einen Request raus, und bekommt dann auch die "richtige" Adresse.

Der Wermutstropfen an dieser Lösung: mit dem aktuellen Tarball (24359) 
funktioniert sie nicht mehr. Offenbar wird hier der Link-Status vom 
physischen Interface and die Bridge weitergereicht:

dhcpcd[1174]: version 5.5.4 starting
dhcp-client: DHCP event 'PREINIT'
dhcp-client:     ignoring dhcp event 'PREINIT'
dhcp-client: DHCP event 'NOCARRIER'
dhcp-client:     ignoring dhcp event 'NOCARRIER'
dhcpcd[1174]: br0: waiting for carrier
dhcpcd[1174]: timed out

es gibt (anscheinend mangels Draht) auch keine link-local Adresse:

dhcpcd[1174]: allowing 8 seconds for IPv4LL timeout
dhcpcd[1174]: timed out      
-> finished starting dhcp client daemon... (/etc/rc.d/rc310.dhcpcd)

und damit verstirbt der dhcpcd wie bei der Version 3.6.2 ohne Bridge.

Nun kann ich mir aussuchen, welchen Tod ich sterbe. Es geht hier um den 
gleichen Rechner wie beim vorhergehenden Eintrag ("Igel 564 hängt beim 
Reboot"), bei dem ein warm reboot nur mit der Tarball-Version 
funktioniert.

Ist dieses Verhalten des dhcpcd und/oder der Bridge in der Tarball-
Version ein Bug oder ein "bug fix"?

Hans.


Mehr Informationen über die Mailingliste Fli4L