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