DHCP client not working
Simon Hobson
dhcp1 at thehobsons.co.uk
Wed Jul 6 11:09:02 UTC 2011
Kishore Kumar Kakarla wrote:
>DHCPv4 client package has been modified to use sockets by defining
>USE_SOCKETS in site.h of the includes directory so that it works for
>ppp interface.
>
>Now when I run dhcp client it is sending DHCP DISCOVER messages,
>server is responding with a new IP address, which is coming to the
>m/c (tcpdump report) but DHCP client is not taking the address and
>assigning to the interface.
>
>On the machine I have multiple interfaces. I am running DHCP client
>on eth1 interface and when I see the tcpdump request I see it is
>going as 192.168.0.1.68(bootpc) where 192.168.0.1 is IP address of
>another interface eth0. DHCP server is responding with new IP
>address.
>
>When I run DHCP client with USE_SOCKETS disabled the request is
>going as 0.0.0.0.68(bootpc) and server is responding, IP is assigned
>to eth1 interface.
>
>Could someone let me know the reason why the request is going with
>192.168.0.1.68(bootpc) and is this the reason why DHCP client is not
>accepting IP address for eth1 interface?
This is very, very similar to the query you asked three hours
earlier, and clearly you did not take note of the reply from Steinar
Haug.
You have configured the client to use sockets - this DISABLES CERTAIN
ESSENTIAL FUNCTIONALITY without which the client cannot work properly
on a broadcast medium (eg ethernet). A key part of the now missing
functionality is that the client cannot properly handle broadcast
packets.
So in answer to your specific query, I believe the reason the client
is using the address of another interface as the packet source
address is that the client is being forced to send packets via the
kernel IP stack - which is filling in a source address.
This is almost certainly a red-herring since I believe the server
and/or relay-agent will use other fields within the packet and NOT
the apparently source address in the packet header. The bigger issue
is that the client cannot receive the broadcast response from the
server/relay-agent because you've removed it's ability to deal with
broadcast packets.
What you will need to do it run two DIFFERENT clients. One with
use_sockets turned on to work on a PPP interface, and another
configured with it turned off so it will work on an ethernet
interface.
--
Simon Hobson
Visit http://www.magpiesnestpublishing.co.uk/ for books by acclaimed
author Gladys Hobson. Novels - poetry - short stories - ideal as
Christmas stocking fillers. Some available as e-books.
More information about the dhcp-users
mailing list