invalid DISCOVER packet - update

David W. Hankins David_Hankins at isc.org
Tue Apr 10 15:37:10 UTC 2007


On Tue, Apr 10, 2007 at 09:25:04AM -0500, Duane Cox wrote:
> Well at this time my problem seems to have mysteriously vanished.

I love those.

If it comes back, at least now you know where to look.

> "The discover packet from the router is 28 bytes longer than normal. The
> [embedded device] checks the length of the discover packet, if it is longer
> the packet is discarded. I have asked engineering if the code can be
> modified to accept the longer DHCP discover packet."
> 
> David, I wasn't aware there was a set length, or in this case "normal"
> length, for dhcp packets.  Am I missing something here?

Well, this is something of a longstanding problem.  I think RFC2131
references down to another document that defines IP's minimum MTU
as being 576 bytes...and alerts implementers that this is the smallest
value that is guaranteed to work (since you can't predict the MTU
outside of your local interface).

It seems some implementations (such as your relay) have taken this
as a fixed upper limit, rather than a fixed lower limit.

Your client in particular seems to have taken this as a minimum
DHCP payload size (UDP and beyond), rather than a total packet
upper limit (hence, 28 bytes of IP and UDP header are in excess).

Why it chooses to transmit such a large packet is a mystery to me;
it has filled all the trailing bytes with zeroes.  I wonder if they
encountered a different compatibility problem.

ISC DHCP (and others, I have heard) will also have problems with
any packet that is larger than their MTU...because we have to use
BPF sockets to read and write datagrams, we have to implement our
own ethernet/IP/UDP framing...so we left out fragment reassembly.


So...there are a lot of fish in this barrel.  You can probably
choose any one of them to take aim at and shoot.


Another point of interest is the MSZ: option ("Maximum Message
Size", or MMS) this client has supplied...1152 bytes.  That's a
curious number.  I doubt their MTU is 1152 bytes.  At least our
implementation treats the MMS as "total packet size", so more
comparable to the MTU...although older versions included the
ethernet framing, newer versions don't.

-- 
ISC Training!  http://www.isc.org/training/  training at isc.org
Washington DC area, April 16-20 2007.  DNS & BIND, DDNS & DHCP.
-- 
David W. Hankins	"If you don't do it right the first time,
Software Engineer		you'll just have to do it again."
Internet Systems Consortium, Inc.	-- Jack T. Hankins


More information about the dhcp-users mailing list