Hier gaat het wel, zij het zeer zeer moeizaam. Probleem lijkt te zijn dat de reactie vanuit de DHCP server zo rond de 20 a 30 seconden op zich laat wachten en de DHCP client dat te lang vindt:
Eerst stuurt de DHCP client een aantal Discover packets met 5 - 20 seconden intervallen:
DHCP Discover
DHCP Discover
DHCP Discover
DHCP Discover
Dan komt eindelijk eens een reactie:
DHCP Offer
Meteen wordt door de DHCP client een paar keer een DHCP Request gestuurd (ook weer met seconden er tussenin)
DHCP Request
DHCP Request
DHCP Request
Maar als er geen DHCP ACK komt, dan begint de DHCP Client weer met Discover:
DHCP Discover
DHCP Discover
En meestal komt zo rond dit moment pas de DHCP ACK als reactie op een eerder gestuurde DHCP Request. Voor de DHCP client is dat te blijkbaar te laat, omdat die alweer in de Discover fase zit:
DHCP ACK (te laat)
DHCP Discover
... en het begint weer van vooraf aan.
Wat me wel opviel is dat als ik handmatig 'dhclient eth0' geef, dat hij dan langer probeert om verbinding te krijgen. Zo af en toe komt zelfs de DHCP Offer niet op tijd en dan probeert hij of een oude lease (uit /var/lib/dhcp3/dhclient.leases) nog werkt... en dat gaat dan wel goed.
Het verlengen van de lease gaat beter omdat hij dan een stuk langer wacht op reactie vanuit de Demon DHCP server.
Omdat DHCP bij Demon alleen echt nodig is voor het opbouwen van de routing binnen het netwerk (en al de benodigde packets komen voorbij, ook al zijn ze te laat voor je DHCP client), zou je kunnen proberen om na zo'n mislukte DHCP poging het IPnr (+gateway, netmask e.d.) statisch in te stellen. Dat werkt weliswaar niet echt lang (uurtje?), maar je kunt dan in elk geval weer even het internet op.
edit:
tcpdump toegevoegd:
Als je wilt zien wat er precies gebeurt, doe dit als root (aangenomen dat eth0 het juiste interface is):
tcpdump -i eth0 -s0 -v -n 'port 67 or port 68'
[
Voor 6% gewijzigd door
rvm op 10-07-2005 19:21
]