Broadcasts of DHCPNAK: In the bullring

Mark Sirota <msirota@isc.upenn.edu> Tue, 18 June 1996 20:08 UTC

Received: from ietf.cnri.reston.va.us by IETF.CNRI.Reston.VA.US id aa04837; 18 Jun 96 16:08 EDT
Received: from CNRI.Reston.VA.US by IETF.CNRI.Reston.VA.US id aa04832; 18 Jun 96 16:08 EDT
Received: from reef.bucknell.edu by CNRI.Reston.VA.US id aa19426; 18 Jun 96 16:08 EDT
Received: from localhost by reef.bucknell.edu with SMTP (5.65/IDA-1.2.8) id AA02441; Tue, 18 Jun 1996 15:59:52 -0400
Date: Tue, 18 Jun 1996 15:59:52 -0400
Message-Id: <31C70756.63DE@isc.upenn.edu>
Errors-To: droms@bucknell.edu
Reply-To: dhcp-v4@bucknell.edu
Originator: dhcp-v4@bucknell.edu
X-Orig-Sender: dhcp-v4@bucknell.edu
Precedence: bulk
Sender: ietf-archive-request@IETF.CNRI.Reston.VA.US
From: Mark Sirota <msirota@isc.upenn.edu>
To: Multiple recipients of list <dhcp-v4@bucknell.edu>
Subject: Broadcasts of DHCPNAK: In the bullring
X-Listprocessor-Version: 6.0c -- ListProcessor by Anastasios Kotsikonas
X-Comment: Discussion of DHCP for IPv4
Mime-Version: 1.0
X-Mailer: Mozilla 3.0b2 (X11; I; OSF1 V3.2 alpha)

In the previous message, I quoted four passages from the latest DHCP spec,
draft-ietf-dhc-dhcp-07.txt.  I discovered all of that after wrestling with
a problem involving the Windows 95 DHCP client, a Cisco IOS 11.1(2) router
acting as a BOOTP relay agent, and the ISC DHCP Server, Beta release 4
patchlevel 5A.

I had outlined this earlier to this list, but at the time I had a lot less
information, and some of my conjectures and theories were just plain wrong.

I would appreciate any insight as to which piece is at fault here, and what
might be done to solve it, either as a temporary workaround or preferably as
a permanent solution.

The situation is as follows:
	The server sits on Subnet A.
	The client gets a lease on Subnet A, and is then carried to
		Subnet B, and is booted up.
	The client sends a REQUEST for the Subnet A address.
	The router forwards the REQUEST to the server.
	The server sends a NAK to the router, because the client is on the
		wrong subnet for the requested address.
	The router broadcasts the NAK (both link level and IP level) on
		Subnet B.
	The client does not seem to recognize the NAK, and so sends another
		REQUEST.

In the converse situation, everything works fine:
	The server sits on Subnet A.
	The client gets a lease on Subnet B, and is then carried to
		Subnet A, and is booted up.
	The client sends a REQUEST for the Subnet B address.
	The server broadcasts a NAK (both link level and IP level) on
		Subnet A, ebcause the client is on the wrong subnet for
		the requested address.
	The client understands the NAK, and so responds with a DISCOVER.

I have analyzed the two NAK packets in detail, one which is understood and
one which is not.  There are no differences that seem to matter.  Both are
broadcast at both the IP layer and the link layer on the client's subnet,
so it should hear both.  I am theorizing that the Windows 95 client is doing
some sanity checks on the packet, and sees that it came through a BOOTP
forwarder, and therefore doesn't like that it got there via broadcast, based
on one or more of the conflicting paragraphs in the spec.

I can provide details on the packets -- I have bunches of them saved up in
the sniffer, if anyone cares to help tear them apart.

Any and all opinions are most welcome!
-- 
Mark Sirota, Network Systems Engineer
University of Pennsylvania, Information Systems and Computing
msirota@isc.upenn.edu, 215/573-7214