Re: NetworkManager does not like my dhcp offer



On Mon, 2005-01-17 at 10:01 +0100, Richard Torkar wrote:
> NetworkManager: DHCP: Got some data to check for reply packet.
> NetworkManager: DHCP: actual data length was 328
> NetworkManager: DHCP: Reply message's source port was not the DHCP
> server port number, won't use it.
> 
> Especially the last line is interesting... What has changed? Is this a
> security feature? Is the network I'm using not set up correctly? Can you
> refer me to an RFC which contain information regarding this matter?

Hi,

http://www.faqs.org/rfcs/rfc2131.html

Section 4.1 of the DHCP RFC 2131:

   DHCP uses UDP as its transport protocol.  DHCP messages from a client
   to a server are sent to the 'DHCP server' port (67), and DHCP
   messages from a server to a client are sent to the 'DHCP client' port
   (68).

So this says that messages bound for the client need to be addressed to
port (68), but it doesn't really say anything about the the UDP
message's source port at all.  I had assumed that the message would come
from the DHCP server port, but perhaps that assumption is not correct?
Can anyone shed light on this?

Pump, for example, does this:
-----------------
if (ntohs(udpHdr->source) != BOOTP_SERVER_PORT)
    continue;
if (ntohs(udpHdr->dest) != BOOTP_CLIENT_PORT) 
    continue;
-----------------

ISC DHCP does not seem to care what port the response comes from (as
seen in common/options.c:do_packet() where nothing seems to check
decoded_packet->client_port).

I suppose we could ignore the source port of the packet, but then
couldn't somebody spoof DHCP replies using a non-root (> 1024) port
program?  In any case I'll add the actual receive port to the debug
message so we can see what it is.

Dan






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]