Subject: PR 12096 (running dhclient on diskless/chokes with latest route.c)
To: None <tech-net@netbsd.org>
From: Jun-ichiro itojun Hagino <itojun@iijlab.net>
List: tech-net
Date: 02/04/2001 07:04:21
	someone clueful about diskless environment, could you please take a
	look at PR 12096?

	what happens is like this:
	- a machine boots with diskless configuration.  has IPv4 address
	  from bootstrap logic (like bootp/whatever)
	- dhclient gets invoked.  dhclient nukes IPv4 address from the node.
	  with old sys/net/route.c: ARP cache for the NFS-mounted root/usr is
		kept so dhclient runs fine.
	  with new sys/net/route.c: when IPv4 address getes removed, all ARP
		cache entries associated to the address will go away.
		so ARP cache entry for NFS-mounted root/usr goes away too.

	from my point of view, new sys/net/route.c is doing more correct thing-
	when you have lost your IPv4 address, you do not want ARP cache entries
	to stay there, since it will cause troubles in the following situation:
	- you are on 10.0.0.1/24.  you have ARP cache entry for 10.0.0.2.
	- you moved to 10.0.1.0/24.  you tried to contact 10.0.0.2 again.
	  if you have old ARP cache, your machine will think that 10.0.0.2 is
	  on-link (actually offlink) and tries to send the packet to off-link
	  MAC address.

	I'm not sure how to solve it.
	- is it common to run dhclient on diskless?  isn't it trying to shoot
	  its own foot?
	- bootstrap logic may want to insert permanent ARP cache entry,
	  maybe not.
	- are there any dhclient option to prevent it from removing interface
	  addresses?

itojun